commit 3743ee9e9b20db3d0f467466cec8ff08c39c08d7
parent ca485c8aa95aef570e56c020610fe317814720e9
Author: tongong <tongong@gmx.net>
Date: Sat, 17 Aug 2019 16:22:10 +0200
refresh is now possible
Diffstat:
5 files changed, 45 insertions(+), 21 deletions(-)
diff --git a/index.html b/index.html
@@ -16,11 +16,11 @@
<body bgcolor="#000000" style="margin: 0; height: 100%; overflow: hidden">
<div id="overlay">
- <svg width="40" height="40" viewBox="0 0 24 24" class="icon">
+ <svg width="40" height="40" viewBox="0 0 24 24" class="icon" id="reload">
<rect width="24" height="24" fill="#000000"/>
<path fill="#FFFFFF" d="M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z" />
</svg>
- <svg width="40" height="40" viewBox="0 0 24 24" class="icon">
+ <svg width="40" height="40" viewBox="0 0 24 24" class="icon" id="settings">
<rect width="24" height="24" fill="#000000"/>
<path fill="#FFFFFF" d="M12,8A4,4 0 0,1 16,12A4,4 0 0,1 12,16A4,4 0 0,1 8,12A4,4 0 0,1 12,8M12,10A2,2 0 0,0 10,12A2,2 0 0,0 12,14A2,2 0 0,0 14,12A2,2 0 0,0 12,10M10,22C9.75,22 9.54,21.82 9.5,21.58L9.13,18.93C8.5,18.68 7.96,18.34 7.44,17.94L4.95,18.95C4.73,19.03 4.46,18.95 4.34,18.73L2.34,15.27C2.21,15.05 2.27,14.78 2.46,14.63L4.57,12.97L4.5,12L4.57,11L2.46,9.37C2.27,9.22 2.21,8.95 2.34,8.73L4.34,5.27C4.46,5.05 4.73,4.96 4.95,5.05L7.44,6.05C7.96,5.66 8.5,5.32 9.13,5.07L9.5,2.42C9.54,2.18 9.75,2 10,2H14C14.25,2 14.46,2.18 14.5,2.42L14.87,5.07C15.5,5.32 16.04,5.66 16.56,6.05L19.05,5.05C19.27,4.96 19.54,5.05 19.66,5.27L21.66,8.73C21.79,8.95 21.73,9.22 21.54,9.37L19.43,11L19.5,12L19.43,13L21.54,14.63C21.73,14.78 21.79,15.05 21.66,15.27L19.66,18.73C19.54,18.95 19.27,19.04 19.05,18.95L16.56,17.95C16.04,18.34 15.5,18.68 14.87,18.93L14.5,21.58C14.46,21.82 14.25,22 14,22H10M11.25,4L10.88,6.61C9.68,6.86 8.62,7.5 7.85,8.39L5.44,7.35L4.69,8.65L6.8,10.2C6.4,11.37 6.4,12.64 6.8,13.8L4.68,15.36L5.43,16.66L7.86,15.62C8.63,16.5 9.68,17.14 10.87,17.38L11.24,20H12.76L13.13,17.39C14.32,17.14 15.37,16.5 16.14,15.62L18.57,16.66L19.32,15.36L17.2,13.81C17.6,12.64 17.6,11.37 17.2,10.2L19.31,8.65L18.56,7.35L16.15,8.39C15.38,7.5 14.32,6.86 13.12,6.62L12.75,4H11.25Z" />
</svg>
diff --git a/scripts/interface.js b/scripts/interface.js
@@ -1,11 +1,19 @@
+var refreshTime;
+
function initIconAnimation() {
var icons = document.getElementsByClassName("icon");
for (var i = 0; i < icons.length; i++) {
- icons[i].addEventListener('mouseenter', function() {
+ icons[i].addEventListener("mouseenter", function() {
this.classList.add("animated");
}, false);
- icons[i].addEventListener('animationend', function() {
+ icons[i].addEventListener("animationend", function() {
this.classList.remove("animated");
}, false);
}
+ document.getElementById("reload").addEventListener("click", function() {
+ if (state == 3) {
+ refreshTime = millis();
+ state = 4;
+ }
+ }, false);
}
\ No newline at end of file
diff --git a/scripts/main.js b/scripts/main.js
@@ -10,29 +10,36 @@ var RANDOM_FACTOR = 0.5;
var MAX_STATE = 4;
var ANGLE_FACTOR = 1.5;
-var state = 0;
+var state;
var statePercentage = 0;
-var stateNumber = 0;
+var stateNumber;
var currentField;
var endField;
+var addHeight;
+
var startMillis;
const time = () => (typeof(startMillis) == "undefined") ? 0 : millis() - startMillis;
function setup() {
- initIconAnimation();
- initVars();
-
var canvas = createCanvas(WIDTH, HEIGHT);
canvas.mousePressed(mousePress);
canvas.mouseReleased(mouseRelease);
+ canvas.touchStarted(mousePress);
+ canvas.touchEnded(mouseRelease);
+
+ initIconAnimation();
+ initVars();
+
stroke(255);
strokeJoin(ROUND);
fill(0);
}
function initVars() {
+ HEIGHT = window.innerHeight;
+ WIDTH = window.innerWidth;
SIZE = min([HEIGHT / 3, WIDTH / 2 - 70, 500]);
ANGLE = SIZE * ANGLE_FACTOR;
@@ -43,6 +50,9 @@ function initVars() {
endField = new Terrain(2, true);
currentField = new Terrain(2, false);
+ state = 0;
+ addHeight = 0;
+ stateNumber = 0;
startMillis = millis();
}
@@ -88,5 +98,14 @@ function draw() {
endField = currentField.addRandom(pow(RANDOM_FACTOR, stateNumber + 1));
}
break;
+ case 4:
+ statePercentage = (millis() - refreshTime) / 10;
+ addHeight = statePercentage / 100 * HEIGHT;
+ currentField.render(SIZE / pow(2, stateNumber + 1), SIZE, getRotation());
+ if (statePercentage >= 100) {
+ statePercentage = 0;
+ initVars();
+ }
+ break;
}
}
\ No newline at end of file
diff --git a/scripts/render.js b/scripts/render.js
@@ -57,9 +57,9 @@ function drawPolygon(points, rotation) {
});
beginShape();
points.forEach(function(item) {
- vertex(CENTER.x + item.x, CENTER.y - item.y - ANGLE + SIZE / 2);
+ vertex(CENTER.x + item.x, CENTER.y - item.y - ANGLE + SIZE / 2 + addHeight);
});
- vertex(CENTER.x + points[0].x, CENTER.y - points[0].y - ANGLE + SIZE / 2);
+ vertex(CENTER.x + points[0].x, CENTER.y - points[0].y - ANGLE + SIZE / 2 + addHeight);
endShape();
}
@@ -87,30 +87,30 @@ function drawWall(side, points, rotation) {
vertex(CENTER.x + points[0].x, 0);
break;
case 2:
- vertex(WIDTH, CENTER.y - points[0].y - ANGLE + SIZE / 2);
+ vertex(WIDTH, CENTER.y - points[0].y - ANGLE + SIZE / 2 + addHeight);
break;
case 3:
- vertex(CENTER.x + points[0].x, HEIGHT);
+ vertex(CENTER.x + points[0].x, HEIGHT + addHeight);
break;
case 4:
- vertex(0, CENTER.y - points[0].y - ANGLE + SIZE / 2);
+ vertex(0, CENTER.y - points[0].y - ANGLE + SIZE / 2 + addHeight);
break;
}
points.forEach(function(item) {
- vertex(CENTER.x + item.x, CENTER.y - item.y - ANGLE + SIZE / 2);
+ vertex(CENTER.x + item.x, CENTER.y - item.y - ANGLE + SIZE / 2 + addHeight);
});
switch (side) {
case 1:
vertex(CENTER.x + points[points.length - 1].x, 0);
break;
case 2:
- vertex(WIDTH, CENTER.y - points[points.length - 1].y - ANGLE + SIZE / 2);
+ vertex(WIDTH, CENTER.y - points[points.length - 1].y - ANGLE + SIZE / 2 + addHeight);
break;
case 3:
- vertex(CENTER.x + points[points.length - 1].x, HEIGHT);
+ vertex(CENTER.x + points[points.length - 1].x, HEIGHT + addHeight);
break;
case 4:
- vertex(0, CENTER.y - points[points.length - 1].y - ANGLE + SIZE / 2);
+ vertex(0, CENTER.y - points[points.length - 1].y - ANGLE + SIZE / 2 + addHeight);
break;
}
endShape();
diff --git a/scripts/rotation.js b/scripts/rotation.js
@@ -37,11 +37,8 @@ function getRotation() {
function mousePress() {
mousePressed = true;
- console.log("bum");
}
function mouseRelease() {
mousePressed = false;
- console.log("ba");
-
}
\ No newline at end of file