Chuyển động game
- Trang trước Nhảy game
- Trang tiếp theo Thể loại game
红色方块能旋转:
Khối đỏ có thể quay:
Quay
Xoay phần
Trong phần trước của hướng dẫn này, khối đỏ có thể di chuyển trên khu vực trò chơi nhưng không thể quay hoặc xoay.

Để quay thành phần, chúng ta phải thay đổi cách vẽ thành phần.
phương pháp duy nhất có thể quay toàn bộ canvas của canvas là: tất cả nội dung khác mà bạn vẽ trên canvas cũng sẽ được quay, không chỉ thành phần cụ thể.
Đó là lý do tại sao chúng ta phải trong
update()
ctx.save();
thực hiện một số thay đổi trong phương pháp:
Trước tiên, chúng ta lưu đối tượng ngữ cảnh canvas hiện tại:

Sau đó chúng ta sử dụng phương pháp translate để dịch chuyển toàn bộ canvas đến tâm của thành phần cụ thể:
ctx.translate(x, y);

Sau đó chúng ta sử dụng phương pháp rotate() để thực hiện quay mà mình muốn:
ctx.rotate(angle);

Hiện tại chúng ta đang chuẩn bị vẽ thành phần lên canvas, nhưng bây giờ chúng ta sẽ vẽ vị trí tâm của thành phần trên vị trí 0,0 trên canvas đã dịch chuyển (và quay):
ctx.restore();
ctx.fillRect(width / -2, height / -2, width, height);

Sau khi hoàn thành, chúng ta phải sử dụng phương pháp restore để khôi phục đối tượng ngữ cảnh này về vị trí đã lưu:
angle
thành phần là thứ duy nhất có thể quay: khởi tạo thành phần
hàm xây dựng có một tên là
angle
thuộc tính mới của hàm xây dựng, nó là số vĩ độ biểu diễn góc của thành phần. update
phương pháp là vị trí vẽ của thành phần, ở đây bạn có thể thấy sự thay đổi cho phép thành phần quay:
thực thể
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(); }
- Trang trước Nhảy game
- Trang tiếp theo Thể loại game