AndEngine เป็น Engine สำหรับสร้าง Animation เช่นสร้างเกม 2D

1. Download AndEngine เลือกแบบ Zip ไม่ต้องแตกไฟล์เพราะจะต้อง Import ทั้ง Zip

2. สร้าง Project Android Application เพื่อทดสอบตั้งชื่อว่า  AndEngine_Tower

3. ในส่วนของ Eclipse  File->Import->Exiting Projects into Workspace->Select Archive File ทำการ Browse หาไฟล์ AndEngine.Zip ที่ Download มา

จะได้  AndEngine ถ้ามี Error ให้คลิ๊กขวาที่ Project เลือก Properties แล้วเลือก Android แล้วติ๊กตั้งแต่เวอร์ชั่น API 16 ขึ้นไป

Screenshot 2014-02-26 10.06.33

 

 

 

 

 

 

4. ถ้ายังมี Error ใน AndEngine เลือก Eclipse->Project->build clean 1 ครั้ง

5. เลือก Project AndEngine_Tower คลิ้กขวาเลือก Properties -> Android หลังจากนั้นเลื่อนลงมาล่างสุดจะมี Libralyให้กดเลือก AndEngine เข้ามา

Screenshot 2014-02-26 10.10.09

 

 

 

 

 

 

 

 

 

6. ใน AndEngine_Tower คลิ๊กขวา New->Class ตั้งชื่อว่า TowerActivity แล้วใส่โค้ด

ขั้นแรกทำการโหลดแบ๊กกราวเพื่อทำ Animation

package com.example.andengine_tower;

import java.io.IOException;
import java.io.InputStream;

import org.andengine.engine.camera.Camera;
import org.andengine.engine.options.EngineOptions;
import org.andengine.engine.options.ScreenOrientation;
import org.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
import org.andengine.entity.scene.Scene;
import org.andengine.entity.sprite.Sprite;
import org.andengine.opengl.texture.ITexture;
import org.andengine.opengl.texture.bitmap.BitmapTexture;
import org.andengine.opengl.texture.region.ITextureRegion;
import org.andengine.opengl.texture.region.TextureRegionFactory;
import org.andengine.ui.activity.SimpleBaseGameActivity;
import org.andengine.util.adt.io.in.IInputStreamOpener;

public class TowerActivity extends SimpleBaseGameActivity{
	//Step 1
    private static int CAMERA_WIDTH=800;
    private static int CAMERA_HEIGHT=480;
    private ITextureRegion mBackgroundTextureRegion;// do image to move animation
	@Override
	public EngineOptions onCreateEngineOptions() {
		// TODO Auto-generated method stub
		final Camera camera=new Camera(0,0,CAMERA_WIDTH,CAMERA_HEIGHT); //import org.andengine.engine.camera.Camera

		return new EngineOptions(true,ScreenOrientation.LANDSCAPE_FIXED,
				new RatioResolutionPolicy(CAMERA_WIDTH,CAMERA_HEIGHT),camera);

	}

	@Override
	protected void onCreateResources() {
		// TODO Auto-generated method stub
		try{
		ITexture backgroundTexture=new BitmapTexture(this.getTextureManager(),new IInputStreamOpener() {

			@Override
			public InputStream open() throws IOException {
				// TODO Auto-generated method stub
				return getAssets().open("gfx/background.png");
			}
		   });
	      backgroundTexture.load();
	      //ถ้ามีรูปเยอะต้อง Load Texture ตามจำนวน
	      //Step 6
	      mBackgroundTextureRegion=TextureRegionFactory.extractFromTexture(backgroundTexture);// load pic to texture and build to regiontexture

		}catch(IOException e){

		}

	}

	@Override
	protected Scene onCreateScene() {
		// TODO Auto-generated method stub
		//Step 7
		final Scene scene=new Scene();
		Sprite backgroundSprite=new Sprite(0,0, mBackgroundTextureRegion, getVertexBufferObjectManager());
		scene.attachChild(backgroundSprite);

		return scene;
	}

}

7. ทำการแก้ไขไฟล์ AndroidManifest.xml ตรง Application-> ทำการ Add TowerActivity

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.andengine_tower"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.andengine_tower.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="TowerActivity"></activity>
    </application>

</manifest>

8. แก้ไข MainActivity

package com.example.andengine_tower;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		Intent intent=new Intent(this,TowerActivity.class);
		startActivity(intent);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

แล้วรอง Run Project

 

By admin

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.