Spil rotation
- Forrige side Spil bouncy
- Næste side Spil bevægelse
den røde方块 kan rotere:
rotér komponent
I den tidligere del af denne tutorial kan den røde方块 bevege sig i spilområdet, men den kan ikke dreje eller rotere.
For at rotere en komponent, skal vi ændre måden, vi tegner komponenten på.
Det eneste tilgængelige rotationsmetode for canvas-elementet roterer hele canvas:

alle de andre ting, du tegner på canvas, vil også blive roteret, og ikke kun den specifikke komponent.
dette er grunden til, at vi skal gøre det i update()
gør nogle ændringer i metoden:
Først gemmer vi den nuværende canvaskontekst:
ctx.save();
Dernæst flytter vi hele canvas til den specifikke komponentens center med translate-metoden:
ctx.translate(x, y);

Dernæst udfører vi den ønskede rotation med rotate() metoden:
ctx.rotate(angle);

Nu er vi klar til at tegne komponenten på canvas, men nu tegner vi centret af komponenten på position 0,0 på den flyttede (og roterede) canvas:
ctx.fillRect(width / -2, height / -2, width, height);

Når vi er færdige, skal vi bruge restore-metoden til at gendanne den gemte position af konteksten:
ctx.restore();
denne komponent er det eneste, der kan rotere:

komponentkonstruktøren
component
konstruktøren har en metode kaldet vinkel
ny egenskab, som repræsenterer komponentens vinkel i radianer.
component
konstruktørens update
metoden er, hvor vi tegner komponentens placering, her kan du se, hvordan komponentens rotation ændres:
instans
function component(width, height, color, x, y) { this.width = width; this.height = height; this.angle = 0; 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(); } } function updateGameArea() { myGameArea.clear(); myGamePiece.angle += 1 * Math.PI / 180; myGamePiece.update(); }
- Forrige side Spil bouncy
- Næste side Spil bevægelse