libgdx游戏引擎(二)之ApplicationListener接口介绍
来源:互联网 发布:外文电子图书数据库 编辑:程序博客网 时间:2024/05/22 01:30
为了初始化Application必须实现ApplicationListener接口,它用来更新游戏状态(即逻辑),渲染界面,暂停游戏,保存状态,释放资源等。它也有一个处理Application声明周期事件的地方。每个应用,不管后台平台版本都必须实现ApplicationListener接口。所有平台都必须要实现这个接口。
AndroidApplication继承自Activity,起到了一个Activity的作用,但是我们并不在这个”Activity“中做太多的工作(当然可以做一些保存Context上下文之类的工作),实际的显示工作交给了一个实现了ApplicationListener接口的类来实现的,它有所有我们需要的功能:创建,渲染等。所以实际的情况是,我们在游戏中的大部分实际绘图工作都是放在这个页面进行的。
我们在上一讲的基础上,在屏幕上打印一些标识,代码如下:
package com.lichunan.libgdx.game;import com.badlogic.gdx.ApplicationListener;import com.badlogic.gdx.Gdx;import com.badlogic.gdx.graphics.GL10;import com.badlogic.gdx.graphics.g2d.BitmapFont;import com.badlogic.gdx.graphics.g2d.SpriteBatch;public class FirstGame implements ApplicationListener {private SpriteBatch spriteBatch;private BitmapFont bf;@Overridepublic void create() {spriteBatch = new SpriteBatch();bf = new BitmapFont();}@Overridepublic void render() {Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);Gdx.gl.glClearColor(0f, 0f, 0f, 0f);spriteBatch.begin();bf.draw(spriteBatch, "Hello World", Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2);spriteBatch.end();}@Overridepublic void dispose() { spriteBatch.dispose(); bf.dispose(); }@Overridepublic void pause() {// TODO Auto-generated method stub}@Overridepublic void resize(int arg0, int arg1) {// TODO Auto-generated method stub}@Overridepublic void resume() {// TODO Auto-generated method stub}}
首先在create()函数中初始化一下相应的变量,否则会得到空指针。绘图用SpriteBatch,以及字体类BitmapFont,至于后者,我们很显然可以从名字就看出,它的实现是借助图片来实现字体显示的。
绘图用SpriteBatch在绘图前一定要调用begin()方法,而在调用后一定要调用end()方法,否则程序会报错。
一旦ApplicationListener开始运行,render函数就会不停执行。
Gdx.graphics.getWidth()/2,这就是Gdx提供的一些类来获取系统信息。
在dispose()函数中不要忘了对变量执行dispose()方法,在libgdx中,很多资源必须手动释放,否则一直占用着内存,很可能就此发生内存溢出的错误,而libgdx中有一个结构Disposable,一般实现了这个接口的类都需要手动回收的。
- libgdx游戏引擎(二)之ApplicationListener接口介绍
- libgdx游戏引擎教程(二) ApplicationListener,着手第一个程序!
- LibGdx文档译读(二)ApplicationListener接口
- Android游戏引擎之LibGdx介绍及各模块概述
- Android游戏引擎之LibGdx介绍及各模块概述
- Android游戏引擎之LibGdx
- Libgdx和jpct3D游戏引擎介绍
- libgdx游戏引擎(三)之粒子系统
- libgdx游戏引擎(五)之自定义进度条
- Android 游戏引擎libgdx之Box2D
- Libgdx游戏引擎之Dialog组件
- Libgdx游戏引擎之ScrollPane组件
- libgdx跨平台游戏引擎介绍之Input(三)——事件处理
- libgdx游戏引擎教程
- libgdx游戏引擎教程
- libgdx游戏引擎(一)
- 【Android LibGDX游戏引擎开发教程】第01期:LibGDX的详细介绍
- 【Android LibGDX游戏引擎开发教程】第01期:LibGDX的详细介绍
- eclipse搭建GBA开发环境(makefile)
- javascript按钮倒计时,然后“下一步”按钮可点
- MySQL数据库索引中的单列索引与多列索引
- 题目1384:二维数组中的查找
- 需要知道的人际关系经验(转载)
- libgdx游戏引擎(二)之ApplicationListener接口介绍
- WPA无线密码破解利器EWSA/跑包软件
- Matlab 如何用legend标记部分曲线
- [JM] 关于帧间参考列表变量的说明
- 超实用的JavaScript技巧及最佳实践(下)
- Ubuntu 13.10中安装eclipse后菜单栏下拉失效
- EditText窗口抖动
- 【D3中文api文档制作小组英雄帖】
- Spring3整合Struts2+Hibernate 实现注册、数据库验证登陆