Spel Swaartekrag
Sommige speletjies het kragte wat die spelkomponent in een rigting trek, soos swaartekrag voorwerpe na die grond trek.
Swaartekrag
Om hierdie funksionaliteit by ons komponentkonstruktor te voeg, voeg eers 'n gravity
eienskap by wat die huidige swaartekrag bepaal. Voeg dan 'n gravitySpeed
eiendom by, wat toeneem elke keer as ons die raam opdateer:
Voorbeeld
function component(width, height, color, x, y, type) {
this.type = type;
this.width = width;
this.height = height;
this.x = x;
this.y = y;
this.speedX = 0;
this.speedY = 0;
this.gravity = 0.05;
this.gravitySpeed = 0;
this.update = function() {
ctx = myGameArea.context;
ctx.fillStyle = color;
ctx.fillRect(this.x, this.y, this.width, this.height);
}
this.newPos = function() {
this.gravitySpeed += this.gravity;
this.x += this.speedX;
this.y += this.speedY + this.gravitySpeed;
}
}
Druk die onderkant
Om te verhoed dat die rooi vierkant vir ewig val, stop die val wanneer dit die onderkant van die spelgebied tref:
Voorbeeld
this.newPos = function() {
this.gravitySpeed += this.gravity;
this.x += this.speedX;
this.y += this.speedY + this.gravitySpeed;
this.hitBottom();
}
this.hitBottom = function() {
var rockbottom = myGameArea.canvas.height - this.height;
if (this.y > rockbottom) {
this.y = rockbottom;
}
}
Versnel op
In 'n speletjie, wanneer jy 'n krag het wat jou aftrek, moet jy 'n metode hê om die komponent te dwing om op te versnel.
Aktiveer 'n funksie wanneer iemand 'n knoppie klik, en laat die rooi vierkant in die lug opvlieg:
Voorbeeld
<script>function accelerate(n) {
myGamePiece.gravity = n;
}</script>
<button onmousedown="accelerate(-0.2)" onmouseup="accelerate(0.1)">ACCELERATE</button>
N spel
Maak 'n speletjie gebaseer op wat ons tot dusver geleer het: