【AndEngine游戏开发】第一章:2.选择我们的引擎类型

本文介绍了AndEngine中的多种Activity类,包括LayoutGameActivity、SimpleBaseGameActivity等,它们为游戏开发提供了便利。文中还详细讲解了如何设置不同类型的Engine对象,如FixedStepEngine和LimitedFPSEngine,以确保游戏在不同设备上的表现一致。
在AndEngine中,我们主要使用BaseGameActivity类,但并不是所有时候都是这样。

下面的类可以作为BaseGameActivity类的替代品,其中存在一些差别。

1. The LayoutGameActivity class


LayoutGameActivity类是一个非常有用的活动类,它允许我们在一个普通的Android应用程序中合并AndEngine场景图形视图。另一方面,这个类,我们也可以包括原生的Android SDK的视图,如按钮,搜索栏,下拉框,额外的布局,或我们游戏中的任何视图。然而,使用这个类最常见的原因就是方便在游戏中植入广告。

创建一个LayoutGameActivity类需要进行一些额外的设置:
1. 在默认的布局xml文件中添加以下代码,此xml文件通常被称为main.xml。下面的代码片段添加AndEngine的RenderSurfaceView类到布局文件。将在设备上显示我们的游戏的视图:
android:id="@+id/gameSurfaceView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
2.引用布局XML文件和RenderSurfaceView。这需要重写LayoutGameActivity类中的方法。下面的代码是假设main.xml文件在res /layout/文件夹中,在这种情况下,他们可以复制​​/粘贴到我们的LayoutGameActivity类中在第一个步骤完成后:
@Override
protected int getLayoutID() {
return R.layout.main;
}
@Override
protected int getRenderSurfaceViewID() {
return R.id.gameSurfaceView;
}

2. The SimpleBaseGameActivity and SimpleLayoutGameActivity classes

SimpleBaseGameActivity和SimpleLayoutGameActivity,作为建议,使被重写的生命周期方法比较容易处理。他们并不需要我们重写onPopulateScene()方法,最重要的是,我们并不需要回调已经定义过的回调方法,当我们定义完的回调。通过这些活动,我们可以简单地添加未实现的生命周期方法,AndEngine会为我们处理的回调。
 

3. The SimpleAsyncGameActivity class

最后是SimpleAsyncGameActivity类。这个类包含了三种可供选择的生命周期方法名为onCreateResourcesAsync(),onCreateSceneAsync(),和onPopulateSceneAsync()伴随着常用的onCreateEngineOptions()方法。此Activity与其他的主要区别是,它为我们提供了加载条的“异步”的方法。下面的代码片断演示了我们如何再纹理被加载的情况下,增加进度条:
@Override
public void onCreateResourcesAsync(IProgressListener pProgressListener)
throws Exception {
// Load texture number one
pProgressListener.onProgressChanged(10);
// Load texture number two
pProgressListener.onProgressChanged(20);
// Load texture number three
pProgressListener.onProgressChanged(30);
//我们喜欢什么值,都可以设置到进度中
//每一个额外的步骤通过onCreateResourcesAsync...
}

4. 准备工作

Carry out the Know the life cycle recipe in this chapter to get a basic AndEngine project set up in our IDE, then continue on to the How to do it... section.
深入开展认识生命周期配方本章中得到一个基本的AndEngine项目设立在我们的IDE,然后继续该怎么办呢...一节。

5. 怎么做

为了让我们正确地定义一个特定的引擎对象,为我们的游戏使用,我们必须重写onCreateEngine()方法,这是AndEngine的启动过程的一部分。
为了处理引擎,将以下代码添加任何基础AndEngine活动的手动创建:
public Engine onCreateEngine(EngineOptions pEngineOptions) {
return super.onCreateEngine(pEngineOptions);
}

6. 它如何工作

以下是AndEngine对象提供的各种引擎,以及一个简短的代码片段显示如何设置的引擎对象的概述:
1. Engine:首先,这个Engine对象对于大多数游戏的开发是不理想的,因为它对帧每秒方面没有绝对任何的限制。这样就会出现在两个独立的设备上,你会发现游戏运行速度的差异。又比如说两个独立的设备观看视频,是在相同的时间开始,运行速度更快的设备是可能首先完成视频播放的,而不是两个在同一时间完成。出于这个原因,可能会出现明显的问题,尤其当物理是一个游戏的一大部分。在游戏中调用这个引擎,不需要进行额外的操作。
 
2. FixedStepEngine:这是一个理想的引擎在游戏开发中使用,因为它迫使游戏循环以恒定的速度更新。这是通过基于时间的推移来更新游戏,而不是通过以设备的能力来更快的执行代码。FixedStepEngine的构造函数需要我们提供EngineOptions对象,和一个int值。int值定义了引擎每秒运行的次数。下面的代码创建一个引擎,每秒运行60次:
@Override
public Engine onCreateEngine(EngineOptions pEngineOptions) {
return new FixedStepEngine(pEngineOptions, 60);
}

3. LimitedFPSEngine:LimitedFPSEngine引擎允许我们设置引擎每秒运行的帧数限制。这将导致引擎做一些内部的计算,如果首选的FPS之间的差异大于当前的FPS引擎实现,引擎将等待几分之一秒,然后再进行下一个更新。LimitedFPSEngine的构造函数需要两个参数,包括EngineOptions对象和一个int值,指定每秒的最大帧。下面的代码创建了一个引擎,将运行在每秒最大60帧的状态下:
public Engine onCreateEngine(EngineOptions pEngineOptions) {
// Create a limited FPS engine, which will run at a maximum of 60 FPS
return new LimitedFPSEngine(pEngineOptions, 60);
}

4.SingleSceneSplitScreenEngine和DoubleSceneSplitScreenEngine:

SingleSceneSplitScreenEngine和DoubleSceneSplitScreenEngine让我们创造一个游戏有两个独立的镜头,无论是一个单一的场景,最普遍使用的单人游戏,或在单个设备上的两个场景的多人游戏。这些只是例子,但是这两款引擎可以有广泛的用途,包括迷你地图,多角度,菜单系统,以及更多。请参阅第4章,创建一个分屏游戏,这些类型的引擎对象更具体的细节。

原文地址:

http://blog.sina.com.cn/s/blog_a26142180101a5tn.html

内容概要:本文介绍了一项创新性未发表的研究,即利用多元宇宙优化算法(Multiverse Optimizer, MVO)对分时电价下的需求响应与综合能源系统调度问题进行建模与求解,旨在实现能源系统的经济性、高效性与可持续性运行。该研究构建了包含多种能源设备(如光伏、风机、燃气轮机、储能系统等)及可调节负荷的综合能源系统模型,充分考虑了用户侧的需求响应行为在分时电价机制下的响应特性,通过MVO算法对系统运行成本、能源利用率、碳排放等多目标进行协同优化,实现了日前调度计划的智能决策。研究还提供了完整的MATLAB代码实现,便于研究人员复现实验、验证算法性能,并为进一步研究提供可靠的仿真基础。; 适合人群:具备一定电力系统、优化算法及MATLAB编程基础的科研人员、研究生以及从事能源互联网、综合能源系统规划与运行的技术工程师。; 使用场景及目标:① 学习并掌握多元宇宙优化算法在复杂能源系统调度中的具体应用方法;② 研究分时电价机制如何通过需求响应引导用户参与电网互动,实现削峰填谷;③ 实现综合能源系统(IES)中冷、热、电、气等多种能源的协同优化调度,以降低运行成本、提高新能源消纳能力和系统可靠性;④ 为相关领域的学术研究提供可复现的代码实例和仿真平台。; 阅读建议:此资源以MATLAB代码为核心载体,深入剖析了算法应用与系统建模的全过程。建议读者在学习时,不仅应关注代码的实现细节,更要理解其背后的数学模型、优化目标设定和约束条件的物理意义。建议结合文档中的模型描述,逐步调试代码,观察不同参数和场景下的优化结果,从而深刻掌握综合能源系统优化调度的设计思想与关键技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值