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 ขึ้นไป
4. ถ้ายังมี Error ใน AndEngine เลือก Eclipse->Project->build clean 1 ครั้ง
5. เลือก Project AndEngine_Tower คลิ้กขวาเลือก Properties -> Android หลังจากนั้นเลื่อนลงมาล่างสุดจะมี Libralyให้กดเลือก AndEngine เข้ามา
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