Я пытаюсь создать RPG-игру HTML5, используя EaselJS для обработки анимации спрайтов. Когда я нажимаю клавиши со стрелками в любом направлении, персонаж не воспроизводит анимацию, вместо этого он, кажется, возвращается к кадру 0 и останавливается вместо того, чтобы зацикливать анимацию.
Мне нужно, чтобы анимация продолжала зацикливаться, пока клавиша нажата, вместо этого персонаж застревает в кадре.
Вот игра, которая у меня есть до сих пор, это действительно беспорядок, потому что я экспериментирую и все еще изучаю HTML5. http://cloudrealms.com/dev/
Вот код, который я использую:
Захват клавиши со стрелкой:
$(window).keydown(
function(e){
keys[e.which] = true;
if(isMovementKey(e.which))
{
moveOrder.unshift(e.which);
jQuery.unique(moveOrder);
animationsToPlay.push(1);
}
e.preventDefault();
return false;
}
);
$(window).keyup(
function(e){
keys[e.which] = false;
if(isMovementKey(e.which))
{
moveOrder.splice(jQuery.inArray(e.which, moveOrder),1);
}
}
);
В моем тике у меня есть функция HandleInput(), вот код:
function HandleInput()
{
switch (moveOrder[0]) {
case 38: /* Up arrow was pressed */
playerSequence[playerID].gotoAndPlay("walk_up");
playerSequence[playerID].y -= playerSequence[playerID].vY;
break;
case 40: /* Down arrow was pressed */
playerSequence[playerID].gotoAndPlay("walk_down");
playerSequence[playerID].y += playerSequence[playerID].vY;
break;
case 37: /* Left arrow was pressed */
playerSequence[playerID].gotoAndPlay("walk_left");
playerSequence[playerID].x -= playerSequence[playerID].vX;
break;
case 39: /* Right arrow was pressed */
playerSequence[playerID].gotoAndPlay("walk_right");
playerSequence[playerID].x += playerSequence[playerID].vX;
break;
}
}
Что я хочу знать, так это то, как я могу анимировать спрайт игрока, пока нажата клавиша со стрелкой?