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

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值