Here I have a class that should play an animation.
It's playing the animation well. The animation is following the char, where it has to play, as well. The only thing is that I want it to play half his height higher. If I use the setLocation method, like this --> setLocation (getX(), getY()); nothing strange is happening.
If (for every image) I do --> setLocation (getX(), getY()-getImage().getHeight()/2); the animation constantly plays somewhere above in the screen.
Some help appreciated.
Yours,
Dennis
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) /** * Write a description of class Char here. * * @author (your name) * @version (a version number or a date) */ public class LevelUp extends Actor { //Verticale snelheid en acceleratie private int vSpeed = 0; private int acceleration = 1; private boolean jumping; private int jumpStrength = -15; //Loop variabelen private int speed = 4; //Frame float private float frame = 0; private long lastAdded = System.currentTimeMillis(); // init sequence private int sequence = 0; //richting public int richting = 2; //CHAR Eigenschappen private int mesos = 0; public int level = 1; private int newYvalue; private GreenfootImage levelUp[] = { new GreenfootImage("LevelUp_0.png"), new GreenfootImage("LevelUp_1.png"), new GreenfootImage("LevelUp_2.png"), new GreenfootImage("LevelUp_3.png"), new GreenfootImage("LevelUp_4.png"), new GreenfootImage("LevelUp_5.png"), new GreenfootImage("LevelUp_6.png"), new GreenfootImage("LevelUp_7.png"), new GreenfootImage("LevelUp_8.png"), new GreenfootImage("LevelUp_9.png"), new GreenfootImage("LevelUp_10.png"), new GreenfootImage("LevelUp_11.png"), new GreenfootImage("LevelUp_12.png"), new GreenfootImage("LevelUp_13.png"), new GreenfootImage("LevelUp_14.png"), new GreenfootImage("LevelUp_15.png"), new GreenfootImage("LevelUp_16.png"), new GreenfootImage("LevelUp_17.png"), new GreenfootImage("LevelUp_18.png"), new GreenfootImage("LevelUp_19.png"), new GreenfootImage("LevelUp_20.png") }; // LevelUp constructor public LevelUp(){ animateLevelUp(); } public LevelUp(int xValue, int yValue){ animateLevelUp(); } public void act(){ animateLevelUp(); timer(); } public void timer() { long curTime = System.currentTimeMillis(); if (curTime >= lastAdded + 150) //5000ms = 5s { frame++; lastAdded = curTime; } } public void animateLevelUp() { //System.out.println("animateLevel up is aangeroepen....."); if(frame == 1) { setImage( levelUp [0]); } if(frame == 2) { setImage( levelUp [1]); } if(frame == 3) { setImage( levelUp [2]); } if(frame == 4) { setImage( levelUp [3]); } if(frame == 5) { setImage( levelUp [4]); } if(frame == 6) { setImage( levelUp [5]); } if(frame == 7) { setImage( levelUp [6]); } if(frame == 8) { setImage( levelUp [7]); } if(frame == 9) { setImage( levelUp [8]); } if(frame == 10) { setImage( levelUp [9]); } if(frame == 11) { setImage( levelUp [10]); } if(frame == 12) { setImage( levelUp [11]); System.out.println(getY()-(getImage().getHeight()/2)); System.out.println(getImage().getHeight()/2); System.out.println(getY()); } if(frame == 13) { setImage( levelUp [12]); } if(frame == 14) { setImage( levelUp [13]); } if(frame == 15) { setImage( levelUp [14]); } if(frame == 16) { setImage( levelUp [15]); } if(frame == 17) { setImage( levelUp [16]); } if(frame == 18) { setImage( levelUp [17]); } if(frame == 19) { setImage( levelUp [18]); } if(frame == 20) { setImage( levelUp [19]); } if(frame == 21) { setImage( levelUp [20]); frame = 0; sequence = 0; getWorld().removeObject(this); return; } } // public void levelUp() // { // level ++; // Greenfoot.playSound("LevelUp.wav"); // } }