جاذبه بازی
در برخی بازیها، نیرویی وجود دارد که اجزا را به یک سمت میکشد، مانند نیروی جاذبه که اجزا را به سمت زمین میکشد.
重力
اگر میخواهید این ویژگی را به تابع سازندهی ما اضافه کنید، ابتدا یک gravity
کیفیت، کی کیفت تنظیم میکند که نیروی جاذبه را. سپس یک gravitySpeed
ویژگیها، هر بار که ما فریم را بهروزرسانی میکنیم، افزایش مییابند:
مثال
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; } }
به پایین رسیدن
برای جلوگیری از اینکه بلوک قرمز همیشه به پایین بیفتد، باید در زمانی که به پایینترین نقطه بازی میرسد، حرکت آن را متوقف کنیم:
مثال
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; } }
تسریع
در بازی، وقتی که یک نیرویی بلوک را به پایین میکشد، باید یک روش طراحی کنید که باعث شود اجزا به سرعت حرکت کنند.
جب کسی باتن کلیک کند، یک تابع فعال میشود که بلوک قرمز را به هوا میبرد:
مثال
<script> function accelerate(n) { myGamePiece.gravity = n; } </script> <button onmousedown="accelerate(-0.2)" onmouseup="accelerate(0.1)">تسریع</button>
یک بازی
بر اساس دانشی که تا به حال آموختهایم، یک بازی بسازید:
مثال
برای شروع بازی، دکمه شتاب را کلیک کنید.
چند سال میتوانید زنده بمانید؟ از دکمه شتاب برای ماندن در هوا استفاده کنید.