Spel rotation
- Föregående sida Spel bouncy
- Nästa sida Spel rörelse
Den röda rutan kan roteras:
Roterar
Roteringskomponent
I den tidigare delen av denna tutorial kunde den röda rutan röra sig på spelområdet, men den kunde inte vrida eller rotera.
För att rotera en komponent måste vi ändra sättet vi ritar komponenten.

Det enda roteringsmetoden som är tillgänglig för canvas-elementet kommer att rotera hela canvas:
alla andra saker du ritar på canvas kommer också att roteras, inte bara den specifika komponenten. det är därför vi måste i
uppdatera()
metoden gör några ändringar:
ctx.spara();
Först sparar vi den aktuella canvas-kontextobjektet:
Sedan använder vi translate-metoden för att flytta hela canvas till specifik komponentens centrum:

ctx.translatera(x, y);
Sedan använder vi rotera() metoden för att utföra den önskade rotationen:

ctx.rotera(vinkel);
Nu är vi redo att rita komponenten på canvas, men nu kommer vi att rita dess centrum på position 0,0 på den trasigerade (och roterade) canvas:

ctx.fyllRektangel(bredd / -2, höjd / -2, bredd, höjd);
ctx återställ();
När vi är klara, måste vi använda restore-metoden för att återställa denna kontextobjekt till dess sparade plats:

den här komponenten är det enda som roterar:
ny egenskap, som är radianerna som representerar komponentens vinkel.
komponentkonstruktorn Konstruktorn har en namn
vinkel
ny egenskap, som är radianerna som representerar komponentens vinkel.
Konstruktorns uppdatera
Metoden är där vi ritar komponentens plats, här kan du se tillåtelse för komponentens rotation:
exempel
function komponent(bredd, höjd, färg, x, y) { this.bredd = bredd; this.höjd = höjd; this.vinkel = 0; this.x = x; this.y = y; this.uppdatera = function() { ctx = minSpeletområde.context; ctx.spara(); ctx.translatera(this.x, this.y); ctx.rotera(this.vinkel); ctx.fyllFärg = färg; ctx.fyllRektangel(this.bredd / -2, this.höjd / -2, this.bredd, this.höjd); ctx återställ(); } } function uppdateraSpeletområde() { minSpeletområde.töm(); myGamePiece.angle += 1 * Math.PI / 180; myGamePiece.update(); }
- Föregående sida Spel bouncy
- Nästa sida Spel rörelse