如何使用Spritesheet快速为Sprites运动设置动画?

时间:2016-01-03 07:21:37

标签: java animation game-engine

我正在制作一款小游戏,我可能会提交给即将到来的#towerjam。我想在一个类中使用2个spritesheet图像快速为sprite设置动画。

到目前为止,这是我的代码:

    if (handler.isUp()) {
        y -= speed;
        if (y < 0)
            y = 0;
        this.tile = Tile.PLAYER_UP1;
    } if (handler.isDown()) {
        y += speed;
        if (y > Game.HEIGHT - Tile.DRAW_SIZE)
            y = Game.HEIGHT - Tile.DRAW_SIZE;
        this.tile = Tile.PLAYER_DOWN1;
    } if (handler.isRight()) {
        x += speed;
        if (x >= Game.WIDTH - Tile.DRAW_SIZE)
            x = Game.WIDTH - Tile.DRAW_SIZE;
        this.tile = Tile.PLAYER_WALK1;
    } if (handler.isLeft()) {
        x -= speed;
        if (x < 0)
            x = 0;
        this.tile = Tile.PLAYER_WALK1FLIP;
    }

这些Tile静态变量中的每一个都有一个数字2,我想循环和动画。

更新

我尝试在外面添加这些变量:

int frame = 1;
long lastTime = System.currentTimeMillis();

然后在更新方法的内部:

    long newTime = System.currentTimeMillis();
    if(newTime-lastTime == 100) {
        if(frame == 1) frame=2;
        else frame = 2;
    }

然后像这样更改磁贴:

this.tile = frame == 1 ? Tile.PLAYER_UP1 : Tile.PLAYER_UP2;

不幸的是,这并没有奏效。

0 个答案:

没有答案