Grawitacja gry
- Poprzednia strona Dźwięk gry
- Następna strona Skok gry
W niektórych grach istnieje siła przyciągająca komponenty gry w jedną stronę, na przykład grawitacja przyciąga obiekty do ziemi.
grawitacja
Jeśli chcesz dodać tę cechę do naszej funkcji konstruktora komponentu, najpierw dodaj gravity
Atrybut, ustawiający bieżącą grawitację. Następnie dodajemy gravitySpeed
Atrybuty, które zwiększają się za każdym razem, gdy aktualizujemy klatkę:
Przykład
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; } }
Dotknął dna
Aby zapobiec wiecznemu opadaniu czerwonego bloku, musimy zatrzymać opadanie, gdy osiągnie on dolną część obszaru gry:
Przykład
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; } }
Przyspiesz
W grze, gdy siła pociąga blok w dół, powinieneś zaprojektować metodę, która zmusza komponent do przyspieszenia.
Kiedy ktoś kliknie przycisk, wywołuje to funkcję, która pozwala na lot czerwonego bloku w powietrze:
Przykład
<script> function accelerate(n) { myGamePiece.gravity = n; } </script> <button onmousedown="accelerate(-0.2)" onmouseup="accelerate(0.1)">Przyspiesz</button>
Gra
Stwórz grę na podstawie wiedzy, którą zdobyliśmy do tej pory:
Przykład
Kliknij przycisk przyspieszenia, aby zacząć grę.
Jak długo przetrwam? Użyj przycisku przyspieszenia, aby pozostać w powietrzu.
- Poprzednia strona Dźwięk gry
- Następna strona Skok gry