0
我剛剛嘗試在我一直在研究的HTML5遊戲中同時動畫多個圖像(玩家)時遇到了問題。當一次移動一個玩家時,它的效果非常好,但是當另一個玩家連接時,我開始遇到一些問題。畫布 - 你如何動畫多個圖像一次?
正如你在下面的代碼中所看到的,我使用clearRect()
來阻止玩家在動畫過程中在畫布上的位置。這對我來說是一個問題,因爲當我爲第二個球員製作動畫時,它會從畫布中移除第一個球員。
我覺得自己已經將自己編入了一個角落,但希望有人能爲我的問題揭示可能的解決方案。
在此先感謝。
var players = [];
function Player(number, startX, startY, endX, endY) {
this.number = number;
this.startX = startX;
this.startY = startY;
this.endX = endX;
this.endY = endY;
}
Player.prototype.update = function() {
var startY = this.startY;
var startX = this.startX;
var endY = this.endY;
var endX = this.endX;
var playerY = startY;
var playerX = startX;
var playerInterval = setInterval(function() {
playerContext.clearRect(0,0,2000,2000);
if(playerY < endY) {
playerY += 2.5;
}
if(playerY > endY) {
playerY -= 2.5;
}
if(playerX < endX) {
playerX += 2.5;
}
if(playerX > endX) {
playerX -= 2.5;
}
playerContext.fillText('0', playerX, playerY, 50, 25);
if(playerY == endY && playerX == endX) {
clearInterval(playerInterval);
}
});
};
function drawPlayers() {
for (var i = 0; i < data.length; i++) {
var startX = data[i].startX/2;
var startY = data[i].startY/2;
var endX = data[i].x/2;
var endY = data[i].y/2;
var number = data[i].number;
var player = new Player(number, startX, startY, endX, endY);
players.push(player);
}
drawEach();
}
drawPlayers();
function drawEach() {
for (var i = 0; i < players.length; i++) {
var thisPlayer = players[i];
thisPlayer.update();
}
}
當它放置在那裏時,它會導致所有玩家位置保持在畫布上,同時在'setInterval()'中動畫。在這種情況下,我用'fillText('0'...''來說明玩家,這會留下0的痕跡。 –
@Filthy_Rich我在代碼上看起來更接近一點,並提供了進一步的信息。 –
我明白你的意思了,這很有道理,感謝你們的領導,早上熱衷於嘗試這個,請讓你知道它是怎麼回事:) –