Sorry about all these questions but I have one more.
I have this sprite sheet were the first three imaegs are the animaton for the guy walking up, then thenext 3 are of him walking down etc. I have figured out how to do this animation, but for some reason, my code doesn’t want my guy to “walk”
In my KeyPeessed It moves the character and trigers it to change frames by setting the varaible walking to true…
//Check arrows for character movement
if(e.getKeyCode() == keyUp){
player_y = player_y - 3;
walk = true;
walking = true;
dir = 1;
repaint();
} else if (e.getKeyCode() == keyDown){
player_y = player_y + 3;
walk = true;
walking = true;
dir = 2;
repaint();
} else if (e.getKeyCode() == keyLeft){
player_x = player_x - 3;
dir = 3;
walk = true;
walking = true;
repaint();
} else if (e.getKeyCode() == keyRight){
player_x = player_x + 3;
dir = 4;
walk = true;
walking = true;
repaint();
}
Then in the KeyRelease method, I make he animation stop by turning off walking…
public void keyReleased(KeyEvent e){
if(e.getKeyCode() == keyUp){
walking = false;
} else if (e.getKeyCode() == keyDown){
walking = false;
} else if (e.getKeyCode() == keyLeft){
walking = false;
} else if (e.getKeyCode() == keyRight){
walking = false;
}
}
Then what does the animation is in my very own drawAvatar method… READ THE NOTES IN THE CODE
public void drawAvatar(Image avatar,int x,int y,int sprite,int frame,Graphics g){
int sprite2;
int up = 0;
int down = 96;
int left = 192;
int right = 288;
sprite2 = sprite * 32;
//The following IF statements is suppos to trigger the animation....
if(walk==true){
up = 0;
down = 96;
left = 192;
right = 288;
//if walking == true, then keep doing the animations, else stop. If you take away the if statement and keep walk = false, the animation will play indefinatly, that is my problem. The animation won't play because of if walking = true
if(walking == true){
walk = false;
} else {
walk = true;
}
}else if(walk==false){
up = 32;
down = 128;
left = 224;
right = 320;
walk = true;
}
switch(frame){
case 1:
//Up
g.drawImage(avatar,x,y,x+32,y+32,up,sprite2,up + 32,sprite2+32,this);
repaint();
break;
case 2:
//Down
g.drawImage(avatar,x,y,x+32,y+32,down,sprite2,down + 32,sprite2+32,this);
repaint();
break;
case 3:
//Left
g.drawImage(avatar,x,y,x+32,y+32,left,sprite2,left + 32,sprite2+32,this);
repaint();
break;
case 4:
//Right x y x y
g.drawImage(avatar,x,y,x+32,y+32,right,sprite2,right + 32,sprite2+32,this);
repaint();
break;
}
}
[code[