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