Bazı oyunlar yerçekimi yere nesneleri çeker gibi, bir yönde oyun bileşeni çeker güçleri var.
yerçekimi
Bizim bileşen kurucusuna bu işlevselliği eklemek için öncelikle bir ekleme gravity
akım yerçekimi ayarlar özelliği. Sonra bir ekleme gravitySpeed
her şey biz çerçeveyi güncellemek artar özelliği,:
Örnek
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 ;
}
}
Kendin dene " Bottom Hit
o oyun alanının dibine vurduğunda düşen durdurmak, sonsuza düşmesini Kırmızı kareyi önlemek için:
Örnek
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;
}
}
Kendin dene " Yukarı hızlandırın
Bir oyunda, aşağı çeker bir güce sahip olduğunda, en fazla hızlandırmak için bileşeni zorlamak için bir yöntem olmalıdır.
Birisi bir düğmeye tıkladığında bir işlev Trigger ve kırmızı kare havaya uçurabilir:
Örnek
<script>function accelerate(n) {
myGamePiece.gravity = n;
}</script>
<button onmousedown=" accelerate(-0.2) "
onmouseup=" accelerate(0.1) ">ACCELERATE</button>
Kendin dene " Bir oyun
Şimdiye kadar öğrendiklerini dayalı bir oyun yapın: