生命周期

Libgdx应用有一个定义好的生命周期,控制着整个应用的状态,例如creation, pausing, resuming, disposing

ApplicationListener

开发者可以通过实现ApplicationListener接口,并传入一个实现了Application的实例来获得生命周期事件的回调函数。自此之后,每当发生一次应用层的事件,Application都会调用ApplicationListener。ApplicationListener的主干实现是这样:

public class MyGame implements ApplicationListener {
public void create () {
} public void render () {
} public void resize (int width, int height) {
} public void pause () {
} public void resume () {
} public void dispose () {
}
}

如果不是所有的接口方法都是相关的,开发者可以从ApplicationAdapter派生一个类。一旦传入了Application,ApplicationListener的方法会在下面时刻被调用:

Method signature Description
create () 应用创建时调用。
resize(int width, int height) 屏幕被re-size,且游戏不处于暂停状态时调用。在create()执行后,该方法也会被调用。参数是新的屏幕宽度与高度的像素数。
render () 应用在游戏循环中每次重绘时调用。游戏逻辑通常在这个方法中更新。
pause () 在Android上,按到Home键时或有来电时会调用。在Desktop应用中,会在 dispose() 执行,应用退出前执行。这是保存游戏状态的好地方。
resume () 从暂停状态恢复时调用,仅在Android上调用。
dispose () 应用销毁时调用,会紧接着一个pause()方法执行。

主循环

Libgdx本质上是由于Android和JavaScript的作用产生时间驱动的,并不存在显式的主循环。可以将 ApplicationListener.render() 看作是主循环体。

Libgdx 开发指南(1.1) 应用框架——生命周期的更多相关文章

  1. Libgdx 开发指南(1.2) 应用框架——模块概览

    模块概览 引言 LibGDX由一些为一个典型游戏架构中的各个步骤提供服务的模块组成. Input:为所有平台提供一致的输入模型与处理器.支持键盘.触屏.加速度传感器与鼠标. Graphics:使用硬件 ...

  2. Libgdx 开发指南(1.3) 应用框架——查询、日志

    查询 Application接口提过多种方法查询运行时环境属性. 获得应用类型 有时候根据运行平台需要处理一些具体的逻辑,可以使用 Application.getType() 方法来返回应用所运行的平 ...

  3. atitit.提升开发效率---使用server控件生命周期 asp.net 11个阶段 java jsf 的6个阶段比較

    atitit.提升开发效率---使用server控件生命周期  asp.net 11个阶段  java jsf 的6个阶段比較 例如以下列举了server控件生命周期所要经历的11个阶段. (1)初始 ...

  4. Cordova - 使用Cordova开发iOS应用实战2(生命周期、使用Safari调试)

    Cordova - 使用Cordova开发iOS应用实战2(生命周期.使用Safari调试) 前文我们创建了一个简单的Cordova项目,结构如下: 1,Cordova生命周期事件 (1)device ...

  5. Libgdx 开发指南——目录

    本系列文档选译自libgdx github项目 wiki : https://github.com/libgdx/libgdx/wiki 由于关于Libgdx的中文文档非常稀缺,因此在这里对官方Wik ...

  6. 【开源java游戏框架libgdx专题】-04-接口介绍及生命周期

    在核心项目中包含6大与操作系统交互的接口,每个后端都实现了这6大接口. Application:运行应用程序并通知API的客户端应用程序级别的事件,提供日志记录设施和查询方法,例如,内存使用. Fil ...

  7. python 全栈开发,Day91(Vue实例的生命周期,组件间通信之中央事件总线bus,Vue Router,vue-cli 工具)

    昨日内容回顾 0. 组件注意事项!!! data属性必须是一个函数! 1. 注册全局组件 Vue.component('组件名',{ template: `` }) var app = new Vue ...

  8. Android开发艺术1之Activity的生命周期

    作为<Android开发艺术探索>这本书的第一篇博客,我就多说几句.本系列博客旨在对书中相关内容进行解读,简化,提供一个入门到提高的流程.不敢说书评,也不能说教程,只希望对有些人有帮助就好 ...

  9. OS开发之旅之App的生命周期【转载】

    原文链接 http://www.360doc.com/content/15/0918/14/27799428_499912639.shtml 在iOS App中,入口函数并不在根目录下,而是在“Sup ...

随机推荐

  1. poj 1091 跳蚤

    跳蚤 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8482   Accepted: 2514 Description Z城 ...

  2. 如何使用double-check实现一个单例模式

    private object m_mutex = new object(); private bool m_initialized = false; private BigInstance m_ins ...

  3. R----ggplot2包介绍学习

    分析数据要做的第一件事情,就是观察它.对于每个变量,哪些值是最常见的?值域是大是小?是否有异常观测? ggplot2图形之基本语法: ggplot2的核心理念是将绘图与数据分离,数据相关的绘图与数据无 ...

  4. sql2008 表名为全数字时查询报错

    今天遇到个很奇葩的问题,在写一个应用程序时需要查询表的数据,但是表名是全数字的,直接查询会报错,于是想到给111的表名加一对中括号:即——>select * from [111] 刚开始还是报错 ...

  5. parseInt的源码阅读

    parseInt的源码阅读 Integer.parseInt()这个方法的功能小巧又实用,实现起来困难不大,没有很复杂.这里就来看一下Java的源码是怎么写的吧,走一边大婶写过的代码,应该会有点收获吧 ...

  6. VB.NET中的除法运算符 与 C#中的除法运算符

    VB.NET中的除法运算符有两个:/(浮点除法).\(整数除法) C#中的除法运算符只有一个:/(除法) VB.NET中的除法运算符与C#中的除法运算符存在很大的差异,使用时注意区分. 关于VB.NE ...

  7. macaca运行报错之chrome-driver问题处理,关闭 Chrome 的自动更新

    由于chrome浏览器自动更新,导致 macaca运行报错,重新安装和更新chrome-driver 之后,还需要把chrome浏览器降级到50版本: 但是chrome会自动更新,所以需要禁止.找到这 ...

  8. 【java基础】方法2

    让形参可变的方法 jdk1.5之后,java允许定义形参长度可变的参数,允许为方法指定数量不确定的形参. package object; public class VariableParam { // ...

  9. Ant-style path patterns

    [转载]http://blog.itpub.net/29959940/viewspace-1385870/ Ant path 匹配原则路径匹配原则(Path Matching) Spring MVC中 ...

  10. Flyweight

    1 意图:运用共享技术有效地大量支持细粒度的对象 2 动机:flyweight是一个共享对象,可以在多个场景使用. 分为内部状态和外部状态,内部状态存储于flyweight中,包含了独立于flywei ...