Unele jocuri au forțe care trage componenta joc într-o singură direcție, cum ar fi gravitatea trage obiecte la sol.
Gravitatie
Pentru a adăuga această funcționalitate a constructorului noastre componente, adăugați mai întâi o gravity
de proprietate, care stabilește gravitatea actuală. Apoi se adaugă un gravitySpeed
de proprietate, care crește de fiecare dată când actualizăm cadru:
Exemplu
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 ;
}
}
Încearcă - l singur » Hit Bottom
Pentru a preveni pătrat roșu de la care se încadrează pentru totdeauna, opri căderea când va atinge partea de jos a zonei de joc:
Exemplu
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;
}
}
Încearcă - l singur » Accelerarea Up
Într-un joc, atunci când aveți o forță care trage în jos, ar trebui să aveți o metodă de a forța componenta pentru a accelera în sus.
Declanșa o funcție atunci când cineva face clic pe un buton, și de a face pătrat roșu acoperi în aer:
Exemplu
<script>function accelerate(n) {
myGamePiece.gravity = n;
}</script>
<button onmousedown=" accelerate(-0.2) "
onmouseup=" accelerate(0.1) ">ACCELERATE</button>
Încearcă - l singur » Un joc
Asigurați-un joc bazat pe ceea ce am învățat până acum: