91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Win32游戲到Android平臺移植時必須解決的問題集錦

發布時間:2020-06-21 00:40:31 來源:網絡 閱讀:518 作者:googlingman 欄目:移動開發

這方面的問題很多,在目前網絡上很難找到滿足的答案。我在這里將把自己的一個游戲從WIN32到ANDROID移植過程必須面對和要解決的問題,列舉出來(有些是已經得到回答的,有些還未解決)。

1,如何顯示自己的游戲程序圖標

這個使用傳統的android平臺思路實現即可,即修改工程的proj.android\res路徑下drawable-hdpi、drawable-ldpi、drawable-mdpi、drawable-xhdpi下的icon.png文件。

注 意:一次試驗中我僅修改了drawable-hdpi和drawable-mdpi下的文件,而沒有修改drawable-ldpi下的圖標,結果在最終 的真機(Samsung I9100)上顯示是仍然是drawable-ldpi下的系統默認的圖標。因此,只有全面修改上面文件夾(有的文件夾可以為空)下的圖標為一致的圖像文 件時才能達到目的。

2,中文字體的顯示

這個問題比較復雜,因為存在多種情況。讓我們來逐一討論。最主要的參考資源首先就是伴隨引擎的TESTCPP示例中的LabelTest部分。
值得注意的是,其中有幾個例子是有關于漢字顯示的,因為我們在本文中最關心的首先是在WIN32下顯示正常的漢字,然后在ANDROID平臺上也能正常地顯示漢字,
所以,這幾個例子需要認真地研究。

例1:BMFontUnicode類。

完整代碼如下:


    CCDictionary *strings = CCDictionary::createWithContentsOfFile("fonts/strings.xml");
    const char *chinese = ((CCString*)strings->objectForKey("chinese1"))->m_sString.c_str();
    const char *japanese = ((CCString*)strings->objectForKey("japanese"))->m_sString.c_str();
    const char *spanish = ((CCString*)strings->objectForKey("spanish"))->m_sString.c_str();


    CCSize s = CCDirector::sharedDirector()->getWinSize();

    CCLabelBMFont *label1 = CCLabelBMFont::create(spanish, "fonts/arial-unicode-26.fnt", 200, kCCTextAlignmentLeft);
    addChild(label1);
    label1->setPosition(ccp(s.width/2, s.height/4*3));

    CCLabelBMFont *label2 = CCLabelBMFont::create(chinese, "fonts/arial-unicode-26.fnt");
    addChild(label2);
    label2->setPosition(ccp(s.width/2, s.height/4*2));

    CCLabelBMFont *label3 = CCLabelBMFont::create(japanese, "fonts/arial-unicode-26.fnt");
    addChild(label3);
    label3->setPosition(ccp(s.width/2, s.height/4*1));




上面代碼在WIN32下與ANDROID平臺上都可以正常顯示漢字。下面給出ANDROID平臺真機上結果的屏幕快照。

Win32游戲到Android平臺移植時必須解決的問題集錦

最近,我在網絡上花費了不少時間,最后基本認定使用CCLabelBMFont 顯示文字是非常不錯的選擇(有些文章說CCLabelTTF存在效率問題,就先不使用了)。

那么,直接在上面Create方法的第一個參數中使用字符串,例如“中國”,可以嗎?NO!!!!!!!!!!!!!
這個數據必須為UNICODE編碼!!!

經 過分析,我選擇了先把游戲中要使用的文字保存在一個UNICODE編碼的文本文件中(后面還要說這件事),然后根據DEMO中所示,創建一個XML文件, 其格式 與DEMO中一致。看下面的例子。注意:其中的UNICODE標志(看一個DEMO中的XML文件內容即可)。


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>chinese1</key>
    <string>實際使用如下</string>
    <key>japanese</key>
    <string>非常奇怪</string>
    <key>spanish</key>
    <string>引擎頭文件</string>
</dict>
</plist>




有 了上面的XML文件,下面要使用字體生成器創建相應的字體及圖像文件。我建議使用(我在WINDOWS下,針對ANDROID平臺)BMFont。就是 DEMO中LabelTest文件中多處指出的那一個(http://www.angelcode.com/products/bmfont/ (Free, Windows only))。

下載后使用它,你可以參考一篇文章(http://blog.csdn.net/aa4790139/article/details/8113197)。

但 是,上面的文章僅是入門級的,有幾個問題沒有指明。我使用其中的方法,可以顯示漢字了,但是漢字有黑色底紋。解決辦法是:把文章中Export Options處提到的8更改為24即可。當然,使用EDIT-SELECT CHARS FROM FILE時,必須導入UTF-8格式的文本文件。

另 外,BMFont功能還是相當不錯的。盡管它生成的.FNT文件支持多個(頁)png文件,但是就我目前使用的COCOS2D-X 2.0.2而言卻不支 持-僅支持一頁(一個PNG)情況。因此,如果你導入的TXT文件比較大,需要在Export Options窗口中把位置調整大一些(默認是256X256),例如調整為256X512。總之,你需要圖像調整到一個盡可能小但是又能夠存放下你想使 用的所有漢字的一個PNG文件內。

其他的使用細節就不說了。

對于生成的PNG文件,你可以使用PHOTOSHOP這樣的工具,對文字進行盡情加工。例如,DEMO中的金字也許就是這樣加工的。下圖給出了我的WIN32程序的一個快照(我的PS水平不好)。在ANDROID平臺上也是沒有問題的。

Win32游戲到Android平臺移植時必須解決的問題集錦

提示:選定PNG文件中的所有文字讓我費了一些腦筋,最后找到辦法是:選擇-色彩范圍-高光。


之后,使用例如最上面的編碼就可以顯示你自己的漢字了(BOTH WIN32 AND ANDROID!!!)。


3,多分辨率顯示問題


4,快捷菜單與后退鍵的操作


在ANDROID平臺上,這個比較簡單。。。。。。

5,加入廣告技術


6,定制自己的游戲軟件標題名稱



這個只需要修改res\values目錄下文件strings.xml中app_name的內容即可,建議在Eclipse中完成。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

普定县| 五华县| 连城县| 大渡口区| 马公市| 刚察县| 宣汉县| 德州市| 杨浦区| 堆龙德庆县| 康定县| 安达市| 垫江县| 融水| 抚远县| 江津市| 迭部县| 武冈市| 前郭尔| 车致| 泰宁县| 河西区| 广东省| 仙游县| 张家港市| 洛宁县| 佳木斯市| 友谊县| 财经| 六枝特区| 贵阳市| 柘城县| 多伦县| 牡丹江市| 汉中市| 枝江市| 如东县| 共和县| 滨海县| 治多县| 托里县|