资源描述:
《使用ogengine开发2048游戏》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、www.ogengine.com2048最近有一款2048的游戏非常火,本文将通过这个游戏来介绍一下OGEngine游戏引擎的一些使用。OGEngine引擎是开源的,我们很容易找到,搭建起来也很方便,我们只需在Android工程下添加OGEngine的jar包或者直接引用源码就可以了。1.创建游戏的主Activity类创建的游戏主Activity入口类继承于GameActivity类,需要重写相关方法。(1)重写onCreatePixelPerfectEngineOptions().此类主要是设置引擎相关参数。@Overr
2、ideprotectedPixelPerfectEngineOptionsonCreatePixelPerfectEngineOptions(){PixelPerfectEngineOptionspixelPerfectEngineOptions=newPixelPerfectEngineOptions(this,ZoomCamera.class);//设置竖屏pixelPerfectEngineOptions.setScreenOrientation(ScreenOrientation.PORTRAIT_FIXED);/
3、/适配模式,这里设置为“保持宽度不变,改变高”pixelPerfectEngineOptions.setPixelPerfectMode(PixelPerfectMode.CHANGE_HEIGHT);//参考尺寸pixelPerfectEngineOptions.setDesiredSize(ConstantUtil.DESIRED_SIZE);returnpixelPerfectEngineOptions;}解析:①根据游戏本身的需要设置竖屏或者横屏;ScreenOrientation.PORTRAIT_FIXED这个
4、参数表示竖屏,ScreenOrientation.LANDSCAPE_FIXED这参数表上横屏,我这里设置成了竖屏。②设置适配模式,PixelPerfectMode.CHANGE_HEIGHT表上“保持宽度不变,改变高”。③屏幕参考尺寸,我这里是竖屏上面又设置了“保持宽度不变,改变高”,所以我这里的参考尺寸设为480,表示保持镜头的宽为480不变,根据实际手机屏幕分辨率的宽高比改变镜头的高。(2)重写onLoadResources().此类主要用于在此加载相关资源。www.ogengine.com@Overrideprot
5、ectedvoidonLoadResources(){//加载图片资源RegionRes.loadTexturesFromAssets(Res.ALL_XML);//加载字体资源FontRes.loadFont(128,128,Typeface.create(Typeface.DEFAULT,Typeface.BOLD),32,true,Color.BLACK,ConstantUtil.FONT_CARD_NUM);FontRes.loadFont(128,128,Typeface.create(Typeface.DEFA
6、ULT,Typeface.NORMAL),25,true,Color.WHITE,ConstantUtil.FONT_SCORE_NUM);//加载音效资源SoundFactory.setAssetBasePath("mfx/");SoundRes.loadSoundFromAssets(ConstantUtil.SOUND_SELECT,"select.mp3");SoundRes.loadSoundFromAssets(ConstantUtil.SOUND_SETPOS,"setpos.mp3");SoundRes.l
7、oadSoundFromAssets(ConstantUtil.SOUND_MERGE,"merge.mp3");}(3)重写onLoadComplete().此类在上面onLoadComplete()方法中加载资源完成后执行,通常此时可以跳转到相关游戏场景。@OverrideprotectedvoidonLoadComplete(){//加载资源完成后this.startScene(GameScene.class);}2.创建游戏场景GameScene类创建场景的类可以继承于Scene类,场景Scene是Entity的子
8、类,该类用来创建游戏中的场景。Scene是屏幕上所有对象的根容器。在onSceneCreate(SceneBundlebundle)方法里面创建各种实体,比如EntityGroup、Sprite、Text、Layer。@OverridepublicvoidonSceneCreate(SceneBundl