AndEngine加载图片资源(五)

来源:互联网 发布:腾讯算法工程师待遇 编辑:程序博客网 时间:2024/04/29 00:03

当我们继承AndEnginede的BaseGameActivity这个类时,会重写其对应的四个方法:onLoadEngine,onLoadResource,onLoadScene,onLoadComplete,其中onLoadResource这个

方法就是为了让我们加载一个资源的,例如图片资源,字体等。

 

且看下面的例子:

@Overridepublic void onLoadResources(){//创建一个Texture对象,这个对象的大小是64*32个像素,用来//存储将要加载的face_box.png和box.png图片mTexture = new Texture(64,32,TextureOptions.BILINEAR_PREMULTIPLYALPHA);//加载图片资源face_box.pngAssetTextureSource faceboxTextSource = new AssetTextureSource(this,"gfx/face_box.png");//加载图片资源box.pngAssetTextureSource 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

方法,具体实现如下:

@Overridepublic 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;}

 

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


原创粉丝点击