Hi again! I'm currently attempting to animate a walk cycle. I have made three images, for the walk cycle. This is my code for it:
public void move(){
//setting Images
//idle1
GreenfootImage idleOneRight = new GreenfootImage("Idle1.png");
GreenfootImage idleOneLeft = new GreenfootImage("Idle1.png");
idleOneRight.mirrorHorizontally();
//idle2
GreenfootImage idleTwoRight = new GreenfootImage("Idle2.png");
GreenfootImage idleTwoLeft = new GreenfootImage("Idle2.png");
idleTwoRight.mirrorHorizontally();
//shoot1
GreenfootImage shootOneRight = new GreenfootImage("shoot1.png");
GreenfootImage shootOneLeft = new GreenfootImage("shoot1.png");
shootOneRight.mirrorHorizontally();
//shoot2
GreenfootImage shootTwoRight = new GreenfootImage("shoot2.png");
GreenfootImage shootTwoLeft = new GreenfootImage("shoot2.png");
shootTwoRight.mirrorHorizontally();
if(Greenfoot.isKeyDown("left")){
setImage(idleOneLeft);
getImage().scale(getImage().getWidth() + 75, getImage().getHeight() + 75);
move(-5);
while(Greenfoot.isKeyDown("left")){
int leftDelayOne = 0;
int leftResetOne=5;
if(leftDelayOne==0)leftDelayOne--;{
GreenfootImage runningOne = new GreenfootImage("running1.png");
GreenfootImage runningThree = new GreenfootImage("running3.png");
GreenfootImage checkImage = getImage();
if(checkImage==idleOneLeft||checkImage==idleTwoLeft||checkImage==runningThree){
setImage(runningOne);
getImage().scale(getImage().getWidth()+75,getImage().getHeight()+75);
leftDelayOne = leftResetOne;
}
}
int leftDelayTwo = 0;
int leftResetTwo = 5;
if(leftDelayTwo == 0)leftDelayTwo--;{
GreenfootImage runningOne = new GreenfootImage("running1.png");
GreenfootImage runningTwo = new GreenfootImage("running2.png");
GreenfootImage checkImage = getImage();
if(checkImage == runningOne){
setImage(runningTwo);
getImage().scale(getImage().getWidth()+75,getImage().getHeight()+75);
leftDelayTwo = leftResetTwo;
}
}
int leftDelayThree = 0;
int leftResetThree = 5;
if(leftDelayThree==0)leftDelayThree--;{
GreenfootImage runningTwo = new GreenfootImage("running2.png");
GreenfootImage runningThree = new GreenfootImage("running3.png");
GreenfootImage checkImage = getImage();
if(checkImage == runningTwo){
setImage(runningThree);
getImage().scale(getImage().getWidth()+75,getImage().getHeight()+75);
leftDelayThree = leftResetThree;
}
}
}
}
if(Greenfoot.isKeyDown("right")){
move(5);
setImage(idleOneRight);
getImage().scale(getImage().getWidth() + 75, getImage().getHeight() + 75);
}
if(Greenfoot.isKeyDown("up")&&getY()>getWorld().getHeight()-55){
jump();
}
if(Greenfoot.isKeyDown("space")){
}
while(Greenfoot.isKeyDown("left")==false&&Greenfoot.isKeyDown("up")==false&&Greenfoot.isKeyDown("right")==false&&checkOnFloor()==true){
}
It's super convoluted code but it's all I have right now.
Anyway, it isnt working so any advice would be appreciated.
Thanks!
