Peli pyöriminen
- Edellinen sivu Peli hyppy
- Seuraava sivu Peli liikunta
Punainen laatikko voi pyöriä:
Pyöritä osaa
Tässä opetusosassa punainen laatikko voi liikkua pelialueella, mutta sitä ei voi kiertää tai pyörittää.
Jotta voimme pyörittää komponenttia, meidän on muutettava tapaa, jolla piirrämme komponentin.
Ainoa käytettävissä oleva pyörimismetodi pöydällä on, että se pyörittää koko pöytää:

Kaikki muut, mitä piirrät pöydälle, pyöritetään, ei vain tietty komponentti.
Tämä on syy, miksi meidän on tehtävä: update()
tehtävässä tehdään muutoksia:
Ensiksi, säilytämme nykyisen pöydän kontekstin:
ctx.save();
Sitten siirrämme koko pöydän tiettyyn komponentin keskikohdalle translate-metodilla:
ctx.translate(x, y);

Sitten suoritamme halutun pyörimisen rotate() metodilla:
ctx.rotate(angle);

Nyt olemme valmiita piirtämään komponentin pöydälle, mutta nyt meillä on piirrettävä keskikohdan sijainti 0,0 kohtaan siirrettyä (ja pyöritettyä) pöytää:
ctx.fillRect(width / -2, height / -2, width, height);

Valmistuttuamme meidän on käytettävä restore-metodia palauttaaksemme tämän kontekstityypin alkuperäiseen sijaintiin:
ctx.restore();
tämä komponentti on ainoa, joka pyörii:

komponentin rakentaja
komponentti
rakentajalla on nimi kulma
uusi ominaisuus, joka edustaa komponentin kulmaa asteen muodossa.
komponentti
rakentajan update
Metodi on komponentin piirtämisen sijainti, tässä näet sallitun komponentin pyörimisen muutoksen:
esimerkki
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(); }
- Edellinen sivu Peli hyppy
- Seuraava sivu Peli liikunta