Problema com atualização de sprites + timing

0 respostas
K
ola eu fiz este seguinte codigo:
package space;

public class AlienEntity extends Entity {

    private Game game;
    private double moveSpeed = 75;
    private Sprite[] frames = new Sprite[4];
    private int number;



   public AlienEntity(Game game,String ref,int x,int y) {

		super("sprites/alien.png",x,y);
		//delcarando as arrays
                frames[0] = sprite;
                frames[1] = SpriteStore.get().getSprite("sprites/alien2.png");
                frames[2] = sprite;
                frames[3] = SpriteStore.get().getSprite("sprites/alien3.png");


                this.game = game;
		dx = -moveSpeed;
                
	}

   public void doLogic() {

	dx = -dx;
	y += 10;

	if (y > 570) {
		game.notifyDeath();
	}
}

    public void move(long delta) {




        long t0 = 0;

        do{
            t0=System.currentTimeMillis();
        }
        while (t0<1000);
        t0 = 0;
        if(number >= frames.length){
            number = 0;
        }else{
         number ++;
        }

        sprite = frames[number];

        







        //limite de um lado;
	if ((dx < 0) && (x < 10)) {
		game.updateLogic();
	}


        //chegou ao limite do lado oposto?
	if ((dx > 0) && (x > 750)) {
		game.updateLogic();
	}

	// continua
	super.move(delta);
}
public void collidedWith(Entity other) {}
}
pode ver que nele há a array frames, e o "number" estas são as variáveis responsáveis por fazer a atualização de sprites porem nesta parte do codigo, o "number" sempre ultrapassa a quantia da array:
long t0 = 0;

        do{
            t0=System.currentTimeMillis();
        }
        while (t0<1000);
        t0 = 0;
        if(number >= frames.length){
            number = 0;
        }else{
         number ++;
        }

        sprite = frames[number];

por que isso acontece?

Criado 1 de abril de 2012
Respostas 0
Participantes 1