新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
前置条件:看完OGE工程搭建
创新互联-专业网站定制、快速模板网站建设、高性价比涟水网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式涟水网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖涟水地区。费用合理售后完善,十年实体公司更值得信赖。我们以Flappy Bird来对工程目录做说明
首先是我们的游戏工程,这是个纯粹的java工程,不涉及任何平台(如Android、IOS 等)
该工程创建后引入OGE引擎,或者根据需求引入对应的扩展包(如Box 2d)
在src中,我们需要一个类去继承OGE引擎中的GameLauncher作为程序的入口,在这个Demo中MainLauncher继承了GameLauncher,实现了适配,资源加载等功能。
public class MainLauncher extends GameLauncher implements IConstant{
@Override
protected PixelPerfectEngineOptions onCreatePixelPerfectEngineOptions() {
PixelPerfectEngineOptions pixelPerfectEngineOptions = new PixelPerfectEngineOptions(ZoomCamera.class);
// 设置竖屏 与 AndroidManifest.xml中android:screenOrientation的设置一致
pixelPerfectEngineOptions.setScreenOrientation(ScreenOrientation.PORTRAIT_FIXED);
// 适配模式,根据自己的需求选择改变宽或者高,这里设置为“保持宽度不变,改变高”
pixelPerfectEngineOptions.setPixelPerfectMode(PixelPerfectMode.CHANGE_HEIGHT);
// 参考尺寸,游戏期望尺寸
pixelPerfectEngineOptions.setDesiredSize(DESIRED_SIZE);
return pixelPerfectEngineOptions;
}
@Override
protected void onLoadResources() {
// 加载图片资源
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
protected void onLoadComplete() {
//整个引擎资源加载和启动后 跳转到想到的场景
startScene(GameScene.class);
}
}
Android工程中src是包名和一个启动类,该类继承引擎android端的入口类GameActivity
project_src就是我们使用linkSource将OGEDemo_flappybird_java项目的src给同步过来
Android 4.1和Android Private Libraries就是看android API引用的版本和你引入哪些jar包
assets目录支持任意深度的子目录,该目录下文件不会被编译处理,适合存放资源文件,我们Demo中存放音频文件、图片压缩后文件,字体文件等
bin目录,工程被编译后,会生成一个bin目录,里面会有debug签名的apk文件,所以直接整个bin目录删除也没关系
libs目录,这里存放jar包或者so文件,so文件通常放在libs\armeabi目录下
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版本号
android:icon="@drawable/ic_launcher" //引用drawable存放的icon文件 @drawable/文件名 android:label="@string/app_name"//引用strings.xml文件中app的应用名>
android:name="com.orange.flappybird.MainActivity" //通常是包名加类名的格式 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" //实现全屏效果 android:screenOrientation="portrait" //屏幕显示 应当与PixelPerfectEngineOptions.ScreenOrientation属性一致 >
================AndroidManifest.xml文件中====================
混淆是为了防止apk被反编译
proguard.cfg 可引用混淆文件使工程进行混淆
proguard-project.txt 混淆文件的配置
同理,工程中src是包名和一个启动类,该类继承引擎IOS端的入口类GameActivity
project_src就是我们使用linkSource将OGEDemo_flappybird_java项目的src给同步过来
RoboVM Runtime Library 和 RoboVM CocoaTouch Library 是创建RoboVM Project 后自动引用的库
assets目录支持任意深度的子目录,该目录下文件不会被编译处理,适合存放资源文件,我们Demo中存放音频文件、图片压缩后文件,字体文件等
libs目录,这里存放jar包或者.a文件,.a文件通常放在libs\iphonesimulator和libs\iphoneos目录下
Info.plist.xml里可设置Icon文件
...
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文件的路径
...
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。