タッチ制御のプログラムを抜書きしても「全体がわからないから使いどころがわからない」というご意見もあるかもしれないと思ったので、プサンプルプロジェクトを作ってみました。
 
 起動後スプラッシュ画面を表示し、2秒後にメイン Scene に遷移し Sprite を表示します。(タッチ制御は書いてない!)

 スプラッシュ画面を表示し、
device-2014-06-08-002913
 Sprite を表示する。
device-2014-06-08-002834
 登場するクラスファイルは、
  MainActivity.java
  ResourcesManager.java
  SceneManager.java
  BaseScene.java
  SplashScene.java
  GameScene.java

 今日は、MainActivity.java を載せましょう。

package com.chabaori.sample;

import java.io.IOException;

import org.andengine.engine.Engine;
import org.andengine.engine.LimitedFPSEngine;
import org.andengine.engine.camera.BoundCamera;
import org.andengine.engine.handler.timer.ITimerCallback;
import org.andengine.engine.handler.timer.TimerHandler;
import org.andengine.engine.options.EngineOptions;
import org.andengine.engine.options.ScreenOrientation;
import org.andengine.engine.options.WakeLockOptions;
import org.andengine.engine.options.resolutionpolicy.FillResolutionPolicy;
import org.andengine.entity.scene.Scene;
import org.andengine.ui.activity.BaseGameActivity;
import android.view.KeyEvent;

public class MainActivity extends BaseGameActivity {
	private BoundCamera camera;
	static final int CAMERA_WIDTH = 480;
	static final int CAMERA_HEIGHT = 800;
	   
	@Override
	public Engine onCreateEngine(EngineOptions pEngineOptions){
		return new LimitedFPSEngine(pEngineOptions, 60);
	}
	
	@Override
	public EngineOptions onCreateEngineOptions(){
		camera = new BoundCamera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
		camera.setBoundsEnabled(true);
		EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.PORTRAIT_FIXED, new FillResolutionPolicy(), this.camera);
		engineOptions.getRenderOptions().getConfigChooserOptions().setRequestedMultiSampling(true);
		engineOptions.setWakeLockOptions(WakeLockOptions.SCREEN_ON);
		return engineOptions;
	}
	
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event){  
	    if (keyCode == KeyEvent.KEYCODE_BACK){
	    	SceneManager.getInstance().getCurrentScene().onBackKeyPressed();
	    }
	    return false; 
	}
	
	@Override
	protected void onPause(){
	    super.onPause();
	}

	@Override
	protected synchronized void onResume(){
	    super.onResume();
	    System.gc();
	}

	@Override
	public void onCreateResources(OnCreateResourcesCallback pOnCreateResourcesCallback) throws IOException{
		ResourcesManager.prepareManager(mEngine, this, camera, getVertexBufferObjectManager());
		pOnCreateResourcesCallback.onCreateResourcesFinished();
	}

	@Override
	public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) throws IOException{
		SceneManager.getInstance().createSplashScene(pOnCreateSceneCallback);
	}

	@Override
	public void onPopulateScene(Scene pScene, OnPopulateSceneCallback pOnPopulateSceneCallback) throws IOException{
		mEngine.registerUpdateHandler(new TimerHandler(2.0f, new ITimerCallback(){
            @Override
			public void onTimePassed(final TimerHandler pTimerHandler){
                mEngine.unregisterUpdateHandler(pTimerHandler);
                SceneManager.getInstance().createGameScene();
            }
		}));
		pOnPopulateSceneCallback.onPopulateSceneFinished();
	}
}

「コメントもなしでホントに載せるだけ!?」と、思われたかもいらっしゃるでしょうか。
 
 
 えぇ、載せるだけです。

Comments are closed.

Post Navigation