AndEngine加载图片资源(五)

当我们继承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;
}

如此,图片资源已经加载完毕,并能正常在场景中显示了。


猜你喜欢

转载自blog.csdn.net/smach1991710/article/details/11318507
今日推荐