大家先要有舞台和演员的概念,下面通过一个游戏截图来说明:

Android游戏引擎libgdx使用教程4:舞台和演员的游戏实例

请仔细观察图片中的元素,有些东西是不能动,有些可以动,有些有特效,有些没有,有各种图片,但是其实它们都可以统一称为演员(Actor)。图中用框标出的就是演员。而整个游戏界面就是我们的舞台。

演员是游戏设计中常用的一个对象,它接受舞台的统一管理,拥有一些公共的事件,比如触摸,点击,但是同时还有自身的响应和属性;而舞台就是容纳演员的场所。它统一管理所有演员,接受输入,同时提供一个方便的框架操作演员的时间变化。

Stage类

我们来看一下Stage类:

protected final Group root;

protected final SpriteBatch batch;

protected Camera camera;

它拥有一个Group,一个SpriteBatch,还有一个相机。

SpriteBatch我们在前几篇说过,这里就不再重复了。

Group是一个类,用于容纳和控制演员。但是这里要注意Group本身其实也是继承自Actor。

相机我们这里跳过,以后再说,可以暂时理解成一个控制观察视角和指标转化的工具。

当我们拥有一个演员后就可以调用addActor方法加入舞台。

舞台可以获取输入,但是需要设置。

Gdx.input.setInputProcessor(stage);

舞台和演员实例分享

下面来个列子,控制一个人物前进。

Android游戏引擎libgdx使用教程4:舞台和演员的游戏实例

控制人物的按钮:

Android游戏引擎libgdx使用教程4:舞台和演员的游戏实例

将所需的图片放到assert中:

Android游戏引擎libgdx使用教程4:舞台和演员的游戏实例

新建三个类:

FirstGame,实现接口ApplicationListener

FirstActor,继承Actor

NarrowButton,继承Actor

先看一下FirstGame

声明一个Stage,然后实例化FirstActor和NarrowButton,将二者加入舞台中,最后设置输入响应为Stage。

  1. package com.cnblogs.htynkn.listener;    

  2. import java.util.Date;    

  3. import java.util.Random;    

  4. import javax.microedition.khronos.opengles.GL;    

  5. import android.util.Log;    

  6. import com.badlogic.gdx.ApplicationListener;    

  7. import com.badlogic.gdx.Gdx;    

  8. import com.badlogic.gdx.graphics.GL10;    

  9. import com.badlogic.gdx.graphics.g2d.BitmapFont;