This site requires JavaScript, please enable it in your browser!
Greenfoot back
n1nikko
n1nikko wrote ...

2014/6/7

Need help switching spirtes when i change directions

n1nikko n1nikko

2014/6/7

#
whenever I move right it will display the right sprites, but i don't know how to make it display the left sprites when it moves left. Code: import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Character here. * * @author (your name) * @version (a version number or a date) */ public class Person extends Actor { private GreenfootImage image2; private GreenfootImage image3; private GreenfootImage image4; private GreenfootImage image5; private GreenfootImage image6; private GreenfootImage image7; private GreenfootImage image8; private GreenfootImage image9; private GreenfootImage image10; private GreenfootImage image11; private GreenfootImage image2L; private GreenfootImage image3L; private GreenfootImage image4L; private GreenfootImage image5L; private GreenfootImage image6L; private GreenfootImage image7L; private GreenfootImage image8L; private GreenfootImage image9L; private GreenfootImage image10L; private GreenfootImage image11L; private int vSpeed = 0; private int acceleration = 2; public Person() { image2 = new GreenfootImage ("Character2.png"); image3 = new GreenfootImage ("Character3.png"); image4 = new GreenfootImage ("Character4.png"); image5 = new GreenfootImage ("Character5.png"); image6 = new GreenfootImage ("Character6.png"); image7 = new GreenfootImage ("Character7.png"); image8 = new GreenfootImage ("Character8.png"); image9 = new GreenfootImage ("Character9.png"); image10 = new GreenfootImage("Character10.png"); image11 = new GreenfootImage("Character11.png"); image2L = new GreenfootImage("Character2Left.png"); image3L = new GreenfootImage("Character3Left.png"); image4L = new GreenfootImage("Character4Left.png"); image5L = new GreenfootImage("Character5Left.png"); image6L = new GreenfootImage("Character6Left.png"); image7L = new GreenfootImage("Character7Left.png"); image8L = new GreenfootImage("Character8Left.png"); image9L = new GreenfootImage("Character9Left.png"); image10L = new GreenfootImage("Character10Left.png"); image11L = new GreenfootImage("Character11Left.png"); setImage(image2); } /** * Act - do whatever the Character wants to do. This method is called whenever * the 'Act' or 'Run' button gets pressed in the environment. */ public void act() { if (Greenfoot.isKeyDown("left")) { move(-4); movementLeft(); } if (Greenfoot.isKeyDown("right")) { movementRight(); move(4); } checkFall(); } public void fall() { setLocation(getX(), getY()+ vSpeed); vSpeed = vSpeed + acceleration; } public boolean onGround() { int spriteHeight = getImage().getHeight(); int lookForGround = (int) (spriteHeight/4) + 5; Actor ground = getOneObjectAtOffset(0, lookForGround, Ground.class); if (ground == null) { return false; }else{ return true; } } public void checkFall() { if(onGround()) { vSpeed=0; } else { fall(); } } public void movementRight() { if (getImage().equals(image2)) { setImage (image3); }else if(getImage().equals(image3)) { setImage (image4); }else if (getImage().equals(image4)) { setImage (image5); }else if (getImage().equals(image5)) { setImage (image6); }else if (getImage().equals(image6)) { setImage (image7); }else if(getImage().equals(image7)) { setImage (image8); }else if(getImage().equals(image8)) { setImage (image9); }else if(getImage().equals(image9)) { setImage (image10); }else if(getImage().equals(image10)) { setImage (image11); }else if(getImage().equals(image11)) { setImage (image3); } } public void movementLeft() { if (getImage().equals(image2L)) { setImage (image3L); }else if(getImage().equals(image3L)) { setImage (image4L); }else if (getImage().equals(image4L)) { setImage (image5L); }else if (getImage().equals(image5L)) { setImage (image6L); }else if (getImage().equals(image6L)) { setImage (image7L); }else if(getImage().equals(image7L)) { setImage (image8L); }else if(getImage().equals(image8L)) { setImage (image9L); }else if(getImage().equals(image9L)) { setImage (image10L); }else if(getImage().equals(image10L)) { setImage (image11L); }else if(getImage().equals(image11L)) { setImage (image3L); } } }
lordhershey lordhershey

2014/6/8

#
In you move right and left turn tthe last else if statement to be just an else statement, this is so if none of the previous tests assign an image it will take a default.
You need to login to post a reply.