Libgdx专题系列:对象篇 Animation动画

 

声明:

本系列文章使用的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

你可能感兴趣的:(android,libgdx)