自定义动画
Animation用于实现自定义动画 Running man
Texture walkSheet = new Texture(Gdx.files.internal("explosion.png"));
TextureRegion[][] tmp = TextureRegion.split(walkSheet, walkSheet.getWidth()/FRAME_COLS, walkSheet.getHeight()/FRAME_ROWS);
walkFrames = new TextureRegion[FRAME_COLS * FRAME_ROWS];
int index = 0;
for (int i = 0; i < FRAME_ROWS; i++) {
for (int j = 0; j < FRAME_COLS; j++) {
walkFrames[index++] = tmp[i][j];
}
}
walkAnimation = new Animation(0.25f, walkFrames);
walkFrames 就是个图片集 ,0.25f 即播放每帧的间隔事件
TextureRegion.split() 分割一个Texture文件,传入分割后每个小块的宽度 和 高度. 最后返回一个 2维的TextureRegion,需处理为1维的 传给Animation;
stateTime += Gdx.graphics.getDeltaTime(); //获取每一帧的持续时间
currentFrame = walkAnimation.getKeyFrame(stateTime, true);
spriteBatch.begin();
spriteBatch.draw(currentFrame, 50, 50);
spriteBatch.end();
PlayMode Normal, Loop, Reverse 倒着播,Loop_Reverse ,Loop_Pingpang 从前播放几帧 然后倒着播放几帧等