Спрайт анимация мигает - PullRequest
       13

Спрайт анимация мигает

0 голосов
/ 06 февраля 2019

Я делаю базовую игру на основе javascript, которую я изучал в качестве домашней работы.Хотя анимация идет хорошо, когда нажимаешь левую клавишу, я не могу понять, как заставить код правильно воспринимать второй ряд изображения, который будет отображаться как движущийся, как с правой стороны.здесь: https://imgur.com/aQLPd5X

Заставить персонажа в игре двигаться вправо и влево с соответствующим изображением, взятым по ссылке, приведенной выше.

  function Draw(){
    context.clearRect(0,0,canvas.width,canvas.height);
    context.save();
            context.translate(x,0);
            context.drawImage(backgroundImg,0,0,canvas.width,canvas.height); // Backround image.
            context.drawImage(backgroundImg,canvas.width,0,canvas.width,canvas.height); // Backround image.
             x-=10;
        if( x <- canvas.width ){x=0;}
                context.restore();  
        if(Direction==0){ // Right Direction.
            frameNumber++;
        if(frameNumber==8){frameNumber=0};
            xSprite=(frameNumber%8) * frameWidth;
            context.drawImage(char2,xSprite,0,frameWidth,frameHeight,charx,chary,frameWidth,frameHeight); // Char going right.
                        }
        if(Direction==1){ // Left Direction.
            frameNumber--;
            context.drawImage(char2,xSprite*(frameNumber * frameHeight),frameHeight,frameWidth,frameHeight*2,charx,chary,frameWidth,frameHeight*2); // Char going left.
        if(frameNumber==0){frameNumber=8};
                xSprite=(frameNumber * frameWidth)*frameHeight;
            }
        }

1 Ответ

0 голосов
/ 07 февраля 2019

Я решил программу, и это было с управлением направлением.С помощью вышеприведенного кода получилось так, что число фреймберов вышло бы из количества фактических номеров кадров, которые у меня есть на картинке, поэтому все, что я сделал, это добавил:

if(frameNumber==0) {
  frameNumber=8
};
xSprite=(frameNumber%8) * frameWidth;
context.drawImage(char2,xSprite,***140***,frameWidth,frameHeight,charx,chary,frameWidth,frameHeight);
...