Libgdx专题系列:对象篇 Game游戏控制中心 Screen 场景

声明:

本系列文章使用的Libgdx版本均为0.99版本

Libgdx游戏开发交流群 323876830

 

这一部分,打算加上逻辑控制中心和场景, 为什么需要这个东西呢?首先我们的场景一般都不会是一个,还有开场的menu场景,暂停场景等其他场景,这样逻辑都写在FirstGame就显得很臃肿,要是实现的话, 我们应该会这样写, 一个基类场景,然后子类实现他,然后有一个切换场景的地,也就是游戏控制中心了, 典型的策略模式的路子。恩。 不错, 想到这些基本上ok了。 Libgdx也为我们简单实现了这部分的逻辑, 不用我们再造轮子了。 且看他的使用方式。 

代码如下

 

public class FirstGame extends Game
{

    @Override
    public void create()
    {
        setScreen(new FirstScreen());
    }

    @Override
    public void render()
    {
        Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
        super.render();
    }

}
public class FirstScreen implements Screen
{
    
    private Stage mStage;

    @Override
    public void render(float delta)
    {
        mStage.act(Gdx.graphics.getDeltaTime());
        mStage.draw();
    }

    @Override
    public void resize(int width, int height)
    {
        // TODO Auto-generated method stub

    }

    @Override
    public void show()
    {
        mStage = new Stage(800, 480);

        Player player = new Player();
        player.setPosition(800 / 2, 480 / 2);

        // 移动操作
        MoveByAction action1 = Actions.moveBy(150, 0, 3);
        ScaleByAction action2 = Actions.scaleBy(3, 3, 3);
        RotateByAction action3 = Actions.rotateBy(90, 3);

        // 还原操作
        ScaleToAction action4 = Actions.scaleTo(1, 1);
        RotateToAction action5 = Actions.rotateTo(0);
        MoveToAction action6 = Actions.moveTo(800 / 2, 480 / 2);

        // 顺序执行action
        SequenceAction sequenceAction = Actions.sequence(action1, action2,
                action3, action4, action5, action6);
        sequenceAction.setActor(player);

        // 无限循环三个动作
        RepeatAction epeatAction = Actions.repeat(RepeatAction.FOREVER,
                sequenceAction);

        player.addAction(epeatAction);

        mStage.addActor(player);
    }

    @Override
    public void hide()
    {
        // TODO Auto-generated method stub

    }

    @Override
    public void pause()
    {
        // TODO Auto-generated method stub

    }

    @Override
    public void resume()
    {
        // TODO Auto-generated method stub

    }

    @Override
    public void dispose()
    {
        mStage.dispose();
    }

}


 

好了, 到了这部分, 对象绘制这一块的内容已经结束了, 我们是通过了一个例子贯穿始终,层层递进,步步为营,不断重构我们的代码,后续有什么问题,大家可以留言, 共同修正, 共同进步。

 

工程下载地址

 

转载请链接原文地址 http://blog.csdn.net/wu928320442/article/details/16940831

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