1、目錄改動
每個版本都會有目錄變動庶溶,這次的版本也不例外煮纵。最顯眼的就是,在文件的根目錄中增加了一個名為setup.py的配置文件偏螺。運行它可以配置系統(tǒng)的一些環(huán)境變量醉途。
新的版本我們來動手創(chuàng)建一個新項目吧砖茸。找到tools文件夾....額 打包的那個名為create-project.py的文件似乎木有了隘擎!原來,在新版本中凉夯,創(chuàng)建新項目已經(jīng)可以通過命令行來創(chuàng)建了货葬,相對于先前版本的圖形界面,命令行更簡潔劲够。我們要在setup.py中設置參數(shù)震桶。以mac平臺為例,我們進入到對應目錄征绎,運行腳本setup.py:
Setting up cocos2d-x...
-> Adding COCOS2D_CONSOLE_ROOT environment variable... OK
-> Added: COCOS_CONSOLE_ROOT = /Users/fansy/Documents/cocos2d-x-3.0rc0/tools/cocos2d-console/bin
-> Looking for NDK_ROOT envrironment variable... FOUND
-> Looking for ANDROID_SDK_ROOT envrironment variable... NOT FOUND
Please enter its path (or press Enter to skip): /Users/fansy/lib/android-sdk-macosx
ADDED
-> Added: ANDROID_SDK_ROOT = /Users/fansy/lib/android-sdk-macosx
-> Looking for ANT_ROOT envrironment variable... NOT FOUND
Please enter its path (or press Enter to skip): /Users/fansy/Documents/ant-1.9.3/bin
ADDED
-> Added: ANT_ROOT = /Users/fansy/Documents/ant-1.9.3/bin
Set up successfull:
ANT_ROOT was added into /Users/fansy/.bash_profile
Please execute command: "source /Users/fansy/.bash_profile" to make added system variables take effect
顯然蹲姐,我們在這里設置了cocos2dx命令行的路徑,android_sdk的路徑人柿,ant_root的路徑柴墩。這些路徑都是打Android包需要使用的。接下來我們運行:
source ~/.bash_profile
這樣就可以將變量配置到bash_profile中凫岖。接下來我們就可以創(chuàng)建項目了江咳,這里使用了一個cocos new命令,有點像c++的分配一塊內(nèi)存 哈 觸控的程序員兄弟挺幽默呢哥放。
localhost:~ fansy$ cocos new
Runing command: new
usage: cocos new [-h] [-p PACKAGE_NAME] -l {cpp,lua,js} [-d DIRECTORY]
[-t TEMPLATE_NAME] [--no-native]
[PROJECT_NAME]
cocos new: error: argument -l/--language is required
localhost:~ fansy$ cocos new HelloNew2dx -p com.fansy.hello -l cpp -d ~/Documents/Code/
Runing command: new
> Copy template into /Users/fansy/Documents/Code/HelloNew2dx
> Copying cocos2d-x files...
> Rename project name from 'HelloCpp' to 'HelloNew2dx'
> Replace the project name from 'HelloCpp' to 'HelloNew2dx'
> Replace the project package name from 'org.cocos2dx.hellocpp' to 'com.fansy.hello'
這樣我們的項目就創(chuàng)建好了歼指。
進入項目目錄,我們可以直接運行"cocos run"命令行踩身,在各平臺上運行胀茵。
localhost:~ fansy$ cd ~/Documents/Code/HelloNew2dx/
localhost:HelloNew2dx fansy$ cocos run
Runing command: compile
The target platform is not specified.
You can specify a target platform with "-p" or "--platform".
Available platforms : win32, android, ios, mac, linux
localhost:HelloNew2dx fansy$ cocos run -p ios
命令通過“-p”來設置平臺,設置成iOS的話挟阻,在一段編譯的信息后宰掉,會自動打開模擬器。
......blablabla......
** BUILD SUCCEEDED **
build succeeded.
Runing command: deploy
Deploying mode: debug
Runing command: run
starting application
running: '/Users/fansy/Documents/cocos2d-x-3.0rc0/tools/cocos2d-console/bin/../plugins/project_run/bin/ios-sim launch /Users/fansy/Documents/Code/HelloNew2dx/bin/debug/ios/HelloNew2dx.app &'
localhost:HelloNew2dx fansy$ 2014-03-15 19:08:35.432 HelloNew2dx iOS[1522:80b] cocos2d: surface size: 960x640
cocos2d:
{
cocos2d.x.version: 3.0-rc0
cocos2d.x.compiled_with_gl_state_cache: true
cocos2d.x.build_type: DEBUG
gl.supports_vertex_array_object: true
cocos2d.x.compiled_with_profiler: false
gl.renderer: Apple Software Renderer
gl.vendor: Apple Computer, Inc.
gl.max_texture_size: 4096
gl.max_samples_allowed: 4
gl.version: OpenGL ES 2.0 APPLE-9.2.1
gl.supports_S3TC: false
gl.supports_ATITC: false
gl.supports_ETC1: false
gl.max_texture_units: 8
gl.supports_PVRTC: true
gl.supports_NPOT: true
gl.supports_discard_framebuffer: true
gl.supports_BGRA8888: false
}
libpng warning: iCCP: known incorrect sRGB profile
然后就是我們熟悉的日志了赁濒。
接下來測試Android打包轨奄。同樣運行“cocos run”。會打出debug的apk拒炎,并自動連接到設備上挪拟。
localhost:HelloNew2dx fansy$ cocos run -p android -j 4
Runing command: compile
Building mode: debug
building native
The Selected NDK toolchain version was 4.7 !
......blablabla..........
BUILD SUCCESSFUL
Total time: 4 seconds
Move apk to /Users/fansy/Documents/Code/HelloNew2dx/bin/debug/android
build succeeded.
Runing command: deploy
Deploying mode: debug
installing on device
running: '/Users/fansy/lib/android-sdk-macosx/platform-tools/adb uninstall com.fansy.hello'
- waiting for device -
這時我們打開android模擬器,或連接真機击你,即可安裝運行我們的apk了玉组。
我運行Android模擬器時黑屏丁侄,查看logcat顯示:
E/libEGL? (? 331): called unimplemented OpenGL ES API
目測是openGL調(diào)用的問題惯雳。我又連接真機,發(fā)現(xiàn)可以運行鸿摇,估計有可能是模擬器配置的問題石景?希望有知道的童鞋留言告訴我。
另外在win32平臺上運行setup.py報錯:該問題是由于Python的版本引起的拙吉,將python版本從3.3更改到2.7可以修復
C:\OutFile\cocos2d-x-3.0rc0>python setup.py
File "setup.py", line 114
print 'Warning: Could not add "%s" into registry' % key
^
SyntaxError: invalid syntax
我看了一下代碼潮孽,似乎是取注冊表時出問題了。
def _set_environment_variable_win32(self, key, value):
import _winreg
try:
env = None
env = _winreg.OpenKeyEx(_winreg.HKEY_CURRENT_USER,
'Environment',
0,
_winreg.KEY_SET_VALUE | _winreg.KEY_READ)
_winreg.SetValueEx(env, key, 0, _winreg.REG_SZ, value)
_winreg.FlushKey(env)
_winreg.CloseKey(env)
except Exception:
if env:
_winreg.CloseKey(env)
print 'Warning: Could not add "%s" into registry' % key
return False
return True
我的環(huán)境是win7 64位筷黔。已關360往史,管理員權(quán)限運行也無效,不知是怎么回事佛舱∽道可能是我注冊表比較詭異?也希望知道如何解決這個問題的童鞋留言~