Puddel
This commit is contained in:
parent
27b4d153bf
commit
abe4c65e18
52
js/main.js
52
js/main.js
|
|
@ -4,22 +4,25 @@ var myPuddle;
|
||||||
var myX;
|
var myX;
|
||||||
var myY;
|
var myY;
|
||||||
var mySpeed;
|
var mySpeed;
|
||||||
|
var myMemo;
|
||||||
|
var sMemo = 'T';
|
||||||
|
|
||||||
class Substrate {
|
class Substrate {
|
||||||
constructor(x, y, height, width, friction, ) {
|
constructor(component, friction, maxSpeedReduction) {
|
||||||
this.height = height;
|
this.component = component;
|
||||||
this.width = width;
|
this.friction = friction;
|
||||||
|
this.maxSpeedReduction = maxSpeedReduction;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function startGame() {
|
function startGame() {
|
||||||
firstCar = new component(30, 50, "blue", 25, 225, 'car');
|
firstCar = new component(30, 50, "#B800FF", 25, 225, 'car');
|
||||||
myPuddle = new component(100, 100, "#5FC4D8", 150, 225, 'substrate');
|
myPuddle = new component(100, 250, "#68471A", 350, 225, 'substrate');
|
||||||
|
myPuddleSubstrate = new Substrate(myPuddle, 0.3, 0.5);
|
||||||
myX = new component("14px", "Consolas", "black", 180, 5, "text");
|
myX = new component("14px", "Consolas", "black", 180, 5, "text");
|
||||||
myY = new component("14px", "Consolas", "black", 180, 10, "text");
|
myY = new component("14px", "Consolas", "black", 180, 10, "text");
|
||||||
mySpeed = new component("30px", "Consolas", "red", 30, 15, "text");
|
mySpeed = new component("30px", "Consolas", "red", 30, 15, "text");
|
||||||
|
myMemo = new component("30px", "Consolas", "red", 400, 15, "text");
|
||||||
myGameArea.start();
|
myGameArea.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -96,27 +99,28 @@ function component(width, height, color, x, y, type) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function accelerate(n, myGamePiece) {
|
function accelerate(n, myGamePiece) {
|
||||||
|
divider = checkSubstrate(myGamePiece.x, myGamePiece.y);
|
||||||
if (n>0) {
|
if (n>0) {
|
||||||
if (myGamePiece.speed < myGamePiece.maxForwardSpeed) {
|
if (myGamePiece.speed < myGamePiece.maxForwardSpeed * divider.maxSpeedReduction) {
|
||||||
myGamePiece.speed = myGamePiece.speed + n;
|
myGamePiece.speed = myGamePiece.speed + n;
|
||||||
if (myGamePiece.speed > myGamePiece.maxForwardSpeed) {
|
if (myGamePiece.speed > myGamePiece.maxForwardSpeed * divider.maxSpeedReduction) {
|
||||||
myGamePiece.speed = myGamePiece.maxForwardSpeed;
|
myGamePiece.speed = myGamePiece.maxForwardSpeed * divider.maxSpeedReduction;
|
||||||
}
|
}
|
||||||
} else if (myGamePiece.speed == myGamePiece.maxForwardSpeed) {
|
} else if (myGamePiece.speed == myGamePiece.maxForwardSpeed * divider.maxSpeedReduction) {
|
||||||
// nothing to do in this case
|
// nothing to do in this case
|
||||||
} else {
|
} else {
|
||||||
slowdown(myGameArea.friction, myGamePiece);
|
slowdown(myGameArea.friction + divider.friction, myGamePiece);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (myGamePiece.speed > myGamePiece.maxBackwardSpeed) {
|
if (myGamePiece.speed > myGamePiece.maxBackwardSpeed * divider.maxSpeedReduction) {
|
||||||
myGamePiece.speed = myGamePiece.speed + n;
|
myGamePiece.speed = myGamePiece.speed + n;
|
||||||
if (myGamePiece.speed < myGamePiece.maxBackwardSpeed) {
|
if (myGamePiece.speed < myGamePiece.maxBackwardSpeed * divider.maxSpeedReduction) {
|
||||||
myGamePiece.speed = myGamePiece.maxBackwardSpeed;
|
myGamePiece.speed = myGamePiece.maxBackwardSpeed * divider.maxSpeedReduction;
|
||||||
}
|
}
|
||||||
} else if (myGamePiece.speed == myGamePiece.maxBackwardSpeed) {
|
} else if (myGamePiece.speed == myGamePiece.maxBackwardSpeed * divider.maxSpeedReduction) {
|
||||||
// nothing to do in this case
|
// nothing to do in this case
|
||||||
} else {
|
} else {
|
||||||
slowdown(myGameArea.friction, myGamePiece);
|
slowdown(myGameArea.friction + divider.friction, myGamePiece);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -144,7 +148,17 @@ function boosterOff(lmyGamePiece) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkSubstrate(x,y) {
|
function checkSubstrate(x,y) {
|
||||||
|
divider = new Substrate(null, 0, 1);
|
||||||
|
console.log("X: " + x + " ("+ myPuddleSubstrate.component.x +" - " + myPuddleSubstrate.component.height / 2 + ") Y: " + y + " ("+ myPuddleSubstrate.component.y +" - " + myPuddleSubstrate.component.width / 2 + ") ");
|
||||||
|
if ((x > myPuddleSubstrate.component.x - myPuddleSubstrate.component.height / 2 && x < myPuddleSubstrate.component.x + myPuddleSubstrate.component.height / 2) && (y > myPuddleSubstrate.component.y - myPuddleSubstrate.component.width / 2 && y < myPuddleSubstrate.component.y + myPuddleSubstrate.component.width / 2)) {
|
||||||
|
divider.maxSpeedReduction = myPuddleSubstrate.maxSpeedReduction;
|
||||||
|
divider.friction = myPuddleSubstrate.friction;
|
||||||
|
sMemo = 'IN';
|
||||||
|
} else {
|
||||||
|
myPuddleSubstrate.component.color = '#5FC4D8';
|
||||||
|
sMemo = 'OUT';
|
||||||
|
}
|
||||||
|
return divider;
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateGameArea() {
|
function updateGameArea() {
|
||||||
|
|
@ -176,6 +190,8 @@ function updateGameArea() {
|
||||||
myY.update();
|
myY.update();
|
||||||
mySpeed.text="SPEED: " + firstCar.speed.toFixed(2);
|
mySpeed.text="SPEED: " + firstCar.speed.toFixed(2);
|
||||||
mySpeed.update();
|
mySpeed.update();
|
||||||
|
myMemo.text=sMemo;
|
||||||
|
myMemo.update();
|
||||||
myPuddle.update();
|
myPuddle.update();
|
||||||
firstCar.newPos();
|
firstCar.newPos();
|
||||||
firstCar.update();
|
firstCar.update();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue