當我們繼承AndEnginede的BaseGameActivity這個類時,會重寫其對應的四個方法:onLoadEngine,onLoadResource,onLoadScene,onLoadComplete,其中onLoadResource這個
方法就是爲了讓我們加載一個資源的,例如圖片資源,字體等。
且看下面的例子:
@Override
public void onLoadResources(){
//創建一個Texture對象,這個對象的大小是64*32個像素,用來
//存儲將要加載的face_box.png和box.png圖片
mTexture = new Texture(64,32,TextureOptions.BILINEAR_PREMULTIPLYALPHA);
//加載圖片資源face_box.png
AssetTextureSource faceboxTextSource = new AssetTextureSource(this,
"gfx/face_box.png");
//加載圖片資源box.png
AssetTextureSource faceboxTextSource = new AssetTextureSource(this,
"gfx/box.png");
//把兩個圖像資源對象拼接在這個Textrue中,此Texture由左右兩個矩形組成,
//其中左邊矩形爲face_box.png放入texture中的起點座標是(0,0)
//右邊矩形是box.png圖像,放入texture中的座標是(32,0)
mFaceboxTextureRegion = TextrueRegionFactory.createFromSrouce(mTexture,
faceboxTextSource,0,0);
mBoxTextureRegion = TextrueRegionFactory.createFromSrouce(mTexture,
faceboxTextSource,32,0);
//加載texture資源到遊戲引擎中去
mEngine.getTextureManager().loadTexture(mTexture);
}
到此爲止,圖片資源已經加載到內存了,那麼我們將其放入到場景中去,於是開始重寫onLoadScene
方法,具體實現如下:
@Override
public Scene onLoadScene(){
//常規的創建遊戲場景和遊戲場景的背景
Scene scene = new Scene();
scene.setBackground(new ColorBackground(0.3f,0.3f,0.3f));
//創建 一個Sprite對象,同時制定精靈對象的圖片資源
Sprite faceSprite = new Sprite(CAMERA_WIDTH/2 - 50,
CAMERA_HEIGHT / 2,mBoxTextureRegion);
Sprite boxSprite = new Sprite(CAMERA_WIDTH/2 + 50,
CAMERA_HEIGHT / 2,mFaceboxTextrueRegion);
//把兩個精靈Sprite添加到遊戲場景中
scene.attachChild(faceSprite);
scene.attachChild(boxSprite);
return scene;
}
如此,圖片資源已經加載完畢,並能正常在場景中顯示了。