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

来源:互联网 发布:头颅移植手术成功知乎 编辑:程序博客网 时间:2024/06/05 03:47

声明:

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