OGEngine工程目录
工程目录前置条件:看完OGE工程搭建
我们以FlappyBird来对工程目录做说明
首先是我们的游戏工程,这是个纯粹的java工程,不涉及任何平台(如Android、IOS等)
该工程创建后引入OGE引擎,或者根据需求引入对应的扩展包(如Box2d) 在src中,我们需要一个类去继承OGE引擎中的GameLauncher作为程序的入口,在这个Demo中MainLauncher继承了GameLauncher,实现了适配,资源加载等功能。 publicclassMainLauncherextendsGameLauncherimplementsIConstant{ @Override protectedPixelPerfectEngineOptionsonCreatePixelPerfectEngineOptions(){ PixelPerfectEngineOptionspixelPerfectEngineOptions=newPixelPerfectEngineOptions(ZoomCamera.class); //设置竖屏与AndroidManifest.xml中android:screenOrientation的设置一致 pixelPerfectEngineOptions.setScreenOrientation(ScreenOrientation.PORTRAIT_FIXED); //适配模式,根据自己的需求选择改变宽或者高,这里设置为“保持宽度不变,改变高” pixelPerfectEngineOptions.setPixelPerfectMode(PixelPerfectMode.CHANGE_HEIGHT); //参考尺寸,游戏期望尺寸 pixelPerfectEngineOptions.setDesiredSize(DESIRED_SIZE); returnpixelPerfectEngineOptions; }
@Override protectedvoidonLoadResources(){ //加载图片资源 RegionRes.loadTexturesFromAssets(Res.ALL_XML); //加载音效资源 Device.getDevice().getSoundFactory().setAssetBasePath("mfx/"); SoundRes.loadSoundFromAssets(SOUND_DIE,"mfx_die.mp3"); SoundRes.loadSoundFromAssets(SOUND_HIT,"mfx_hit.mp3"); SoundRes.loadSoundFromAssets(SOUND_POINT,"mfx_point.mp3"); SoundRes.loadSoundFromAssets(SOUND_SWOOSING,"mfx_swooshing.mp3"); SoundRes.loadSoundFromAssets(SOUND_WING,"mfx_wing.mp3"); } @Override protectedvoidonLoadComplete(){ //整个引擎资源加载和启动后跳转到想到的场景 startScene(GameScene.class); } } 下面是Android启动器
Android工程中src是包名和一个启动类,该类继承引擎android端的入口类GameActivity
project_src就是我们使用linkSource将OGEDemo_flappybird_java项目的src给同步过来
Android4.1和AndroidPrivateLibraries就是看androidAPI引用的版本和你引入哪些jar包
assets目录支持任意深度的子目录,该目录下文件不会被编译处理,适合存放资源文件,我们Demo中存放音频文件、图片压缩后文件,字体文件等
bin目录,工程被编译后,会生成一个bin目录,里面会有debug签名的apk文件,所以直接整个bin目录删除也没关系
libs目录,这里存放jar包或者so文件,so文件通常放在libsarmeabi目录下
so文件是一个c++的函数库,在android的JNI中,是先将相应的C语言打包成so库导入到libs文件夹中调用的
res目录,里面的几个drawable目录中,存放适用于不同分辨率的Icon文件(文件名要一致),values目录下strings.xml文件存放文本,app的名字也包含其中
================AndroidManifest.xml文件中==================== package=”com.orange.flappybird”//包名 android:versionCode="1"//内部版本标示版本号 android:versionName="1.0"//应用版本号给用户看的 android:minSdkVersion="8"//目前引擎最小androidSDK版本号 android:targetSdkVersion="17"//目标androidSDK版本号
<application android:icon="@drawable/ic_launcher"//引用drawable存放的icon文件@drawable/文件名 android:label="@string/app_name"//引用strings.xml文件中app的应用名> </application>
<activity android:name="com.orange.flappybird.MainActivity"//通常是包名加类名的格式 android:theme="@android:style/Theme.NoTitleBar.Fullscreen"//实现全屏效果 android:screenOrientation="portrait"//屏幕显示应当与PixelPerfectEngineOptions.ScreenOrientation属性一致 >
<intent-filter> <actionandroid:name="android.intent.action.MAIN"/>//决定应用程序最先启动的Activity <categoryandroid:name="android.intent.category.LAUNCHER"/>//决定应用程序是否显示在程序列表里 </intent-filter> </activity> ================AndroidManifest.xml文件中====================
混淆是为了防止apk被反编译
proguard.cfg可引用混淆文件使工程进行混淆 proguard-project.txt混淆文件的配置
下面是IOS启动器
同理,工程中src是包名和一个启动类,该类继承引擎IOS端的入口类GameActivity
project_src就是我们使用linkSource将OGEDemo_flappybird_java项目的src给同步过来
RoboVMRuntimeLibrary和RoboVMCocoaTouchLibrary是创建RoboVMProject后自动引用的库
assets目录支持任意深度的子目录,该目录下文件不会被编译处理,适合存放资源文件,我们Demo中存放音频文件、图片压缩后文件,字体文件等
libs目录,这里存放jar包或者.a文件,.a文件通常放在libsiphonesimulator和libsiphoneos目录下
Info.plist.xml里可设置Icon文件 <dict> ... <key>CFBundleIconFiles</key> <array> <string>assets/icon/icon_96.png</string> <string>assets/icon/icon_72.png</string> <string>assets/icon/icon_48.png</string> </array> </dict>
robovm.properties:app相关配置 app.version=1.0//版本 app.id=com.orange.flappybird//id通常以包名作为id app.mainclass=com.orange.flappybird.MainActivity//主类 app.executable=MainActivity//可执行的类 app.build=1 app.name=OGE_FlappyBird//app名字
robovm.xml:设置引用.a文件的路径 <config> ... <libs> <lib>libs/iphoneos/libOGEngineIOS.a</lib> <lib>libs/iphonesimulator/libOGEngineIOS.a</lib> <lib>libs/iphoneos/libOGEngineIOS_BOX2D.a</lib> <lib>libs/iphonesimulator/libOGEngineIOS_BOX2D.a</lib> </libs> </config> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |