您的位置:首页 > 其它

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

2013-11-25 10:52 501 查看
声明:

本系列文章使用的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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: