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