게임에서 캐릭터의 움직임을 움직이는 데 문제가 있습니다. 16 요소의 이미지 배열을 사용하고 있습니다.이미지 배열을 사용하는 캐릭터 애니메이션
첫 번째 사이클이 잘 진행되지만 그 이후에는 캐릭터가 움직이지 않습니다. 그것은 이동하지만 그 사이클의 첫 번째 요소를 보여주는 이미지를 변경하지는 않습니다. 방향을 바꾸면 한 싸이클이 다시 잘 돌아가고 같은 방향으로 멈 춥니 다.
아이디어가 있으십니까? 어떤 방향이 변경되지 않은 경우 당신은 스프라이트를 업데이트하지 않는
public void paintHero(Graphics g) {
// paint character
offG.drawImage(heroCurrent, hero.getHeroX(), hero.getHeroY(), this);
// show first image of the cycle where the character stands
if (hero.getMoveX() == 0 && hero.getMoveY() == 0)
heroFrame = 0;
else {
heroFrame++;
if (heroFrame == 16)
heroFrame = 0;
// I'm dividing heroFrame by 4 to slow down the animation
if (hero.isMovingUp() == true)
heroCurrent = heroSprites[4 + heroFrame/4];
if (hero.isMovingDown() == true)
heroCurrent = heroSprites[0 + heroFrame/4];
if (hero.isMovingLeft() == true)
heroCurrent = heroSprites[8 + heroFrame/4];
if (hero.isMovingRight() == true)
heroCurrent = heroSprites[12 + heroFrame/4];
}
}
은 작동 방법을 변경하지 않지만 'hero.isMovingUp() == true'를 수행 할 필요는 없습니다. 'if (hero.isMovingUp())'도 마찬가지로 작동합니다. – DoubleDouble
thats true :) thx – Kokufuu