AndEngine 分析之四-----Engine

Engine:
The Engine make the game proceed in small discrete steps of time. The Engine manages to synchronize a periodic drawing and updating of the Scene, which contains all the content that your game is currently handling actively. There usually is one Scene per Engine, except for the SplitScreenEngines.

 

Engine使游戏在不连续的时间进行,它设法同步更新和画场景,通常每一个Engine对应一个Scene,除了SplitScreenEngines

 

1.通常在客户端实现BaseGameActivity时在覆写onLoadEngine()方法时执行的操作:

public Engine onLoadEngine() {
		this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
		return new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera));
	}

 其中在Engine类中的Engine(EngineOptions opts)具体方法如下:

 

public Engine(final EngineOptions pEngineOptions) {
		TextureRegionFactory.setAssetBasePath("");
		SoundFactory.setAssetBasePath("");
		MusicFactory.setAssetBasePath("");
		FontFactory.setAssetBasePath("");

		BufferObjectManager.setActiveInstance(this.mBufferObjectManager);

		this.mEngineOptions = pEngineOptions;
		this.setTouchController(new SingleTouchControler());
		this.mCamera = pEngineOptions.getCamera();

		if(this.mEngineOptions.needsSound()) {
			this.mSoundManager = new SoundManager();
		}

		if(this.mEngineOptions.needsMusic()) {
			this.mMusicManager = new MusicManager();
		}

		if(this.mEngineOptions.hasLoadingScreen()) {
			this.initLoadingScreen();
		}

		this.mUpdateThread.start();
	}

 

其中,在代码的后部分:

		if(this.mEngineOptions.hasLoadingScreen()) {
			this.initLoadingScreen();
		}

初始化下载Screen的操作:

 
private void initLoadingScreen() {
		final ITextureSource loadingScreenTextureSource = this.mEngineOptions.getLoadingScreenTextureSource();
		final Texture loadingScreenTexture = TextureFactory.createForTextureSourceSize(loadingScreenTextureSource);
		final TextureRegion loadingScreenTextureRegion = TextureRegionFactory.createFromSource(loadingScreenTexture, loadingScreenTextureSource, 0, 0);
		this.setScene(new SplashScene(this.getCamera(), loadingScreenTextureRegion));
	}
 

至此Engine初始化了Scene,并后续对Scene进行更新操作。

 

2.Engine主要做的操作:

    SoundManager

    MusicManager

    BufferObjectManager

    TouchController

    FontManager

完成基础服务的初始化和注册操作。

 

 

 

 

你可能感兴趣的:(游戏)