设为首页 加入收藏

TOP

AndEngine游戏引擎之【生命周期】(一)
2014-11-24 03:19:54 来源: 作者: 【 】 浏览:2
Tags:AndEngine 游戏 引擎 生命 周期

本篇了解AndEngine和一般游戏编程的一些最必要的组成部分,一些将有助于我们快速而高效地创建各种游戏基础的类。重要的是要了解游戏初始化时的操作顺序。一个游戏的基本需求,包括创建引擎,加载游戏的资源,并建立初始屏幕和设置,这是创造一个AndEngine游戏的基础。但是,如果我们需要游戏具有更多的多样性,这就需要了解AndEngine的整个生命周期。


AndEngine生命周期包括了一些方法,我们继承实现(BaseGameActivity)SimpleBaseGameActivity我们可以清晰的看到几个重写的方法:这些方法按以下顺序执行:


1. 定义 onCreateEngineOptions() 方法 :


public EngineOptions onCreateEngineOptions() {
// Define our mCamera object
mCamera = new Camera(0, 0, WIDTH, HEIGHT);
//声明和定义引擎对象
EngineOptions engineOptions = new EngineOptions(true,
ScreenOrientation.LANDSCAPE_FIXED, new FillResolutionPolicy(),
mCamera);
//这个操作是很有必要的
//激活锁定选项关闭屏幕
//如果游戏处于闲置状态,则关闭屏幕
engineOptions.setWakeLockOptions(WakeLockOptions.SCREEN_ON);
//返回的engineOptions对象
return engineOptions;
}


2. 定义 onCreateResources()


public void onCreateResources(
OnCreateResourcesCallback pOnCreateResourcesCallback) {
pOnCreateResourcesCallback.onCreateResourcesFinished();
}


3. 定义onCreateScene()


public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) {
// Create the Scene object
mScene = new Scene();
//通知回调函数,我们完成创建了scene对象,并返回
// mScene to the mEngine object (自动处理)
pOnCreateSceneCallback.onCreateSceneFinished(mScene);
}


4. 定义onPopulateScene()


@Override
public void onPopulateScene(Scene pScene,
OnPopulateSceneCallback pOnPopulateSceneCallback) {
// onPopulateSceneFinished(),类似于the resource and scene的回调
//一旦我们完成填充场景,就会被执行。
pOnPopulateSceneCallback.onPopulateSceneFinished();
}


工作流程:


这些代码是所有AndEngine游戏的基础。我们已经创建了一个主要的activity类,作为应用程序的入口点。该activity包含四个主要的AndEngine活动的生命周期方法。我们在这些方法中开始创建EngineOptions选项,创建资源,创建场景,并设计场景。


第一步,我们重写引擎的onCreateEngineOptions()方法。在此方法中,我们的主要重点是我们的Camera对象,以及我们的EngineOptions对象实例化。这两个对象的构造函数允许我们定义我们的应用程序的显示属性。此外,我们通过调用engineOptions.setWakeLockOptions(WakeLockOptions.SCREEN_ON)方法来处理程序闲置时候的状态。


第二步,我们将继续重写onCreateResources()方法,我们可以在这个方法中创建和设置所需的游戏资源。这些资源可能包括纹理,声音和音乐,和字体。在onCreateResources()方法的最后,我们必须调用pOnCreateResourcesCallback.onCreateResourcesFinished()方法。


第三步,涉及到Scene对象的实例化和设置。设置场景可以很简单,也可以更复杂,它可能包括设置触摸事件监听器,更新处理程序,等等。一旦我们完成设定场景,我们必须调用pOnCreateSceneCallback.onCreateSceneFinished(mScene)方法。


第四步,重写onPopulateScene()方法。这种方法是在专门用于连接子实体的场景。与前两个步骤一样,在最后我们必须调用pOnPopulateSceneCallback.onPopulateSceneFinished()方法。


在下面的列表中,我们将介绍生命周期方法从一个activity的开始直到结束。


生命周期的顺序如下:


onResume: 这是另一款Android SDK的本地方法。在这里,我们只是从EngineOptions对象中获取锁定设置,并继续为RenderSurfaceView对象调用onResume()方法。


onSurfaceCreated: 在activity第一次启动的过程中此方法将调用onCreateGame()方法,或注册一个布尔变量作为真正的资源重新加载,如果此前这个活动已经被部署。


onReloadResources: 此方法将重新加载游戏资源,如果我们的应用程序从最小化成为用户的焦点。应用程序初始化时这个方法不会被调用。


onCreateGame: 这里会处理AndEngine生命周期接下来三个回调函数的执行的顺序。


onCreateResources: 这种方法让我们创建游戏初始化时所需要的资源。这些资源包括纹理,声音和音乐,和字体等。


onCreateScene: 在这里,我们处理游戏场景对象的初始化。在这个方法中可能会进行实体填充场景的操作,但是,这种操作通常最好在onPopulateScene()中执行。


onPopulateScene: 在生命周期的onPopuplateScene()方法中,我们只是完成了场景,但这些只是生命周期回调函数中的一小部分。当我们的应用程序第一次启动时,这个方法应该可以用来定义场景的视觉效果。请注意,在这一步中场景已经被创建并应用到引擎中。在某些情况下是可以看到实体填充场景,如果没有加载屏幕或闪屏,并且如果有大量的实体连接。


onGameCreated: 这意味着onCreateGame()序列执行完成,如果有必要的话可以重新加载资源,否则什么都不做。是否重新加载资源这取决于onSurfaceCreated方法返回的布尔变量。


onSurfaceChanged: 当游戏的取向发生变化时,会调用这个方法。从风景到人像模式,反之亦然。


onResumeGame: 当activity循环启动时,会调用这个方法。如果我们的activity在这步中没有任何问题,引擎将调用start(),激活游戏的更新线程。


游戏最小化或终止

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Perl 获取cpu使用率 下一篇Android本地视频播放器开发

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言中如何将结构体 (2025-12-24 22:20:09)
·纯C语言结构体成员变 (2025-12-24 22:20:06)
·C语言中,指针函数和 (2025-12-24 22:20:03)
·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
·MySQL存储引擎InnoDB (2025-12-24 20:18:53)