andengine编程之andengine启动

上一篇介绍了andengine是如何配置工程的,接下来讲讲主类的方法调用。


BaseGameActivity继承了BaseActivity,并实现了接口IGameInterface和IRendererListener。

关于BaseActivity类很简单,想对其了解的朋友可以直接查看源代码。


在我们开发游戏,经常使用的是继承BaseGameActivity类,然后需要实现4个方法:


	public EngineOptions onCreateEngineOptions() {
		return null;
	}


	public void onCreateResources(
			OnCreateResourcesCallback pOnCreateResourcesCallback)
			throws Exception {
	}


	public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback)
			throws Exception {
	}


	public void onPopulateScene(Scene pScene,
			OnPopulateSceneCallback pOnPopulateSceneCallback) throws Exception {
	}



它们的调用顺序即其排列顺,首先,我们要了解这四个方法的作用:
onCreateEngineOptions:构建一个引擎设置。
这里补充一点小知识:在早前的代码中,还有需要构建引擎的代码(public Engine onLoadEngine())
,新的代码中保留了该方法(public Engine onCreateEngine),但不强制用户调用。


我们通过对引擎的设置,BaseGameActivity会帮我们完成引擎的建立。
在onCreateEngineOptions里需要返回一个EngineOptions对象,而EngineOptions可以设置很多内,
看一下其构造方法:
public EngineOptions(final boolean pFullscreen, final ScreenOrientation pScreenOrientation, final IResolutionPolicy pResolutionPolicy, final Camera pCamera)


英文好的朋友大概已经明白需要构建那些参数了:
pFullscreen:是否全屏


pScreenOrientation:屏幕方向——横竖屏设置


pResolutionPolicy:需要一个实现了接口IResolutionPolicy的对象。

IResolutionPolicy接口的具体实现,有如下的常用类:分别为:
BaseResolutionPolicy(除了会校验一下屏幕大小外,什么也不做);
FillResolutionPolicy(拉伸游戏画面为全屏填充,视摄像机大小不同,会有不同程度变形);
FixedResolutionPolicy(强行规定游戏画面为固定大小,此设置不会自动适应屏幕大小);
RatioResolutionPolicy(按比例修正画面大小,以适应屏幕大小);
RelativeResolutionPolicy(根据构建RelativeResolutionPolicy时的缩放参数,缩放游戏屏幕为指定比例)。

pCamera:摄像机,这个一般多用SmoothCamera,除非你不需要有缩放效果。


除了上述必须要设定的参数外,还可以设置:
声音的设置:但这个必须要得到AudioOptions对象public AudioOptions getAudioOptions()
getAudioOptions().setNeedsMusic(true)
getAudioOptions().setNeedsSound(true)

多点触摸的设置:但这个必须要得到TouchOptions对象public AudioOptions getTouchOptions()
getTouchOptions().setNeedsMultiTouch(true)


onCreateResources:加载资源

这里一般多为图片,地图块的加载,初始化等
最后再调用一下:pOnCreateResourcesCallback.onCreateResourcesFinished();来结束资源加载。


onCreateScene:创建场景,它会调用接口OnCreateSceneCallback,然后调用

pOnCreateSceneCallback.onCreateSceneFinished(new Scene());
关于Scene的创建,后文会有详解。



好了,剩下的,就差加载背景图片,精灵图片和创建场景了~


你可能感兴趣的:(游戏,编程,exception,null,引擎)