声明:
本系列文章使用的Libgdx版本均为0.99版本
Libgdx游戏开发交流群 323876830
是不是看着这个角色太单调了, 都不会动的,单单的一个图片,弄来弄去的, 好了, 这一部分呢, 我们将要添加动画效果, 让他动起来。代码如下:
public class Player extends Actor
{
private Pixmap mPixmap;
private Texture mTexture;
private TextureRegion [] keyFrames;
private Animation mAnimation;
private float stateTime;
public Player()
{
mPixmap = new Pixmap(Gdx.files.internal("gremlins.png"));
mTexture = new Texture(mPixmap);
keyFrames = new TextureRegion[3];
keyFrames[0] = new TextureRegion(mTexture, 0, 0, 30, 30);
keyFrames[1] = new TextureRegion(mTexture, 30, 0, 30, 30);
keyFrames[2] = new TextureRegion(mTexture, 60, 0, 30, 30);
mAnimation = new Animation((float) 0.2, keyFrames);
}
@Override
public void draw(SpriteBatch batch, float parentAlpha)
{
stateTime += Gdx.graphics.getDeltaTime();
TextureRegion textureRegion = mAnimation.getKeyFrame(stateTime,true);
// 这里要注意,我们添加的action只是改变actor的属性值,绘制的时候并没有
// 自动给我们处理这些逻辑, 我们要做的就是取得这些值,然后自己处理
batch.draw(textureRegion, getX(), getY(),
textureRegion.getRegionWidth() / 2,
textureRegion.getRegionHeight() / 2,
textureRegion.getRegionWidth(),
textureRegion.getRegionHeight(), getScaleX(), getScaleY(),
getRotation());
}
@Override
public void clear()
{
super.clear();
mPixmap.dispose();
mTexture.dispose();
}
}
转载请链接原文地址 http://blog.csdn.net/wu928320442/article/details/16940761