当我们继承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; }
如此,图片资源已经加载完毕,并能正常在场景中显示了。