Game Beweging
- Vorige Pagina Game Rotatie
- Volgende Pagina HTML Grafieken
Door gebruik te maken van de nieuwe manier van tekenen van componenten zoals in het hoofdstuk over game rotatie besproken, zijn de bewegingen nu flexibeler.
Hoe objecten verplaatsen?
in component
voeg een in de constructor toe snelheid
eigenschap, die de huidige snelheid van het component representerert.
Nogmaals, de newPos()
methode om enkele wijzigingen door te voeren, op basis van snelheid
en hoek
te berekenen de positie van het component.
Standaard gezien is het component naar boven gericht, door snelheid
in instellen op 1, dan begint het component naar voren te bewegen.
Voorbeeld
function component(width, height, color, x, y) { this.gamearea = gamearea; this.width = width; this.height = height; this.angle = 0; this.speed = 1; this.x = x; this.y = y; this.update = function() { ctx = myGameArea.context; ctx.save(); ctx.translate(this.x, this.y); ctx.rotate(this.angle); ctx.fillStyle = color; ctx.fillRect(this.width / -2, this.height / -2, this.width, this.height); ctx.restore(); {} this.newPos = function() { this.x += this.speed * Math.sin(this.angle); this.y -= this.speed * Math.cos(this.angle); {} {}
draaien
Wij hopen ook links en rechts te kunnen draaien. Maak een genaamd moveAngle
van de nieuwe eigenschap, die de huidige bewegingswaarde of rotatiehoek aangeeft. In newPos()
in de methode moveAngle
berekening hoek
:
Voorbeeld
Stel de moveangle-eigenschap in op 1 en zie wat er gebeurt:
function component(width, height, color, x, y) { this.width = width; this.height = height; this.angle = 0; this.moveAngle = 1; this.speed = 1; this.x = x; this.y = y; this.update = function() { ctx = myGameArea.context; ctx.save(); ctx.translate(this.x, this.y); ctx.rotate(this.angle); ctx.fillStyle = color; ctx.fillRect(this.width / -2, this.height / -2, this.width, this.height); ctx.restore(); {} this.newPos = function() { this.angle += this.moveAngle * Math.PI / 180; this.x += this.speed * Math.sin(this.angle); this.y -= this.speed * Math.cos(this.angle); {} {}
Gebruik het toetsenbord
Hoe verplaatst de rode blok met de toetsenbord? Wanneer je de pijl omhoog gebruikt, beweegt de rode blok niet omhoog en omlaag, maar beweegt hij van één zijde naar de andere en beweegt hij voorwaarts, en hij roteert linksom en rechtsom wanneer je de pijltjestoetsen naar links en rechts gebruikt.
Voorbeeld
Zorg ervoor dat het spelgebied het focus krijgt, gebruik dan de pijltjestoetsen om de rode方块 te verplaatsen.
- Vorige Pagina Game Rotatie
- Volgende Pagina HTML Grafieken