Einige Spiele haben Kräfte, die die Spielkomponente in eine Richtung zieht, wie die Schwerkraft Gegenstände auf den Boden zieht.
Schwerkraft
Um diese Funktionalität in unsere Komponente Konstruktor, fügen Sie zunächst eine gravity
- Eigenschaft, die den aktuellen Schwerkraft setzt. Dann fügen Sie eine gravitySpeed
Eigenschaft, die erhöht jedes Mal wenn wir den Rahmen zu aktualisieren:
Beispiel
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 ;
}
}
Versuch es selber " Hit the Bottom
Um zu verhindern, das rote Quadrat für immer fallen, die fallen nicht mehr, wenn er den Boden des Spielfeldes trifft:
Beispiel
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;
}
}
Versuch es selber " Beschleunigen Up
In einem Spiel, wenn Sie eine Kraft haben, die Sie nach unten zieht sollten Sie eine Methode, um die Komponente zu zwingen, bis zu beschleunigen.
Lösen Sie eine Funktion, wenn jemand auf eine Schaltfläche klickt, und machen das rote Quadrat in der Luft fliegen:
Beispiel
<script>function accelerate(n) {
myGamePiece.gravity = n;
}</script>
<button onmousedown="accelerate(-0.2)"
onmouseup="accelerate(0.1)">ACCELERATE</button>
Versuch es selber " Ein Spiel
Machen Sie ein Spiel auf das, was wir bisher gelernt haben: