標籤:
在新的版本下,一些解決方案也隨之不同。今天就遇見兩個需要注意的地方,第一個是安卓環境新的配置方法;第二個是解析度的設定與適配。
先說新的配置方法。其實本質上我感覺和2.2.2版本的配置方案是差不多的,只不過更加簡單了(不用再手動的配置NDK了)。配置方法在官網上也有:http://cocos2d-x.org/programmersguide/B/index.html,不過其中也有些需要注意,故作整理。
比起以前的配置方法,要多做兩個步驟(這兩個步驟具體為何,我尚不清楚,不過感覺無妨):
1.添加JAVA_HOME環境變數,內容是jdk的目錄;
2.下載解壓ANT,添加其根目錄下bin目錄到PATH環境變數。:http://pan.baidu.com/s/1i3szmEp
接下來在命令列下運行引擎根目錄下的setup.py,根據提示,設定NDK, Android SDK, ANT的目錄,這裡要注意的是,ANT的配置目錄不是其根目錄,而是其根目錄下的bin目錄。之後,在Elipse下面添加、運行項目的方式和以前是一樣的。但這裡又會出現問題。我在實際運行中,出現了編譯錯誤:format not a string literal and no format arguments [-Werror=format-security],出錯的代碼是:sprintf(buf, lessons[i]); 即一個非常普通的c語言代碼。通過網上查閱才解決了問題,據說是NDK與Eclipse的版本不相容問題,只要在對應項目的Application.mk添加一句APP_CFLAGS += -Wno-error=format-security就可以了,意思是無視這個error。
問題還沒有結束,接下來的問題也是本文最開始提出的第二個注意點:解析度的設定與適配。在安卓環境下成功編譯好項目並運行後,發現螢幕顯示歪曲,並且沒有觸摸反應。最後也是在網上查閱才找到原因。
新版本中好像沒有設定螢幕解析度的代碼,採用了預設模式(舊版本中是在main函數中設定的)。解決方案是,在AppDelegate.cpp裡,添加一行代碼:
glview->setDesignResolutionSize(640,480, kResolutionShowAll);
還要還注意的是:
1.似乎不能用setFrameSize函數了,不然還會出現問題;
2.這其實是一個解析度適配的代碼,並不是遊戲視窗大小的設定。因此後續學習肯定還有問題。。
cocos2dx-3.3版本安卓環境配置以及螢幕適配