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