您好,登錄后才能下訂單哦!
前置條件:看完OGE工程搭建
我們以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版本號
<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>
<action android:name="android.intent.action.MAIN" />//決定應用程序最先啟動的Activity
<category android:name="android.intent.category.LAUNCHER" />//決定應用程序是否顯示在程序列表里
</intent-filter>
</activity>
================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文件
<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>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。