Oyun Dönme
- Önceki Sayfa Oyun Zıplama
- Sonraki Sayfa Oyun Hareket
Kırmızı kutu döndürülebilir:
Döndürülebilir bileşen
Bu rehberin önceki bölümlerinde, kırmızı kutu oyun alanında hareket edebiliyordu, ancak döndürülebilir veya döndürülemezdi.
Bileşeni döndürmek için, bileşeni çizme yöntemini değiştirmemiz gereklidir.
canvas elementinde tek kullanılabilir döndürme yöntemi, tüm canva'yı döndürür:

sizin canva üzerinde çizdiğiniz diğer tüm içerikler de yalnızca belirli bileşen değil, aynı zamanda döndürülür.
Bu yüzden, update()
yönteminde bazı değişiklikler yapılıyor:
Öncelikle, mevcut canva上下文 nesnesini kaydediyoruz:
ctx.save();
Sonra tüm canva'yı belirli bileşen merkeziye taşımak için translate yöntemini kullanıyoruz:
ctx.translate(x, y);

Sonra istenen döndürmeyi yapmak için rotate() yöntemini kullanıyoruz:
ctx.rotate(angle);

Şimdi bileşeni çizmek için hazırlanıyoruz, ancak şimdi bileşenin merkezi, 0,0 konumuna taşınmış, döndürülmüş (ve kaydırılmış) bir canva üzerinde çizilecek:
ctx.fillRect(width / -2, height / -2, width, height);

İşlem tamamlandıktan sonra, bu上下文对象必须使用 restore yöntemi, özgün konumuna geri getirilmelidir:
ctx.restore();
bu bileşen, tek döndürülen şeydir:

bileşen oluşturucu
bileşen
oluşturucunun adı angle
yeni özelliği, bileşen açısını temsil eden açısal değerdir.
bileşen
oluşturucunun update
metot, burada bileşenin konumunu çizdiğimiz yere, burada bileşenin döndürülebilirliğini görebilirsiniz:
örnek
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(); }
- Önceki Sayfa Oyun Zıplama
- Sonraki Sayfa Oyun Hareket