锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鐒跺悗錛屽彲浠ュ緱鍒伴噸瑕佺殑涓や釜鐩綍 plugin鐩綍鏄彁渚涘皢buffer 鏂囦歡瑙f瀽鎴恖ua 鐗堟湰鐨勭被搴擄紝 闇瑕乸ython 鏀寔銆? 濡傛灉宸茬粡緙栬瘧浜唃oogle 瀹樻柟鐨刾rotoc 閭d釜紼嬪簭錛?鍙渶瑕佸湪緋葷粺PATH鐜鍙橀噺鎬昏拷鍔爌lugin鐩綍灝卞ソ: 鍏堢‘瀹氳嚜宸辯殑quick-cocos2d-x lua鎵╁睍鐩綍錛? 榪欐槸鎴戠殑鐩綍緇撴瀯: 璺緞涓猴細 鐩墠鏄竴涓笉瓚?0琛岀殑灝忔枃浠訛紝 鎴戞墦綆楀叏閮ㄨ創(chuàng)榪涙潵錛? 鐩綍緇撴瀯搴旇鏄繖鏍風殑錛? 淇敼main.lua 鍦╮equire("appxxxxxx") 涓婇潰 錛?鍔犲叆涓嬮潰鐨勪唬鐮侊細 榪涘叆player-x qt婧愮爜鐩綍 錛? 浣跨敤qmake 鏂囦歡鎵цquick-x.pro 鏂囦歡 濡傛灉閿欒淇℃伅鐩稿悓錛?淇敼鏂囦歡: 鏌ユ壘琛? 涓存椂鍙樻洿涓猴細 鎬濊礬 鍍忔墍鏈夎璦涓鏍鳳紝緇戝畾鍥炶皟涓昏鏄墽琛岀殑浠誨姟鎵ц鍒扮壒瀹氭儏褰㈢殑鏃跺欙紝璋冪敤瀵圭敤鍥炶皟鏂規(guī)硶銆?鏈枃涔熶竴鏍鳳紝Lua娉ㄥ唽鍥炶皟鍒癈++鐨勬牳蹇冩濊礬鏄紝褰揅浠g爜鎵ц鍒扮壒瀹氱壒瀹氭儏褰㈢殑鏃跺欙紝璋冪敤Lua鐨勬柟娉曘?/p> 鎴戣繖閲屼嬌鐢ㄧ殑鏄敤lua_stack鐩存帴璋冪敤lua鐨勬柟娉曪紝娌℃湁浣跨敤Cocos2d-x灝佽鐨勯偅涓猟ispatcher錛屽洜涓虹啛鎮(zhèn)夐偅涓牸寮忓お澧ㄨ抗浜嗐?/p> 涓昏姝ラ濡備笅 緙撳瓨Lua鍑芥暟鍦↙ua鐜涓殑寮曠敤 鍦–浠g爜鐨勫湴鏂圭敤C鐨勬柟寮忚緗ソ鍥炶皟 鍦–浠g爜鍥炶皟鍑芥暟鎵ц鐨勬椂鍊欙紝璋冪敤lua鍑芥暟 瀹炵幇 C浠g爜緇戝畾鍥炶皟錛岃皟鐢↙ua鍑芥暟 鎻愪緵Lua鍑芥暟緇戝畾鍒癈鐨勬柟娉? 涓婅竟鐨勮繖涓嚱鏁扮洿鎺ョ敤cocos閲岀殑genbinding.py 鏄棤娉曟紜敓鎴怢ua閲屽彲璋冪敤鐨勬帴鍙g殑錛岄渶瑕佹墜鍔ㄧ紪鍐欑粦瀹氭柟娉? 璇磋繖涓緱鐢ㄥ埌Cocos2d-x涓彁渚涚殑涓涓柟娉曪細toluafix_ref_function浼氭妸涓涓狶ua鏍堜腑鐨勬柟娉曡漿鎴愪竴涓猧nt錛屼互渚緾++涓皟鐢ㄣ傛垜浼氬湪鏈鍚庨潰璇磋繖涓?/p> 灝嗙粦瀹氭柟娉曠粦瀹氬埌Lua鐜閲?/p> Lua閲岃緗洖璋冨埌C++ -嫻嬭瘯 鎵撳嵃鍥炶皟杈撳嚭錛屾祴璇曢氳繃 userdata 8 walk 鍏朵粬 toluafix_ref_function 浠ュ強 toluafix_get_function_by_refid 榪?涓や釜鏂規(guī)硶鏄浉浜掑搴旂殑 toluafix_ref_function榪欎釜鏂規(guī)硶鍦ㄦ敞鍐岃〃涓婂皢涓涓猯ua鐨刦unction涓庝竴涓猣unction_id鐢熸垚鏄犲皠 toluafix_get_function_by_refid 鏂規(guī)硶鍙互閫氳繃鍓嶄竴涓柟娉曠敓鎴愮殑function_id鏉ヨ緇戝畾鐨刲ua function鏀懼埌鏍堥《 executeFunctionByHandler executeFunctionByHandler 榪欎釜鏂規(guī)硶鍙槸閫氳繃toluafix_get_function_by_refid 鑾峰彇鍒癴unction鐒跺悗閫氳繃lua_pcall 鏂規(guī)硶璋冪敤錛屼唬鐮佸氨涓嶅啓浜嗐?/p> 浠ヤ笅澶ч儴鍒嗘潵鑷綉緇滐紝鍙仛瀛︿範璁板綍鐢ㄣ?/p> 涓 妗嗘灦灞傞潰 涓 妗嗘灦灞?br /> 鏁翠綋鏉ヨ錛宑ocos2dX鎻愪緵鐨勪竴涓畝渚跨殑妗嗘灦錛屽寘鍚簡娓叉煋錛屽姩鐢伙紝浜嬩歡鍒嗗彂錛岀綉緇滆繕鏈塙I錛岀墿鐞嗗紩鎿庣瓑鍑犲ぇ妯″潡銆傚浜庡仛涓涓父鎴忎粠鍔熻兘涓婃潵璇村凡緇?br /> 瓚沖浜嗐傛垜浠庤繖鍑犱釜鏂歸潰鍒嗗埆鎺㈣涓媍ocos2dX鐨勪紭緙虹偣浠ュ強鎴戜滑鍦ㄩ」鐩腑鏄浣曠敤鍒扮殑 錛?錛夋覆鏌擄細娓叉煋榪欏潡錛屼粬鐨勬覆鏌撴暟鎹窡Sprite榪涜浜嗙粦瀹氾紝鐒跺悗瀵逛簬openGl涔熸槸鐩存帴榪涜浜嗚皟鐢紝鑰屼笉鏄噰鐢ㄧ瓥鐣ユ垨鑰呮彃浠惰繘琛岃皟鐢ㄣ傚浜庡悗鏈熷鏋滈噰鐢―X鐨勮瘽 鎴戣寰楄繖鍧楁瘮杈冨啑浣欎簺銆備絾鏄繖浜涘茍涓嶄細褰卞搷娓告垙鐨勬覆鏌撻熷害銆傚畠鎻愪緵浜哹atch鏉ヨ繘琛屾壒嬈℃覆鏌撱傛墍浠ュ湪娓告垙閲岋紝鎴戜滑瀵硅祫婧愯繘琛屼簡鍒嗙粍錛岀劧鍚庡垎鍒敤textPacker 鎷兼垚涓寮犲浘鐗囷紝鏍煎紡鍛?娌℃湁alpha鐨勯噰鐢?RGB565錛屾湁alpha鐨勯噰鐢≧GBA4444錛岃姹傞珮鐨勮瘽灝遍噰鐢≧GBA8888錛岀劧鍚庣粺涓閲囩敤鎵規(guī)娓叉煋銆傛父鎴忕殑閫熷害浼氭彁鍗囧緢澶氥?/p> 瀵逛簬娓告垙鏁版嵁鐨勭鐞嗭紝cocos閲囩敤CCTextureCache榪欎釜鍗曚緥綾昏繘琛岀鐞嗐傞噴鏀懼彲浠ラ噰鐢ㄥ叏閮ㄩ噴鏀撅紝榪樻湁閲婃斁娌℃湁鐢ㄨ繃鐨勩傚茍涓斾篃鎻愪緵浜嗗紓姝ュ姞杞藉姩鐢昏祫婧愮殑鏂規(guī)硶 錛圥S錛氳繖涓浜庢兂鍋欰RPG鐨勫悓瀛︽潵璇達紝鍙槸濂戒笢瑗夸簡錛夈傛墍浠ュ浜庢覆鏌撹繖鍧楋紝鎴戜滑灝介噺鐢ㄦ壒嬈★紝鐒跺悗璁板緱閲婃斁鍐呭瓨灝監(jiān)K浜嗐?/p> 錛?錛夊姩鐢伙細cocos浠栨彁渚涗簡涓濂梐ction鏈哄埗銆傛暣浣撴潵璇達紝鏄痵prite run action銆傜劧鍚庨┍鍔╝ction閲岄潰鐨勫姩鐢繪暟鎹紝榪涜鎾斁鍔ㄧ敾銆傛墍鏈夌殑鍔ㄧ敾閮藉彲浠ヨ蛋action 鎺ュ彛銆傚浜庝嬌鐢ㄨ呮潵璇達紝涔熶笉鐢ㄥ幓鍏沖績鍏朵粬涓滆タ錛屽彧闇瑕佸垵濮嬪寲濂戒綘鎯寵鐨勫姩浣滐紝鐒跺悗鎶婂姩浣滄暟鎹緇檃ction銆傜劧鍚庤sprite run 灝卞彲浠ヤ簡銆傚ぇ姒俛ction灝辨槸榪欎釜 嫻佺▼銆傛湰鏉ユ垜浠兂鑷繁鍐欒嚜宸辯殑鍔ㄧ敾錛屼絾鏄埌鍚庢湡錛屽洜涓鴻嚜宸卞啓涓濂楀伐浣滈噺澶с傛墍浠ュ浜巑ove錛宻cale浠涔堢殑浠嶆棫閲囩敤cocos鑷繁鐨勩傚彧鏈塧nimation閲囩敤浜嗘垜浠殑銆?/p> 浣嗘槸鐜板湪鎯寵搗鏉ワ紝瀹屽叏娌℃湁蹇呰銆俢ocos鎻愪緵鐨勫凡緇忚凍澶熶簡銆傛垜浠墍闇瑕佸仛鐨勫氨鏄妸鍔ㄤ綔緙栬緫鍣ㄥ鍑虹殑鍔ㄧ敾鏁版嵁鐢╟ocos鐨勫姩浣滅炕璇戯紙瀵逛簬鍔ㄤ綔緙栬緫鍣ㄦ垜鍚庨潰浼氳錛夊啓 錛?錛変簨浠跺垎鍙戯細cocos瀵逛簬浜嬩歡鍒嗗彂榪欏潡灝辨瘮杈冨急浜嗐備粬鏄簨浠剁鐞嗘槸閫氳繃瀛樺偍姣忎竴涓猳bject浠ュ強浠栨帴鏀朵簨浠剁殑浼樺厛綰с傜劧鍚庤繘琛屽垎鍙戙備絾鏄粬騫舵病鏈夊鍦烘櫙榪涜鏍戠殑綆$悊 銆傛墍浠ユ垜浠殑鏀瑰彉灝辨槸寤虹珛璧峰満鏅爲錛岀劧鍚庝簨浠跺垎鍙戝厛浠庡満鏅《绔線涓嬪垎鍙戙傛湡闂存瘡涓妭鐐瑰彲浠ヨ緗槸鍚﹀搷搴斾互鍙婃槸鍚︾戶緇線涓嬩紶閫掔殑灞炴э紙浣滀負OC鍑鴻韓錛岃繖鍧楀畬鍏ㄦā浠胯嫻鏋滈偅濂楋級 瀹屽叏涓㈠純浜哻ocos鐨勯偅涓濂椾簨浠跺垎鍙戞満鍒躲傚浜庡満鏅爲鐨勭淮鎶わ紝鍙渶瑕佹瘡嬈tep鐨勬椂鍊欐洿鏂頒笅銆傛墍浠ュ浜庢煡璇㈡ц兘闇瑕佸ソ濂藉啓涓涓?br /> 錛?錛夌綉緇滐細cocos鎻愪緵浜嗗curl鐨勫皝瑁呫傛彁渚涗簡http鐨勪竴浜涚畝鍗曟瘮濡俫et錛宲ost鐨勫皝瑁呫備絾瀵逛簬鏂偣緇紶絳夊茍娌℃湁灝佽銆傚浜巗ocket錛宑ocos鍒欏畬鍏ㄦ病鏈夋彁渚涖傛垜浠噰鐢ㄤ簡 BSDSocket 錛?錛塙I錛歎I榪欒竟錛宑ocos鎻愪緵浜嗗嚑縐嶇畝鍗曠殑鎺т歡錛屾瘮濡侰CButton絳夈備粬浠兘緇ф壙浜嶤CSprite錛屼絾鏄お灝戙傝屼笖鍒濆鍖栨柟娉曟槸鍦ㄦ槸澶繃浜庡钁┿傛墍浠ユ垜浠嚜宸卞啓浜嗕竴濂桿I銆?/p> 錛堝叾瀹炴棤闈炰篃灝辨槸 button錛宭abel錛宼ableView錛宻crollView錛宨mage榪樻湁textInput錛変粬浠篃閮界戶鎵緾CSprite銆傜劧鍚庡姞鍏ヤ竴浜涙瘡涓帶浠剁嫭鏈夌殑閫昏緫灝卞彲浠ヤ簡銆傛渶楹葷儲 鐨勫簲璇ュ氨鏄痶extInput浜嗐傜収鐫cocos鎻愪緵鐨刬nput鍐欎竴閬嶏紝鐒跺悗鏀規(guī)敼銆傦紙cocos鎻愪緵浜咰CEditeBox錛屼絾鏄繖璐х殑鐨勮В鍐沖姙娉曟槸鍦↖OS涓婅皟鐢↖OS鐨勭殑鎺т歡銆備絾鏄粬鏄洿鎺ュ姞鍒頒簡egLView涓婏紝瀵逛簬欏甸潰縐誨姩錛岄〉闈㈠叧闂鐞嗚搗鏉ユ瘮杈冮夯鐑︺?br /> 鎵浠ヨ繖涓殏鏃惰繕涓嶈兘鐢級 浜?lua 錛?錛夐氳錛歝ocos閲囩敤浜唗olua++鏉ヨ繘琛孋++涓巐ua鐨勯氳銆傜湅Cocos2dXLuaLoad鏂囦歡閲岋紝閭d簺灝辨槸lua涓嶤++閫氳鐨勪竴涓眰銆傚叿浣撻氳鍘熺悊姣斿鏄氳繃 鏍堬紝浠涔堢殑鎴戝氨涓嶈浜嗭紙鍏跺疄鎴戜篃涓嶅お鎳傦級銆傝繖浜涗笢瑗縯olua++閮藉凡緇忔浛鍜卞皝瑁呭ソ浜嗐傛垜浠渶瑕佸仛鐨勫氨鏄啓濂紺++鏂囦歡 錛?錛夐棶棰橈細 閲岄潰build.xml銆倄ml鐨勫乏鍙沖氨鏄畾鍒秚olua++鐨勭敓鎴愩傚湪閲岄潰鎶妉ua鐨勫嚱鏁版寚閽堣漿鎴愪簡int浜嗐傚叿浣撶殑鐪媥ml鍐呭灝卞彲浠ヤ簡銆?br /> 闂2.鍦–CLuaEngine閲岃皟鐢ㄩ偅浜沴oad鏂規(guī)硶鏃訛紝鏄湁欏哄簭鐨勩備竴瀹氳鐖剁被鍦ㄥ墠錛屽瓙綾誨湪鍚庛備笉鐒跺瓙綾誨氨鏃犳硶璁塊棶鐖剁被鐨勬柟娉曘?/p> 錛?錛夊啓娉曪細 lua閲岄潰涓嶈鐢ㄥ叏灞鍙橀噺鎸佹湁sprite絳塁++鏁版嵁銆傛瘡涓ā鍧椾篃瑕佸儚cocos閭f牱鎻愪緵2涓柟娉曪紝涓涓槸榪涘叆璇ユā鍧楃殑鍒濆鍖栨柟娉曪紝涓涓槸閫鍑?br /> 璇ユā鍧楃殑閿姣佹柟娉曘?/p> 瀵逛簬lua榪欒竟鍐欐硶錛屾垜浠弬鑰冧簡 moai錛岃繕鏈塩orona錛屽湪lua閭h竟鍦ㄥ皝瑁呬笅C++錛屽叾浠杔ua涓嶆槸鐩存帴璋冪敤C++,灝介噺涓嶈璁﹍ua鐨勫啓娉曞お榪囦簬 錛?錛夎皟璇曪細lua鐨勮皟璇曟槸鏈澶х殑闂銆備粎鍑竴涓猯ua_error鎵鎶ラ敊鐨勪俊鎭槸瀹屽叏涓嶅鐨勩傝屼笖Xcode瀵逛簬lua鐨勮娉曢珮浜敮鎸佺殑涔熶笉濂姐傛垜浠姝?br /> 榪涜浜?鏂歸潰鐨勫皾璇?/p> 1.windows涓嬶紝鐢╠ecoda銆傜劧鍚庝篃鍙互鎵撴柇鐐廣?/p> 2.mac涓嬶紝鏆傛椂鐢‥clips鍔爈ua鎻掍歡榪涜鍐檒ua錛岀劧鍚庨氳繃log榪涜璋冭瘯銆備笉榪囨渶榪戞兂灝濊瘯Vim錛屽簲璇ヤ細姣斾箣鍓嶉潬璋便?/p> 涓?宸ュ叿灞傞潰 鍥?andrid鎵撳寘 鎵撳寘瀹屾垚浠ュ悗錛屽墿涓嬪氨鏄皟璇曘傝皟璇曠殑璇濅富瑕佸氨鏄疌++涓巎ava涔嬮棿鐨勯氳浜嗐傞偅灝辮澶氱湅鐪媕ni鐨勪竴浜涗笢瑗褲傜劧鍚庣湅cocos/platform/ 榪樻湁android 閲岄潰鐨勭被銆傞偅浜涙槸c++璺焜ava閫氳鐨勭被銆傛垜浠皟璇曚富瑕佸氨鍦ㄩ偅鎵搇og銆俲ni鐨勫師鐞嗘垜灝變笉璁蹭簡銆傘傚鐪嬬湅鎳備竴鐐瑰氨鍙互浜嗐傛瘯绔熷挶鍙槸涓轟簡鐪嬫噦錛屼細鐓х尗鐢昏檸 鍐欎竴鐐廣傛病蹇呰娣辯┒銆傚浜嗭紝android濂藉钁╋紝涓婄綉榪橀渶瑕佹潈闄愰厤緗紒錛侊紒鍦╩ainfest.xml閰嶇疆鏉冮檺銆傞潬錛屾悶浜嗗ソ涔呰繖涓棶棰樸?/p> 1銆佸湪鐢–ocos Code IDE寤虹珛鏂扮殑cocos2d-x欏圭洰鏃訛紝鏈濂介変腑 2銆佸鏋滀箣鍓嶅緩绔嬮」鐩椂娌℃湁鍕鵑?code>Add Native Codes錛屼篃鍙互闅忔椂閫氳繃鍙抽敭鑿滃崟-> 3銆佹湁浜?code>frameworks/runtime-src/Classes鐩綍錛屽氨鍙互鍘諱慨鏀?code>AppDelegate.cpp絳塁++鏂囦歡浜嗐傜畝鍗曚慨鏀逛竴涓嬶紝鎵撳嵃涓猯og鐪嬬湅錛?/p> 4銆丆++鏂囦歡淇敼濂戒簡錛岄渶瑕佺紪璇戞墠鑳戒嬌淇敼鐢熸晥錛屾渶綆鍗曠殑鍔炴硶鏄湪Cocos Code IDE涓氳繃鍙抽敭鑿滃崟-> 5銆佺紪璇戝畬鎴愬悗錛屾劅鍏磋叮鐨勮瘽灝辮兘鍦?code>runtime/mac鐩綍涓嬬湅鍒板浜嗕竴涓?code>CocosLuaGame.app紼嬪簭鍖咃紝榪欏氨鏄垰鍒氱紪璇戠敓鎴愮殑Mac紼嬪簭錛屼互鍚庢瘡嬈?code>frameworks鐩綍涓嬬殑C++鏂囦歡鏈変慨鏀歸兘闇瑕佸啀緙栬瘧涓嬈°?/p> $(call import-module,android/support) 濡傦細 銆銆浣嗘槸鍑績鑰岃錛?.0RC鐗堟湰寮濮?鐜鎼緩銆侀」鐩垱寤恒佺紪璇戠殑鏂瑰紡鏇村姞浜烘у寲浜嗐?/span> 銆銆鐜板湪鎴戜滑榪涘叆姝i錛屼竴姝ヤ竴姝ユ惌寤篶ocos2dx鐨勫紑鍙戠幆澧?/span> 銆銆 銆銆cocos2d-x寰堝tools閮芥槸闇瑕佷嬌鐢≒ython鐨勶紝鍥犳鎴戜滑闇瑕佸厛瀹夎Python鐜 銆銆 銆銆python涓嬭澆:鐐硅繖閲?/a> 銆銆銆銆榪欓噷闇瑕佷笅杞絇ython 2.X鐗堟湰銆傛浘緇忎互涓鴻涓嬭澆3.x鐗堟湰 鍚庢潵瑁呬笂鍙戠幇cocos2d-x鎻愪緵鐨刾ython榪愯鎶ラ敊錛屾墍浠ュ嵏杞戒互鍚庨噸鏂拌鐨刾ython2.X鐗堟湰 銆銆 銆銆python瀹夎鐨勬椂鍊欎嬌鐢ㄩ粯璁ゅ畨瑁呮柟寮忓嵆鍙紝浣嗘槸瀹夎瀹屾瘯鍚庢垜浠渶瑕侀厤緗幆澧冨彉閲?/span> 銆銆銆銆鍦ㄦ垜鐨勭數鑴戯紙鍙抽敭)->灞炴?>楂樼駭緋葷粺璁劇疆->楂樼駭 閫夐」鍗?>鐜鍙橀噺->緋葷粺鍙橀噺 涓壘鍒癙ath 鍙橀噺錛屽茍鍦ㄥ叾鍊間腑澧炲姞 鎸囧悜Python鐨勭幆澧冨彉閲忋傛牸寮忎負 [Python瀹夎璺緞]; 渚嬪鎴戝畨瑁呭湪C鐩?鎴戠殑鐜鍙橀噺灝辨柊澧炰負 C:\Python27; 銆銆銆銆閰嶇疆瀹屾瘯鍚庤寰楁敞閿鍐嶉噸鏂扮櫥闄嗙郴緇熺幆澧冨彉閲忔墠浼氱敓鏁?/span> 銆銆銆銆 銆銆涓嬩竴姝ワ紝鎴戜滑瑕佷笅杞芥渶鏂扮増鏈殑cocos2d-x錛屽埌鐩墠涓烘 cocos2d-x宸茬粡鏇存柊鍒?3.0rc2鐗堟湰 銆銆 銆銆cocos2d-x瀹樼綉: 鐐硅繖閲?/a> 銆銆 銆銆鍦ㄤ笅杞藉畬姣曞悗鎴戜滑瑙e帇緙╁埌紓佺洏涓婏紝騫舵墦寮cocos2d-x 鏂囦歡澶規(guī)壘鍒皊etup.py榪欎釜鏂囦歡錛岃繍琛岋紝浼氬嚭鐜版帶鍒跺彴濡備笅 銆銆 銆銆鐢變簬鐜板湪涓嶉厤緗瓵ndroid鐜錛屽洜姝ゅ彧闇瑕佷竴鐩村洖杞﹀嵆鍙紝榪欐椂鍊欒繖孌祊ython鑴氭湰浼氬府鍔╂垜浠緗甤ocos2d-x榪愯鎵闇瑕佺殑鐜鍙橀噺銆傜戶緇敞閿……閲嶆柊鐧婚檰…… 銆銆鍦ㄩ厤緗畬榪欎竴鍒囧悗 鎴戜滑鎵撳紑CMD 榪愯cocos鍛戒護錛?鏉ユ鏌ユ暣涓紑鍙戠幆澧冩槸鍚︽惌寤烘垚鍔燂紝2鏉ュ彲浠ョ啛鎮(zhèn)変笅鍛戒護琛岋紝濡傛灉璁劇疆娌¢棶棰樼殑鎯呭喌涓?浼氬嚭鐜板涓嬬晫闈?img src="http://images.cnitblog.com/i/340851/201404/221009223572717.jpg" alt="" /> 銆銆榪欓噷鎴戜滑鍙互鐪嬪埌cocos.py榪欐鑴氭湰鍙互鎵ц4涓懡浠わ紝姣忎釜鍛戒護鐨勪綔鐢ㄥ凡緇忚鏄庣殑寰堟竻妤氫簡銆?/span> 銆銆涓嬮潰錛屾垜浠潵浣跨敤new 鍛戒護鍒涘緩鎴戜滑鐨勯」鐩?/span> 銆銆 銆銆榪欓噷涓句釜鏍楀瓙錛屾瘮濡傛垜瑕佸垱寤轟竴涓彨simple鐨勯」鐩紝鎴戜滑鍙互榪欎箞鍐? cocos new -p com.game.simple -l cpp -d e:\ simple 綆鍗曞惂 榪愯榪欐潯鍛戒護浼氬湪E鐩樻牴鐩綍涓嬬敓鎴愪竴涓彨simple鐨勬枃浠跺す閲岄潰鏀劇潃鎴戜滑鐨勯」鐩?/span> 銆銆 銆銆榪欎釜鏃跺欐垜浠氨鍙互鐢╒S2012鎵撳紑proj.win32涓殑SLN欏圭洰鏂囦歡榪涜鎴戜滑鎰夊揩鐨勭紪鐮佸拰璋冭瘯宸ヤ綔浜嗐?/span> 銆銆濡傛灉鎴戜滑瑕佽繍琛屾垜浠垰鍒氱敱妯℃澘鐢熸垚鐨勯」鐩紝鎴戜滑闇瑕佺敤鍒癱ocos run 鍛戒護 鏍煎紡涓?cocos run -p [騫沖彴] 鏍楀:cocos run -p win32 琛ㄧずwin32騫沖彴 銆銆鎴戜滑鍦ㄦ墽琛岃繖鏉″懡浠ゆ椂鍊欓渶瑕佹敞鎰忎竴鐐?鎵ц鍛戒護鐨勭洰褰?蹇呴』鏄父鎴忛」鐩殑鏍圭洰褰?濡傛灉涓嶅湪鏍圭洰褰?闇瑕佷嬌鐢?-s鎸囧畾娓告垙鏍圭洰褰曠殑浣嶇疆 銆銆 銆銆鐜板湪鎴戜滑鍦╟md涓墽琛?cocos run -p win32 -s e:\simple 榪愯緇撴灉濡備笅 銆銆 銆銆濡傛灉鍦ㄧ紪璇戣繃紼嬩腑娌℃湁閿欒鐨勮瘽 緙栬瘧瀹屾垚浼氭墦寮榪欎釜HelloWorld鐨凞EMO 銆銆鑷蟲鍦╓IN32涓殑鐜鎼緩浠ュ強璋冭瘯鍙戝竷?yōu)鍏ㄩ儴OK浜?涓嬮潰鎴戜滑鏉ョ湅Android閮ㄥ垎銆?/span> 銆銆 銆銆Android鐨勭紪璇戠幆澧冨湪3.0RC閲屼篃鏈変簡寰堝ぇ鐨勬敼瑙傦紝閮ㄧ講鍜岀紪璇戞柟寮忔瘮涔嬪墠鏂逛究浜嗗緢澶氥傜幇鍦ㄦ垜浠潵鍋氫笅鍑嗗宸ヤ綔銆?/span> 銆銆Android緙栬瘧鐜闇瑕佺敤鍒癆ndorid_SDK Android_NDK Ant 涓嶫DK 銆銆Android_SDK涓嬭澆: 鐐硅繖閲?/a> 銆銆Android_NDK涓嬭澆: 鐐硅繖閲?/a> 銆銆Android_JDK涓嬭澆: 鐐硅繖閲?/a> 銆銆Ant涓嬭澆: 鐐硅繖閲?/a> 銆銆 銆銆鍏朵腑闄や簡JDK闇瑕佸畨瑁咃紝鍏跺畠鐨勬槸緇胯壊鐗?鐩存帴瑙e帇鍗沖彲 銆 鎴戜滑灝哠DK NDK 鍜孉NT瑙e帇緙╁埌鍚屼竴涓枃浠跺す涓?騫朵慨鏀箂dk鐨勬枃浠跺す鍚嶄負ADT錛孨DK鐨凬DK錛孉NT鐨勪負ANT 榪欐槸涓轟簡鏂逛究浠ュ悗浣跨敤銆?鎴戣В鍘嬪悗鏂囦歡閮芥斁鍦ㄤ簡e:\Android鏂囦歡澶逛笅 銆銆 銆銆 銆銆瑙e帇瀹屽悗鎴戜滑鍏堟潵閰嶇疆JDK 銆銆銆銆鍦↗DK瀹夎瀹屾瘯涔嬪悗錛岄渶瑕佹墜鍔ㄨ繘琛岀幆澧冨彉閲忕殑閰嶇疆 銆銆 銆銆 1錛夊湪緋葷粺鍙橀噺閲屾柊寤?span style="color: #339966;">JAVA_HOME鍙橀噺錛屽彉閲忓間負錛欳:\Program Files\Java\jdk1.6.0_14錛堟牴鎹嚜宸辯殑瀹夎璺緞濉啓錛?/span> 銆銆銆銆2錛夋柊寤?span style="color: #339966;">classpath鍙橀噺錛屽彉閲忓間負錛?;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 錛堟敞鎰忓墠闈㈢殑. 涓嶈蹇樿浜嗭級 銆銆銆銆3錛夊湪path鍙橀噺錛堝凡瀛樺湪涓嶇敤鏂板緩錛夋坊鍔犲彉閲忓鹼細%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin錛堟敞鎰忓彉閲忓間箣闂寸敤“;”闅斿紑錛?/span> 銆銆銆銆4銆侀噸鏂版敞閿緋葷粺騫墮噸鏂扮櫥闄嗗悗 “寮濮?#8221;-->“榪愯”-->杈撳叆“javac”-->"Enter"錛屽鏋滆兘姝e父鎵撳嵃鐢ㄦ硶璇存槑閰嶇疆鎴愬姛錛?/span> 銆銆銆銆琛ュ厖鐜鍙橀噺鐨勮В鏋? 銆銆銆銆銆銆JAVA_HOME:jdk鐨勫畨瑁呰礬寰?/span> 銆銆銆銆銆銆classpath:java鍔犺澆綾昏礬寰勶紝鍙湁綾誨湪classpath涓璲ava鍛戒護鎵嶈兘璇嗗埆錛屽湪璺緞鍓嶅姞浜嗕釜"."琛ㄧず褰撳墠璺緞銆?/span> 銆銆銆銆銆銆path錛氱郴緇熷湪浠諱綍璺緞涓嬮兘鍙互璇嗗埆java,javac鍛戒護銆?/span> 銆銆 銆 銆銆 銆 鐜板湪鎴戜滑鏉ラ厤緗瓵NT鐨勭幆澧冨彉閲忋傚皢[ANT鐩綍]\bin鏂囦歡澶規(guī)坊鍔犲埌path涓?nbsp; 濡傚浘 銆銆 銆銆鑷蟲鍑嗗宸ヤ綔灝卞仛瀹屼簡錛屼笅闈㈡垜浠繍琛宻etup.py鍏寵仈SDK NDK 鍜孉NT 銆銆 銆銆鍦ㄨ繖閲屾垜浠緭鍏ヤ簡ndk鍜宻dk鐨勮礬寰?鍏朵腑ndk鎸囧悜鏍圭洰褰曞嵆鍙?nbsp; 鑰宻dk闇瑕佹寚鍚慳dt涓殑sdk鐩綍 銆銆 銆銆鍦ㄧ敱setup.py娣誨姞浜嗚繖涓や釜鐜鍙橀噺涔嬪悗 浼氳姹傛垜浠緭鍏nt鐨勮礬寰?榪欓噷鎴戜滑闇瑕佹寚鍚慳nt涓殑bin鏂囦歡澶?濡備笅錛?/span> 銆銆 銆銆榪欐椂鍊?鍩烘湰鐜宸茬粡鎼緩瀹屾垚浜嗭紝璁板緱娉ㄩ攢閲嶆柊鐧婚檰浣跨幆澧冨彉閲忕敓鏁?/span> 銆銆 閲嶆柊榪愯setup.py紜涓嬫墍鏈夌殑閰嶇疆鏄惁姝g‘ 濡傛灉鍏ㄩ儴姝g‘ 濡傚浘鎵紺?/span> 銆銆 銆銆鐒跺悗鎴戜滑灝卞彲浠ュ湪欏圭洰鐩綍涓嬩嬌鐢?cocos compile -p android鏂瑰紡緙栬瘧APK鏂囦歡浜?/span> 銆銆 銆銆娉ㄦ剰錛氬湪鎵撳寘apk涔嬪墠闇瑕佷慨鏀筽roj.android/jni鏂囦歡澶逛笅鐨凙ndroid.mk鏂囦歡 娣誨姞鑷繁鏂板鐨凜PP鏂囦歡 銆銆鏈鍚庢垜浠潵鐪嬬湅緙栬瘧濂界殑APK鏂囦歡鍚э紝浣嶇疆鍦╗欏圭洰鏂囦歡澶筣\bin\debug\android\鏂囦歡澶逛笅 銆銆 鑷畾涔夎礬寰勫垱寤?/span>Cocos2d-x欏圭洰 鏈枃浠嬬粛windows涓嬮潰濡備綍浼橀泤鐨勫垱寤?/span>Cocos2d-x欏圭洰銆備負浣曠О涔嬩負浼橀泤錛屾槸鍥犱負鐜板湪緗戜笂嫻佷紶鐨勪竴浜涘垱寤烘柟娉曟湁涓浜涢棶棰樸傚ぇ鑷村唴瀹瑰涓嬶細 l 浣跨敤VS鍚戝鍒涘緩Cocos2d-x欏圭洰錛堝簾寮冿紝涓嶅緩璁嬌鐢級 l 浣跨敤create_project.py n 闂1錛氬伐紼嬪悕絳夋浛鎹笉瀹屽叏 n 闂2錛氬垱寤洪」鐩笉鑳芥寚瀹氳礬寰?/span> 鍦?/span>Cocos2d-x 2.1.3鍙婁箣鍓?/span>錛?/span>瀹樻柟浣跨敤“install-template-msvc.bat”鏂囦歡錛屽畨瑁?/span>VS鍒涘緩Cocos2d-x欏圭洰鍚戝錛岀劧鍚庡彲浠ユ寜鐓у悜瀵煎垱寤?/span>Cocos2d-x欏圭洰銆?/span>娉ㄦ剰錛?/span>榛樿鎯呭喌涓嬶紝鏂板緩欏圭洰鐨勫瓨鏀劇殑浣嶇疆搴旇璁劇疆鍦?/span>Cocos2d-x寮曟搸鐨勫畨瑁呯洰褰曚笅闈紝鍚﹀垯鍙兘鍥犱負鎵句笉鍒板簱鏂囦歡鑰屼笉鑳介氳繃緙栬瘧銆備笉榪囧彲浠ュ湪璁劇疆欏圭洰灞炴э紝澶存枃浠跺拰搴撴枃浠剁殑鎼滅儲璺緞鏉ヨВ鍐熾傚彲浠ュ弬鑰冩垜涔嬪墠鐨勪竴綃囧崥鏂囥?/span>C++闈欐佸簱涓庡姩鎬佸簱銆嬶紝閲岄潰浠嬬粛濡備綍璁劇疆vs欏圭洰灞炴т嬌鐢ㄩ潤鎬佸簱鍜屽姩鎬佸簱銆?/span> 鍦?/span>Cocos2d-x 2.1.4錛屽畼鏂瑰緩璁嬌鐢?#8220;create_project.py”鏉ュ垱寤?/span>Cocos2d-x欏圭洰錛屽茍灝嗗湪鐗堟湰搴熷純浜?/span>“install-template-msvc.bat”銆?/span> “We recommend you use multi-platform creating tools named create_project.py, which lies in tools/project-creator, to create a new project. This tool can create a project has the same folder structure as HelloCpp. Other tools such as create-android-project.sh will be removed in future. Note: VS template was deprecated in this release, please use 'tools/project-creator' instead.” ——鏉ヨ嚜瀹樼綉錛?/span>http://goo.gl/yVAjMr 鎴戝叆鎵?/span>Cocos2d-x鐨勬椂鍊欙紝鍒氬彂甯?/span>Cocos2d-x 2.1.4錛屽氨琚繖涓潙浜嗐?/span>Cocos2d-x 2.1.4搴熷純浜?/span>“install-template-msvc.bat”錛屼絾鏄笅杞藉帇緙╁寘閲岄潰鍙堟湁錛屽彲鎭剁殑鏄笉鑳界敤鐨勶紝鍚勭鎶ラ敊銆傚悓鏃剁綉涓婃祦浼犵殑灝辨槸浣跨敤榪欑鏂規(guī)硶錛岃鎴戠粫浜嗕笉灝戣礬銆?/span> create_project.py錛?/span>cocos2d-x/tools/project-creator/鐩綍涓嬶級浣跨敤鏂規(guī)硶姣旇緝綆鍗曪細 Usage: create_project.py -project PROJECT_NAME -package PACKAGE_NAME -language PROGRAMING_LANGUAGE Options: 銆?/span>-project PROJECT_NAME銆?/span>Project name, for example: MyGame 銆?/span>-package PACKAGE_NAME銆?/span>Package name, for example: com.MyCompany.MyAwesomeGame 銆?/span>-language PROGRAMING_LANGUAGE銆?/span>Major programing lanauge you want to used, should be [cpp | lua | javascript] Sample 1: ./create_project.py -project MyGame -package com.MyCompany.AwesomeGame Sample 2: ./create_project.py -project MyGame -package com.MyCompany.AwesomeGame –language javascript 娉ㄦ剰錛?/span> l 瀹樻柟寤鴻python浣跨敤2.7.3 l 瀹夎python涔嬪悗闇瑕佽緗幆澧冨彉閲忥紝鎴栬呬嬌鐢ㄨ鑴氭湰鏃舵寚瀹?/span>python璺緞錛屽C:\python27\python.exe create_project.py … 浣跨敤璇ユ柟娉曞垱寤洪」鐩箣鍚庯紝欏圭洰浣嶄簬cocos2d-x/projects鐩綍涓嬮潰銆?/span>windows騫沖彴榪涘叆proj.win32錛屾墦寮宸ョ▼鏂囦歡鍗沖彲銆?/span> 浣跨敤create_project.py鍒涘緩欏圭洰鐨勫師鐞嗭紝鍗崇畝鍗曞湴灝?/span>cocos2d-x\template鐩綍涓嬬殑涓夌璇█妯℃澘multi-platform-cpp銆?/span>multi-platform-lua銆?/span>multi-platform-js澶嶅埗鍒板搴旂殑鏂板緩宸ョ▼鐩綍涓嬶紝鐒跺悗鐢?/span>PROJECT_NAME銆?/span>PACKAGE_NAME鏇挎崲妯℃澘涓殑HelloCpp/ HelloLua/ HelloJavascript銆?/span> 涓嬮潰鏄垜鐢?/span>towergame鍋氫負宸ョ▼鍚嶅垱寤虹殑lua欏圭洰錛岀洰褰曞涓嬶細 铏界劧鍙互姝e父緙栬瘧錛屼絾鍙戠幇宸ョ▼鍚嶆湭鏇挎崲涓?/span>towergame錛岃繖姣旇緝鍧戠埞銆備竴浣嶆棩鏈紑鍙戣?/span>lettas宸茬粡鏈変漢鎻愪氦浜嗕慨澶嶈姹?/span>https://github.com/cocos2d/cocos2d-x/pull/3943錛屼笉榪囨寮忓彂甯冪殑鐗堟湰涓繕娌℃湁淇敼銆傛ョ潃鐢ㄥ彲浠ュ幓github checkout涓嬫潵鐢ㄣ?/span> 浣跨敤create_project.py涓嶈兘鑷畾涔夎礬寰勶紝蹇呴』鏀懼湪cocos2d-x/projects鐩綍涓嬮潰錛?strong>榪欎釜璁懼畾鎴戣涓洪潪甯鎬笉鍚堢悊錛佽繖鏍峰皢鑷繁鐨勯」鐩斁鍒?/span>cocos2d-x寮曟搸鐩綍涓紝涓嶆柟渚跨鐞嗭紝鍗沖簱涓庨」鐩﹀悎鍒頒竴璧蜂簡錛屽鏋?/span>cocos2d-x鍗囩駭涔熶笉鏂逛究銆?/span> 姣旇緝鍚堢悊鐨勬柟妗堟槸錛?/span> l cocos2d-x鐙珛瀹夎錛岃繖鏍峰cocos2d-x鍗囩駭涔熺浉瀵圭畝鍗曘?/span> l 鏂板緩cocos2d-x欏圭洰鐙珛浜?/span>cocos2d-x瀹夎璺緞銆傞氳繃璁劇疆鎼滅儲鎴栧紩鐢ㄨ礬寰勶紝璁╅」鐩兘澶熸壘鍒?/span>cocos2d-x瀹夎璺緞銆?/span> 騫歌繍鐨勬槸錛屽畬鍏ㄥ彲浠ュ仛鍒拌繖鏍楓傜啛鎮(zhèn)?/span>VS鐨勫悓瀛﹀簲璇ョ煡閬擄紝VS宸ョ▼璁劇疆鏄敮鎸?/span>鐜鍙橀噺鐨勩傞氳繃涓嬮潰鐨勪竴浜涙敼閫狅紝鍙互璁╂柊寤虹殑cocos2d-x欏圭洰鐙珛浜?/span>cocos2d-x寮曟搸鐩綍錛?/span> 1) 灝嗛氳繃create_project.py鍒涘緩鐨勯」鐩壀鍒囧埌浣犲笇鏈涙斁緗殑鐩綍錛?/span> 2) 鍒涘緩鐜鍙橀噺COCOS2DX_HOME錛屾寚鍚?/span>cocos2d-x瀹夎鐩綍錛?/span> 3) 灝?/span>*.sln鏂囦歡浣跨敤鏂囨湰鏂瑰紡鎵撳紑錛?strong>灝嗛噷闈㈢殑鎵鏈夌浉瀵硅礬寰?/strong>“..\..\..”閮芥浛鎹負鐜鍙橀噺%COCOS2DX_HOME%錛屽“..\..\..\cocos2dx\proj.win32\cocos2d.vcxproj”鏇挎崲涓?/span>“%COCOS2DX_HOME%\cocos2dx\proj.win32\cocos2d.vcxproj”錛?/span> 4) 灝?/span>*.vcxproj鏂囦歡浣跨敤鏂囨湰鏂瑰紡鎵撳紑錛屽皢閲岄潰debug銆?/span>release 2縐嶆ā寮忎笅<AdditionalIncludeDirectories>鑺傜偣瀹氫箟鐨勫紩鐢ㄨ礬寰勪腑鍖呭惈”$(ProjectDir)..\..\..\”閮芥浛鎹負鐜鍙橀噺“$(COCOS2DX_HOME)\”錛涙敞鎰忚繖閲屼嬌鐢ㄧ幆澧冨彉閲忕殑鏂瑰紡涓?/span>*.sln涓笉涓鏍鳳紝鏄?/span>$(COCOS2DX_HOME)鑰岄潪 鑷蟲錛屽ぇ宸ュ憡鎴愶紒鐪嬩笅闈㈢殑榪愯璧鋒潵鐨?/span>vs宸ョ▼錛?/span> 鍥句腑渚濊禆鐨勫伐紼嬭窡灝嗘柊寤虹殑欏圭洰鏀懼湪cocos2d-x/projects鐩綍涓嬮潰涓鏍峰彲浠ラ摼鎺ュ埌銆?/span> #!/usr/bin/python
protoc-gen-lua涓嬭澆鍦板潃: https://github.com/sean-lin/protoc-gen-lua
1/ 鍏堝埌protobuf鐨刾ython鐩綍涓嬫墽琛?br /> python setup.py build
python setup.py install
2/ 鍦╬rotoc-gen-lua鐨刾lugin鐩綍涓柊寤簆rotoc-gen-lua.bat, 鍐呭濡備笅:
@python 鐩綍\protoc-gen-lua\plugin\protoc-gen-lua
3/ 鐢╬rotoc鎶妏roto鏂囦歡鐢熸垚lua鏂囦歡
protoc --lua_out=./ --plugin=protoc-gen-lua="鐩綍\protoc-gen-lua.bat" test.proto
4/ 灝唒rotoc-gen-lua/protobuf涓嬬殑pb.c 鏀懼埌宸ョ▼鐨凜lasses涓? 騫跺姞鍏ュ埌c++宸ョ▼涓?br />
5/ 灝唒rotoc-gen-lua/protobuf涓婄殑鎵鏈塴ua鏂囦歡鏀懼埌宸ョ▼鐨剆rc鐩綍(lua鐩綍)涓?br />
6/ AppDelegate.cpp 娣誨姞浠g爜
extern "C"{
int luaopen_pb(lua_State* L);
}
鍦╝pplicationDidFinishLaunching()涓皟鐢?luaopen_pb(state);
---------------------------------------------------------------------------
local msg = person_pb.Person()
msg.id = 100
msg.name = "foo"
msg.email = "bar"
local pb_data = msg:SerializeToString() -- Parse Example
print("create:", msg.id, msg.name, msg.email, pb_data)
local msg = person_pb.Person()
msg:ParseFromString(pb_data)
print("parser:", msg.id, msg.name, msg.email, pb_data)
---------------------------------------------------------------------------
縐繪鍒癮ndroid 璁板緱灝唒b.c娣誨姞鍒皃roj.android\jni\Android.mk涓?br />
]]>protoc-gen-lua/plugin/ protoc-gen-lua/protobuf/export PATH={protoc-gen-lua DIR }/plugin:$PATH/quick-cocos2d-x/lib/cocos2d-x/scripting/lua/lua_extensions/./quick-cocos2d-x/lib/cocos2d-x/scripting/lua/lua_extensions/protobuf/pb.c./quick-cocos2d-x/lib/cocos2d-x/scripting/lua/lua_extensions/lua_extensions.c#include "lua_extensions.h" #if __cplusplus extern "C" { #endif // cjson #include "cjson/lua_cjson.h" // zlib #include "zlib/lua_zlib.h" // lpack #include "lpack/lpack.h" // socket #include "socket/luasocket.h" #include "socket/mime.h" #include "socket/socket_scripts.h" // filesystem #include "filesystem/lfs.h" // lsqlite3 #include "lsqlite3/lsqlite3.h" #include "protobuf/pb.c" //寮曠敤protobuf 搴撴枃浠?nbsp; static luaL_Reg luax_exts[] = { {"cjson", luaopen_cjson_safe}, {"zlib", luaopen_zlib}, {"pack", luaopen_pack}, {"socket.core", luaopen_socket_core}, {"mime.core", luaopen_mime_core}, {"lfs", luaopen_lfs}, {"lsqlite3", luaopen_lsqlite3}, {NULL, NULL} }; void luaopen_lua_extensions(lua_State *L) { // load extensions luaL_Reg* lib = luax_exts; lua_getglobal(L, "package"); lua_getfield(L, -1, "preload"); for (; lib->func; lib++) { lua_pushcfunction(L, lib->func); lua_setfield(L, -2, lib->name); } lua_pop(L, 2); // load extensions script luaopen_socket_scripts(L); luaopen_pb(L); //榪欐槸鍔犲叆鐨刾rotobuf 鎵╁睍娉ㄥ唽鍚?nbsp; } #if __cplusplus } // extern "C" #endif[PROJECT]/scripts/protobuf/*.luapackage.path = package.path .. ";./protobuf/?.lua;./scripts/protobuf/?.lua;"cd quick-cocos2d-x/player/proj.qtqmake ./quick-x.pro./quick-cocos2d-x/lib/cocos2d-x/scripting/lua/lua_extensions/protobuf/pb.c#include <endian.h>#include <machine/endian.h>
]]>void ArmatureNode::registerMovementEventHandler(int handler){ unregisterMovementEventHandler(); //縐婚櫎涔嬪墠娉ㄥ唽鐨勭洃鍚?/code> _movementHandler = handler; //緙撳瓨lua鍑芥暟鐨勫紩鐢?nbsp;榪欎釜鍚庤竟璇?/code> auto dispatcher = getCCEventDispatcher(); auto f = [this](cocos2d::EventCustom *event) //娉ㄥ唽c浠g爜褰㈠紡鐨勫洖璋?nbsp;榪欓噷鐢╢unction鍋?/code> { auto eventData = (dragonBones::EventData*)(event->getUserData()); auto type = (int) eventData->getType(); auto movementId = eventData->animationState->name; auto lastState = eventData->armature->getAnimation()->getLastAnimationState(); auto stack = cocos2d::LuaEngine::getInstance()->getLuaStack(); stack->pushObject(this, "db.ArmatureNode"); stack->pushInt(type); stack->pushString(movementId.c_str(), movementId.size()); //閫氳繃LuaStack璋冪敤lua閲岀殑鍑芥暟 鏈鍚庝竴涓弬鏁拌緗弬鏁頒釜鏁?/code> stack->executeFunctionByHandler(_movementHandler, 3); }; dispatcher->addCustomEventListener(dragonBones::EventData::COMPLETE, f);}void ArmatureNode::unregisterMovementEventHandler(void){ if (0 != _movementHandler) { cocos2d::LuaEngine::getInstance()->removeScriptHandler(_movementHandler); //縐婚櫎lua鍑芥暟鐨勭粦瀹?/code> _movementHandler = 0; }}int tolua_db_DBCCArmature_registerMovementEventHandler(lua_State* tolua_S){ if (NULL == tolua_S) return 0; int argc = 0; dragonBones::ArmatureNode* self = nullptr; self = static_cast<dragonBones::ArmatureNode*>(tolua_tousertype(tolua_S,1,0)); //絎竴涓弬鏁?nbsp;灝辨槸lua閲岀殑self argc = lua_gettop(tolua_S) - 1; if (1 == argc) { //絎簩涓弬鏁幫紝灝辨槸Lua閲岀殑function 榪欓噷瑕侀氳繃toluafix_ref_function榪欎釜鍑芥暟鏄犲皠鎴愪竴涓狪nt鍊?/code> int handler = (toluafix_ref_function(tolua_S,2,0)); self->registerMovementEventHandler(handler); return 0; } return 0;}int extends_ArmatureNode(lua_State* tolua_S){ lua_pushstring(tolua_S, "db.ArmatureNode");//涔嬪墠db.ArmatureNode鏄氳繃鑴氭湰緇戝畾鍦╨ua閲屻傝繖閲屽彧鍋氭墿灞?/code> lua_rawget(tolua_S, LUA_REGISTRYINDEX); if (lua_istable(tolua_S,-1)) { lua_pushstring(tolua_S,"registerMovementEventHandler"); lua_pushcfunction(tolua_S,tolua_db_DBCCArmature_registerMovementEventHandler); lua_rawset(tolua_S,-3); } lua_pop(tolua_S, 1); return 0;} local arm = db.ArmatureNode:create("Dragon") local animation = arm:getAnimation() animation:gotoAndPlay("walk") arm:registerMovementEventHandler( function(...) print(...) end )//TOLUA_API int toluafix_ref_function(lua_State* L, int lo, int def){ if (!lua_isfunction(L, lo)) return 0; s_function_ref_id++; //function_id 鍔? lua_pushstring(L, TOLUA_REFID_FUNCTION_MAPPING);//鍦ㄦ敞鍐岃〃涓婏紝瀛樻斁luafunction 鏄犲皠table 鐨刱ey鍘嬫爤 lua_rawget(L, LUA_REGISTRYINDEX); //鑾峰彇鏂規(guī)硶鏄犲皠琛紝鏀懼湪鏍堥《 lua_pushinteger(L, s_function_ref_id); //function_id鍘嬫爤 lua_pushvalue(L, lo); //lo鏈夋晥澶勭儲寮曞鏄痩ua鏂規(guī)硶錛宭ua鏂規(guī)硶鎷瘋礉錛屽帇鏍?/code> lua_rawset(L, -3); //鐢熸垚鏄犲皠 lua_pop(L, 1); return s_function_ref_id;}TOLUA_API void toluafix_get_function_by_refid(lua_State* L, int refid){ lua_pushstring(L, TOLUA_REFID_FUNCTION_MAPPING); //瀛樻斁luafunction 鏄犲皠table 鐨刱ey鍘嬫爤 lua_rawget(L, LUA_REGISTRYINDEX); //鑾峰彇鏂規(guī)硶鏄犲皠琛紝鏀懼湪鏍堥《 lua_pushinteger(L, refid); //function_id鍘嬫爤 lua_rawget(L, -2); //鑾峰彇鍒扮殑luafunction 鏀懼埌鏍堥《 lua_remove(L, -2); //}
]]>
浜?Lua灞傞潰
涓?宸ュ叿灞傞潰
鍥?android鎵撳寘
榪欎箞涓涓眰灝卞ソ
涓轟簡璁╂父鎴忔洿鏈夌伒媧繪э紝cocos鎻愪緵浜唋ua銆傜敱C++鍋氬紩鎿庯紝鐒跺悗lua鍘誨啓閫昏緫銆傝繖鏍峰氨鍙互緇曞紑鑻規(guī)灉鐨勫鏍搞傛垜浠氨璁ㄨ涓婥++涓巐ua紕板埌鐨勯棶棰樸?/p>
鐒跺悗鐢熸垚load鏂囦歡銆傚湪CCLuaEngine閲岃皟鐢ㄤ綘鐢熸垚鐨勯偅涓猯oad鏂規(guī)硶銆俵ua灝卞彲浠ヨ闂瓹++浜嗐傞渶瑕佽鏄庣殑鏄紝鎴戜滑榪欒竟灝介噺鏄痩ua璋冪敤C++鐨勬柟娉曪紝C++涓嶄細鍘昏皟鐢?br /> Lua鐨勬柟娉曘傝皟鐢ㄤ篃鏄氳繃callBack鍘昏皟鐢ㄣ?/p>
闂1.褰揅++閲岄潰鐨勫嚱鏁伴渶瑕佷紶閫抣ua鎸囬拡鏃訛細鍦–++閲岋紝lua鐨勫嚱鏁版寚閽堟槸涓涓猧nt鐨勫彉閲忋傜敓鎴愭椂鐢↙ua_Func鏉ヤ唬鏇褲傜劧鍚庣敓鎴愬悗鎵цcocos2dX婧愮爜
lua閮借鍔犲叆module錛屽彉鎴愭ā鍧楀寲錛屾彁楂樹唬鐮佺殑鍙鎬э紝鐒跺悗require鐨勬椂鍊欎竴瀹氳鍍廲ocos渚嬪瓙閭f牱錛屽啓鍏ㄨ礬寰勩備笉鐒舵墦鍖卆ndroid鐨勬椂鍊?br /> 灝辨?zhèn)插墽浜嗐?/p>
媧昏穬銆備笉鐒朵互鍚庤皟璇曠湡蹇冨ご澶с?/p>
宸ュ叿涓婏紝cocos鎻愪緵浜?cocosBuilder錛屾垜瑙夊緱浠栧睘浜庝竴涓泦鎴愮殑宸ュ叿銆傛兂瑕佽拷姹傚叏錛屽繀鐒朵笉綺俱傛墍浠ocosBuilder涓嶇鏄?br /> 鍦烘櫙緙栬緫錛岀晫闈㈢紪杈戯紝榪樻槸鍔ㄤ綔緙栬緫閮戒笉鏄緢濂界敤銆傛墍浠ユ垜浠噰鐢ㄧ殑絳栫暐鏄敤Flash鐨勯偅涓濂椼傜晫闈㈢紪杈戠敤FlexBuilder鐨勭晫闈㈢紪杈戯紝鐒跺悗
瀵煎嚭xml錛屽啓涓涓獂ml緲昏瘧綾伙紝鏍規(guī)嵁xml鍒涘緩闈㈡澘錛屽姩浣滅紪杈戠敤FlashPro銆傜劧鍚庣敤jsfl璇誨嚭flash淇℃伅錛屽鍑簒ml錛岀敤cocos鑷繁鐨刟ction鏈哄埗
鍘葷炕璇戯紝婕旂粠銆傚満鏅紪杈戠殑璇濓紝鎴戜滑鐨勬父鎴忓茍娌℃湁鐢ㄥ満鏅紪杈戠殑闇姹傦紝鎵浠ユ病鏈夎繘琛岀爺絀訛紝涓嶈繃titleMap鏄釜涓嶉敊鐨勯夋嫨
android鎵撳寘錛屽叾瀹為毦鐐瑰湪浜庤皟璇曘傚洜涓烘棤娉曟墦鏂偣銆傛湰鏉ua灝遍毦璋冭瘯錛岀粨鏋滆繕瑕佸姞涓奱ndroid銆傛墦鍖卆ndroid閭h竟灝辨槸澶氱湅鐪婲DK錛孞NI鐨?br /> 涓浜涜祫鏂欙紝鐒跺悗浜嗚Вmk鏂囦歡鎬庝箞涔﹀啓銆傜湅鐪媍ocos鎻愪緵鐨勯偅浜泂h鑴氭湰銆傛墦鍖呭ぇ閮ㄥ垎闂閮芥槸璺緞鐨勯棶棰樸傛牴鎹敊璇竴姝ユ鏉ワ紝鍒ワ紝鑲畾鑳芥墦涓娿?/p>
濂戒簡錛屾垜瀵逛簬cocos鐨勮瑙e氨榪欎箞浜涖傚彲鑳藉寘鍚簡cocos鎵鏈夌殑涓滆タ鍚с傞兘涓嶇粏錛屽彧鏄粰澶у褰撲竴涓秷閬f椂闂寸殑涓滆タ銆傛榪庡ぇ瀹朵竴璧瘋璁恒?br /> 鏈鍚庯紝鎰熻阿cocos2dX鐨勯偅浜涘ぇ鐗涗滑銆傛槸浣犱滑鐨勬棤縐佽鎴戜滑鎵嶆湁鏈轟細榪欎箞瀹規(guī)槗鎺ヨ繎娓告垙寮鍙戙傝阿璋綘浠?/div>Add Native Codes榪欎釜閫夐」錛屽彧鏈夐変腑浜嗗畠錛岄」鐩洰褰曢噷鎵嶄細鏈?strong>frameworks鐩綍錛岄噷闈㈡墠浼氭湁AppDelegate.cpp絳夐噸瑕佺殑C++綾伙紙紼嬪簭鐪熸鐨勫叆鍙o級銆傚鏋滀笉鍕鵑夎繖涓紝鍒機ocos Code IDE浣跨敤鐨勬槸榛樿緙栬瘧濂界殑PrebuiltRuntimeLua.app紼嬪簭錛屾棩鍚庡鏋滆鏇存敼C++閮ㄥ垎鐨勭▼搴忛昏緫錛岃繕鏄渶瑕?code>frameworks鐩綍涓殑婧愪唬鐮佹墠琛岋紝鎵浠ュ緩璁瓹ocos Code IDE搴旇鎶?code>Add Native Codes榪欎釜閫夐」榛樿涓洪変腑鐘舵佹墠瀵廣?/p> Cocos Tools->Add Native Codes Support緇欒ˉ鍥炴潵銆?/p> Cocos Tools->Build Custom Runtimes錛岄変腑Build Mac Runtime鍗沖彲銆?/p>
]]>
http://cn.cocos2d-x.org/
鐜板湪涓繪祦c++ + lua寮鍙? 涓昏鏄痩ua鏇存柊鐨勪紭鍔?br />
鏂板緩lua欏圭洰
鎸囧畾鐢╮untime妯℃澘
cocos new -p com.game.zc -l lua -t runtime -d e:/project helloLua
浣跨敤default妯℃澘
鐢–ocos Code IDE 鍒涘緩lua宸ョ▼
code ide 鐢ㄧ殑鏄痳untime妯℃澘, 鍒涘緩宸ョ▼鏃惰寰楅変腑"娣誨姞C++浠g爜", 榪欐牱浼氬湪宸ョ▼鐩綍涓嬬敓鎴恌rameworks鏂囦歡澶癸紝閲岄潰鏄痗++灞傜殑浠g爜
Lua 璋冪敤鑷畾涔塩++綾?br />
鍦ㄧЩ妞峚ndroid鏃訛紝闇瑕佷慨鏀筬rameworks\cocos2d-x\cocos\scripting\lua-bindings\Android.mk鏂囦歡
灝嗚嚜瀹氫箟鐨刢++綾繪枃浠舵坊鍔犲埌LOCAL_SRC_FILES, 鏂囦歡鎵鍦ㄧ洰褰曟坊鍔犲埌LOCAL_C_INCLUDES
濡傛灉鏄敤Cocos Code IDE寮鍙?
c++鏂囦歡淇敼鍚?闇瑕佸湪Cocos Code IDE 閲屾墽琛屽涓嬫搷浣滄墠鑳界敓鏁? 欏圭洰鍙沖嚮-->cocos 宸ュ叿-->鏋勫緩鑷畾涔塕untime
鍏充簬縐繪,
1/ 鍙厛鐢╟ocos compile -p android 緙栬瘧欏圭洰錛屾墦鍖呮椂鍐嶇敤eclipse鏉ユ墦鍖?br />2/ 浣跨敤Cocos Code IDE 寰堟柟渚? 欏圭洰鍙沖嚮-->cocos 宸ュ叿-->涓篈ndroid鎵撳寘apk
----閬囧埌鐨勯敊璇?-----------------------------
http://www.cocoachina.com/bbs/read.php?tid=234772
]]>
閿欒濡備笅銆傘傘備絾鏄嬌鐢╡clipse鐢熸垚apk鍖呮椂涓嶆敹褰卞搷銆傘?br />
-dex:
[dex] input: E:\cocos\Mine\frameworks\runtime-src\proj.android\bin\classes
[dex] input: E:\cocos\Mine\frameworks\js-bindings\cocos2d-x\cocos\platform\android\java\bin\classes.jar
[dex] Pre-Dexing E:\cocos\Mine\frameworks\js-bindings\cocos2d-x\cocos\platform\android\java\bin\classes.jar -> classes-022efb48739f8be18b60e7464733537d.jar
[dex] Converting compiled files and external libraries into E:\cocos\Mine\frameworks\runtime-src\proj.android\bin\classes.dex...
[dx]
[dx] UNEXPECTED TOP-LEVEL EXCEPTION:
[dx]com.android.dx.util.DexException: Multiple dex files define Lorg/cocos2dx/lib/Cocos2dxAccelerometer;
[dx] at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:592)
[dx] at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:550)
[dx] at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:531)
[dx] at com.android.dx.merge.DexMerger.mergeDexBuffers(DexMerger.java:168)
[dx] at com.android.dx.merge.DexMerger.merge(DexMerger.java:186)
[dx] at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:300)
[dx] at com.android.dx.command.dexer.Main.run(Main.java:232)
[dx] at com.android.dx.command.dexer.Main.main(Main.java:174)
[dx] at com.android.dx.command.Main.main(Main.java:91)
[dx]
BUILD FAILED
E:\BST\adt-bundle-windows-x86-20130917\sdk\tools\ant\build.xml:892: The following error occurred while executing this line:
E:\BST\adt-bundle-windows-x86-20130917\sdk\tools\ant\build.xml:894: The following error occurred while executing this line:
E:\BST\adt-bundle-windows-x86-20130917\sdk\tools\ant\build.xml:906: The following error occurred while executing this line:
E:\BST\adt-bundle-windows-x86-20130917\sdk\tools\ant\build.xml:284: null returned: 2
鏌ヨ祫鏂欏彂鐜幫紝鍙戠幇錛?br />cocos compile 鐨勮剼鏈噷浼氳嚜鍔ㄦ妸“frameworks\js-bindings\cocos2d-x\cocos\platform\android\java\bin\classes.jar”錛?dx鐨刯ava浠g爜錛夋坊鍔犲埌classes.dex涓?br />鑰屽綋鐢╡clipse鎵撳紑android欏圭洰鏃訛紝榛樿鏄病鏈夊紩鍏?dx鐨刯ava綾葷殑錛屾鏃跺鏋滄兂姝e父榪愯android欏圭洰錛岄渶瑕佸紩鍏?dx鐨刯ar鍖咃紝鎴栬呭紩鍏?dx鐨刯ava婧愮爜銆?br />濡?鏋滃紩鍏ava鐨勬簮鐮侊紝褰撳啀嬈℃墽琛?#8220;cocos compile”鏃訛紝2dx鐨刯ava婧愮爜鐢熸垚鐨刢lass鏂囦歡錛屼細璺熼粯璁ゅ紩鍏ョ殑“frameworks\js-bindings\cocos2d-x \cocos\platform\android\java\bin\classes.jar”鍙戠敓鍐茬獊錛屼細鎶?“com.android.dx.util.DexException: Multiple dex files define ……”鐨勯敊璇紱
濡?鏋滀笉寮曞叆java婧愮爜錛岃屾槸鐩存帴鍦?#8220;Build path”涓紩鍏ヤ簡jar鍖咃紙浣嶄簬寮曟搸鐨勶細frameworks\js-bindings\cocos2d-x\cocos\platform \android\java\bin\涓嬬殑classes.jar錛夛紝姝ゆ椂android鐨勯」鐩笉鎶ラ敊浜嗭紝浣嗘槸鐩存帴浣跨敤eclipse鐢熸垚apk鍖呮椂浼氬彂 鐜板畨瑁呭埌鎵嬫満涓婃棤娉曡繍琛岋紝榪欐槸鍥犱負欏圭洰闇瑕佺殑2dx鏂囦歡娌℃湁琚墦鍏ュ埌apk涓傛鏃訛紝鍙互灝嗗搴旂殑jar鍖呮斁鍒癮ndroid欏圭洰鐨刲ibs鐩綍閲?錛坒rameworks\runtime-src\proj.android\libs\錛夛紝榪欐牱鐢熸垚鐨刟pk鍖呭氨鍙互姝e父榪愯浜嗐?br />浣嗘槸錛屽鏋滆繖鏍峰仛浜嗭紝鍐嶆鎵ц“cocos compile”鏃訛紝鍙戠幇榪樹細鎶ュ涓婄殑閿欒錛岃繖鏄洜涓鴻剼鏈噷浼氶粯璁ゅ皢libs鐩綍閲岀殑鏂囦歡娣誨姞鍒癱lasses.dex涓?br />
緇間笂鎵榪幫細
鍑虹幇濡備笂閿欒鐨勫師鍥犳槸鍦ㄤ嬌鐢?#8220;cocos compile”鑴氭湰鏃訛紝2dx鏂囦歡琚噸澶嶆坊鍔犱簡銆?br />涓嶈繃錛屽鏋滃儚鎴戣繖鏍鋒搷浣滐紝浣跨敤“cocos compile”緙栬瘧鑴氭湰錛堜富瑕佹槸鍥犱負璇ヨ剼鏈細灝唈s鏂囦歡鍜岃祫婧愭嫹璐濈殑android欏圭洰閲岋級錛屼嬌鐢╡clipse灝哸ndroid欏圭洰鎵撳寘鎴恆pk錛屽彲浠ュ拷鐣ュ涓婇棶棰樼殑錛涙劅瑙夊緢涓嶇埥銆傘傘傘?
-------------瑙e喅鏂規(guī)硶
]]>
濡?鏋滀綘榪樹笉浼氱Щ妞峚ndroid騫沖彴錛岃鍏堢湅鎴戜笂涓綃囩殑鍗氬錛屽厛鎹釜鍏朵粬鐨勪笉鍖呭惈iconv搴撶殑宸ョ▼錛岀Щ妞嶆垚鍔熶簡鍐嶆潵鍋氫粖澶╃殑浜嬫儏銆備粖澶╂垜浠笉闇瑕佸噯澶囦換浣?宸ュ叿錛岄渶瑕佸仛鐨勫氨鏄悊瑙?mk鏂囦歡鐨勫惈涔夛紝鐭ラ亾鎬庝箞鏀廣傛垜浠厛鏉ョ湅涓涓嬫垜瀛椾綋鍜屽瓧絎︾紪鐮佽繖綃囧崥瀹BKToUTF8鐨勫ご鏂囦歡鏄庝箞鍖呭惈iconv搴撶殑銆?br />#if(CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)#include "iconv\iconv.h"#else#include "../../../../libiconv/include/iconv.h"#endif
濡傛灉鏄痺in32騫沖彴鐨勮瘽灝辯敤寮曟搸閲岃竟鐨勭涓夋柟搴擄紝榪欎釜iconv搴撴墍鍦ㄧ殑璺緞鏄細
E:\cocos2d-x-2.2\cocos2d-x-2.2\cocos2dx\platform\third_party\win32\iconv銆備絾濡傛灉鏄Щ妞嶅埌android騫沖彴鐨勪綘闇瑕佸姞涓婁綘android騫沖彴鐨勫簱鐨勮礬寰勶紝涔熷氨鏄浣犻渶瑕佸厛涓嬭澆濂絠conv鐨勫簱錛屾斁鍒頒竴涓綘鐨勮礬寰勶紝榪欓噷鎴戞斁鍒扮殑鏄垜寮曟搸鐨勬牴鐩綍涓嬶紝鎵浠ュ啓鐨勫氨鏄笂杈圭殑浠g爜錛屽ぇ瀹朵笅鍘諱笅杞借繖涓簱錛岀劧鍚庢寜鎴戣鐨勬敼浜嗕唬鐮併傜劧鍚庢垜浠氨鏉ョ湅鐪嬭繖涓?mk鏂囦歡鏀規(guī)庝箞鏀癸紝鎴戜滑瑕佷慨鏀圭殑鏄痡ni鐩綍涓嬬殑.mk鏂囦歡錛屾垜鍏堟埅涓婂嚑寮犲浘鐗囷紝璇磋閲岃竟浠g爜鐨勫惈涔夈?br />
涓婅竟鐨勮繖寮犲浘鐗囩綉涓婃湁涓嶅皯鐨勬暀紼嬮兘璇撮渶瑕佷慨鏀癸紝浣嗗湪鎴戠湅鏉ユ牴鏈笉鏄紝鍥犱負褰撴垜鍦ㄨ繖閲屽姞浜唅conv.h鐨勮礬寰勪互鍚庣紪璇戠殑鏃跺欎換鐒舵姤閿欙紝璇存壘涓嶅埌iconv.h榪欎釜鏂囦歡銆傛墍浠ヤ互鍚庡ぇ瀹朵篃涓嶈鏀硅繖閲岋紝娌$敤鐨勩?br />

涓?杈圭殑絎竴寮犲浘鐗囩湅鍒頒簡鍒掔嚎鐨勫湴鏂逛簡鍚楋紵榪欎釜鏄垜鍔犱笂鍘葷殑錛屼綘闇瑕佹敼鍚楋紵絳旀鏄渶瑕佺殑錛屼絾鏄悕瀛楀彲浠ュ拰鎴戜笉涓鏍鳳紝閭e悕瀛楁敼鎴愪粈涔堟牱鐨勫憿錛岃繖寰楃湅鍙︿竴涓枃浠?浜嗭紝鎴戜滑絳夌瓑鍐嶈銆備笂闈㈢殑絎簩寮犲浘鐗囬偅涓垝綰跨殑鍦版柟涔熸槸鎴戝姞涓婂幓鐨勶紝浣犱篃闇瑕佷慨鏀癸紝鏀規(guī)垚浠涔堜篃闇瑕佺湅鍙︿竴涓枃浠躲傚ソ浜嗙幇鍦ㄦ垜浠氨鏉ヨ鍒板簳鐪嬪摢涓枃浠躲?strong>榪欎釜鏂囦歡灝辨槸浣犱笅杞界殑iconv搴撶殑鏍圭洰褰曚笅鐨凙ndroid.mk鏂囦歡錛屾垜鍐嶆潵鎴紶鍥俱?br />
榪欎釜鏄枃浠朵腑鐨勪咯鍙ヨ瘽錛屼綘瑕佸拰涓婅竟鎴戣鐨勬敼鐨勯偅淇╀釜鍦版柟瀵圭収璧鋒潵鏀廣傚ソ浜嗗叾瀹炲氨鏄繖涔堢畝鍗曪紝Android.mk鏂囦歡鍙渶瑕佸鐓х殑鏀逛笂淇╀釜鍦版柟灝卞彲浠ヤ簡錛岀▼搴忎腑鐨勯偅涓ご鏂囦歡鍖呭惈涔熻淇敼銆?/strong>鐜板湪鎴戜滑灝辨潵瀵煎叆鍒板伐紼嬩腑鏋勫緩涓涓嬪伐紼嬪惂銆傚湪鏋勫緩鐨勬椂鍊欎篃浼氬嚭鐜頒竴涓棶棰橈紝鎴戞兂榪欎釜闂鐨勫師鍥犲彲鑳芥槸鍥犱負iconv搴撻噷杈瑰疄鐜扮殑鍑芥暟涓嶄竴鏍峰惂錛屽嚭鐜扮殑閿欒鐨勮鍙ユ槸榪欏彞錛?br />-1 == iconv(iconvH, pin, &strLength, &outbuf, &outLength)
鎴戜滑闇瑕佸仛濡備笅鐨勪慨鏀癸紝灝辨槸鍦╬in鐨勫墠杈瑰姞涓己杞紝鍥犱負Android涓嬪嚱鏁伴渶瑕佷紶鍏ョ殑鍙傛暟鏄痗har**錛岃屾垜浠▼搴忎腑鐨刾in鏄痗onst char **綾誨瀷鐨勩?br />-1 == iconv(iconvH, (char **)pin, &strLength, &outbuf, &outLength)
鏈変簡浠ヤ笂鐨勮繖浜涙搷浣滈棶棰樺氨瑙e喅浜嗭紝榪欓噷鎻愰啋涓涓嬪ぇ瀹訛紝鍦╡clipse涓瀯寤哄伐紼嬬殑鏃跺欏鏋滃彲浠ョ紪璇戦氳繃浜嗭紝浣嗘槸宸ョ▼涓湁閿欒鎻愮ず錛堝叾瀹炴槸娌℃湁閿欒鐨勶紝涔熶笉鐭ラ亾榪欎釜eclipse鏄庝箞鍥炰簨錛夛紝澶у灝遍噸鏂板鍏ュ伐紼嬩竴閬嶏紝闂灝辮В鍐充簡錛岃繕鏈変粈涔堥棶棰樺氨緇欐垜鐣欒█鍚с?br />鏈笘鏈夊皬濉斿師鍒涳紝杞澆璇鋒敞鏄庡嚭澶勶紒
android 涓嬫坊鍔爄conv鏀寔
NDK鑷甫鐨刬conv鐨?鏌ョ湅 android-ndk-r9d/sources/android/support/include/iconv.h
鍦ˋndroid.mk涓姞鍏?/span>
LOCAL_WHOLE_STATIC_LIBRARIES += android_support
include $(CLEAR_VARS)
LOCAL_MODULE := mylib
LOCAL_SRC_FILES := mylib.cpp
LOCAL_WHOLE_STATIC_LIBRARIES += android_support
LOCAL_CXXFLAGS += -std=c++11 -fexceptions
include $(BUILD_SHARED_LIBRARY)
$(call import-module, android/support)
]]>
]]>





Android錛?/strong>





]]>
緙栬瘧so鏂囦歡
cocos compile -p android
]]>
2. ndk: r9鐗堟湰浠ヤ笂, 鏃犻渶瀹夎cygwin錛屾柊鐗堟湰ndk涓嶅啀渚濊禆璇ョ紪璇戠幆澧?br />3. cocos2d-x-2.2.2
4. jdk
浜?nbsp; 瀹夎
1 瀹夎jdk錛岄厤緗甹ava鐜
JAVA_HOME錛欴:\Andorid\Java\jdk1.7.0_25錛堝畨瑁呰礬寰勶級
CLASSPATH錛?;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
Path錛?JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
榪愯 java -version
javac
媯嫻嬫槸鍚﹀畨瑁呮垚鍔?br />
2 瑙e帇cocos2dx, 瀹夎cocos2dx, cmd鍒癱ocos2dx鐩綍涓嬶紝榪愯build-win32.bat
3 閰嶇疆 eclipse
鎵撳紑eclipse錛岀偣鍑粀indow->perfernces->Android錛?br /> 鍦⊿DK Location涓~涓婂垰鍒氫笅鐨刟dt-bundle瑙e帇鍚庣殑D:\Andorid\adt\sdk
window->perfernces->Android->NDK涓~ndk璺緞 D:\Andorid\android-ndk-r9錛堣嚜宸辯殑瑙e帇璺緞錛?br />
瀵煎叆android欏圭洰
欏圭洰灞炴?>c/c++ build->Builder Settings->Bild command:濉啓ndk璺緞\ndk-build.cmd
欏圭洰灞炴?>c/c++ build->Environment 娣誨姞鍙橀噺 NDK_MODULE_PATH cocos2dx鐩綍;cocos2dx鐩綍\cocos2dx\platform\third_party\android\prebuilt
]]>
寰堝紼嬪簭鍛樺凡緇忓共浜嗕竴孌墊椂闂磈ava浜嗕緷鐒朵笉鏄庣櫧jdk涓巎re鐨勫尯鍒?br />JDK灝辨槸Java Development Kit.綆鍗曠殑璇碕DK鏄潰鍚戝紑鍙戜漢鍛樹嬌鐢ㄧ殑SDK錛屽畠鎻愪緵浜咼ava鐨勫紑鍙戠幆澧冨拰榪愯鐜銆係DK鏄疭oftware Development Kit 涓鑸寚杞歡寮鍙戝寘錛屽彲浠ュ寘鎷嚱鏁板簱銆佺紪璇戠▼搴忕瓑銆?br />JRE鏄疛ava Runtime Enviroment鏄寚Java鐨勮繍琛岀幆澧冿紝鏄潰鍚慗ava紼嬪簭鐨勪嬌鐢ㄨ咃紝鑰屼笉鏄紑鍙戣呫?br />濡?鏋滃畨瑁呬簡JDK錛屼細鍙戝悓浣犵殑鐢佃剳鏈変袱濂桱RE錛屼竴濂椾綅浜?\jre 鍙﹀涓濂椾綅浜?C:\Program Files\Java\jre1.5.0_15 鐩綍涓嬶紝鍚庨潰榪欏姣斿墠闈㈤偅濂楀皯浜哠erver绔殑Java铏氭嫙鏈猴紝涓嶈繃鐩存帴灝嗗墠闈㈤偅濂楃殑Server绔疛ava铏氭嫙鏈哄鍒惰繃鏉ュ氨琛屼簡銆傝屼笖鍦ㄥ畨瑁匤DK鍙?浠ラ夋嫨鏄惁瀹夎榪欎釜浣嶄簬 C:\Program Files\Java 鐩綍涓嬬殑JRE銆傚鏋滀綘鍙畨瑁匤RE錛岃屼笉鏄疛DK錛岄偅涔堝彧浼氬湪 C:\Program Files\Java 鐩綍涓嬪畨瑁呭敮涓鐨勪竴濂桱RE銆?br />JRE鐨勫湴浣嶅氨璞′竴鍙癙C鏈轟竴鏍鳳紝鎴戜滑鍐欏ソ鐨刉in32搴旂敤紼嬪簭闇瑕?鎿嶄綔緋葷粺甯垜浠繍琛岋紝鍚屾牱鐨勶紝鎴戜滑緙栧啓鐨凧ava紼嬪簭涔熷繀欏昏JRE鎵嶈兘榪愯銆傛墍浠ュ綋浣犺瀹孞DK鍚庯紝濡傛灉鍒嗗埆鍦ㄧ‖鐩樹笂鐨勪袱涓笉鍚屽湴鏂瑰畨瑁呬簡涓ゅJRE錛?閭d箞浣犲彲浠ユ兂璞′綘鐨勭數鑴戞湁涓ゅ彴铏氭嫙鐨凧ava PC鏈猴紝閮藉叿鏈夎繍琛孞ava紼嬪簭鐨勫姛鑳姐傛墍浠ユ垜浠彲浠ヨ錛屽彧瑕佷綘鐨勭數鑴戝畨瑁呬簡JRE錛屽氨鍙互姝g‘榪愯Java搴旂敤紼嬪簭銆?br />1銆佷負浠涔圫un瑕佽JDK瀹夎涓ゅ鐩稿悓鐨凧RE錛?br />榪?鏄洜涓篔DK閲岄潰鏈夊緢澶氱敤Java鎵緙栧啓鐨勫紑鍙戝伐鍏鳳紙濡俲avac.exe銆乯ar.exe絳夛級錛岃屼笖閮芥斁緗湪 \lib\tools.jar 閲屻備粠涓嬮潰渚嬪瓙鍙互鐪嬪嚭錛屽厛灝唗ools.jar鏀瑰悕涓簍ools1.jar錛岀劧鍚庤繍琛宩avac.exe錛屾樉紺哄涓嬬粨鏋滐細 Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/javac /Main 榪欎釜鎰忔濇槸璇達紝浣犺緭鍏avac.exe涓庤緭鍏?java -cp c:\jdk\lib\tools.jar com.sun.tools.javac.Main 鏄竴鏍風殑錛屼細寰楀埌鐩稿悓鐨勭粨鏋溿備粠榪欓噷鎴戜滑鍙互璇佹槑javac.exe鍙槸涓涓寘瑁呭櫒錛圵rapper錛夛紝鑰屽埗浣滅殑鐩殑鏄負浜嗚寮鍙戣呭厤浜庤緭鍏ュお闀跨殑鎸囧懡銆?鑰屼笖鍙互鍙戠幇\lib鐩綍涓嬬殑紼嬪簭閮藉緢灝忥紝涓嶅ぇ浜? 9K錛屼粠榪欓噷鎴戜滑鍙互寰楀嚭涓涓粨璁恒傚氨鏄疛DK閲岀殑宸ュ叿鍑犱箮鏄敤Java鎵緙栧啓錛屾墍浠ヤ篃鏄疛ava搴旂敤紼嬪簭錛屽洜姝よ浣跨敤JDK鎵闄勭殑宸ュ叿鏉ュ紑鍙慗ava紼?搴忥紝涔熷繀欏昏鑷闄勪竴濂桱RE鎵嶈錛屾墍浠ヤ綅浜嶤:\Program Files\Java鐩綍涓嬬殑閭eJRE灝辨槸鐢ㄦ潵榪愯涓鑸琂ava紼嬪簭鐢ㄧ殑銆?br />2銆佸鏋滀竴鍙扮數鑴戝畨瑁呬袱濂椾互涓婄殑JRE錛岃皝鏉ュ喅瀹氬憿錛?br />榪?涓噸澶т換鍔″氨钀藉湪java.exe韜笂銆侸ava.exe鐨勫伐浣滃氨鏄壘鍒板悎閫傜殑JRE鏉ヨ繍琛孞ava紼嬪簭銆? Java.exe渚濈収搴曚笅鐨勯『搴忔潵鏌ユ壘JRE錛氳嚜宸辯殑鐩綍涓嬫湁娌℃湁JRE錛涚埗鐩綍鏈夋病鏈塉RE錛涙煡璇㈡敞鍐岃〃錛? [HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment] 鎵浠ava.exe鐨勮繍琛岀粨鏋滀笌浣犵殑鐢佃剳閲岄潰鍝釜JRE琚墽琛屾湁寰堝ぇ鐨勫叧緋匯?br />
ADD錛氾紙灝忓皬緇擄級
1.JVM -- java virtual machineJVM灝辨槸鎴戜滑甯歌鐨刯ava铏氭嫙鏈猴紝瀹冩槸鏁翠釜java瀹炵幇璺ㄥ鉤鍙扮殑鏈鏍稿績鐨勯儴鍒嗭紝鎵鏈夌殑java紼嬪簭浼氶鍏堣緙栬瘧涓?class鐨勭被鏂?浠訛紝榪欑綾繪枃浠跺彲浠ュ湪铏氭嫙鏈轟笂鎵ц錛屼篃灝辨槸璇碿lass騫朵笉鐩存帴涓庢満鍣ㄧ殑鎿嶄綔緋葷粺鐩稿搴旓紝鑰屾槸緇忚繃铏氭嫙鏈洪棿鎺ヤ笌鎿嶄綔緋葷粺浜や簰錛岀敱铏氭嫙鏈哄皢紼嬪簭瑙i噴緇欐湰鍦扮郴 緇熸墽琛屻?.JRE -- java runtime environmentJRE鏄寚java榪愯鐜銆傚厜鏈塉VM榪樹笉鑳芥垚class鐨勬墽琛岋紝鍥犱負鍦ㄨВ閲奵lass鐨勬椂鍊橨VM闇瑕佽皟鐢ㄨВ閲婃墍闇瑕佺殑綾誨簱 lib銆傚湪JDK鐨勫畨瑁呯洰褰曢噷浣犲彲浠ユ壘鍒癹re鐩綍錛岄噷闈㈡湁涓や釜鏂囦歡澶筨in鍜宭ib,鍦ㄨ繖閲屽彲浠ヨ涓篵in閲岀殑灝辨槸jvm錛宭ib涓垯鏄痡vm宸ヤ綔鎵闇 瑕佺殑綾誨簱錛岃宩vm鍜? lib鍜岃搗鏉ュ氨縐頒負jre銆傛墍浠ワ紝鍦ㄤ綘鍐欏畬java紼嬪簭緙栬瘧鎴?class涔嬪悗錛屼綘鍙互鎶婅繖涓?class鏂囦歡鍜宩re涓璧鋒墦鍖呭彂緇欐湅鍙嬶紝榪欐牱浣犵殑鏈嬪弸灝?鍙互榪愯浣犲啓紼嬪簭浜嗐傦紙jre閲屾湁榪愯.class鐨刯ava.exe錛?.JDK -- java development kitJDK鏄痡ava寮鍙戝伐鍏峰寘錛屽熀鏈笂姣忎釜瀛ava鐨勪漢閮戒細鍏堝湪鏈哄櫒涓婅涓涓狫DK錛岄偅浠栭兘鍖呭惈鍝嚑閮ㄥ垎鍛紵璁╂垜浠湅涓涓婮DK鐨勫畨瑁呯洰褰曘傚湪鐩綍 涓嬮潰鏈夊叚涓枃浠跺す銆佷竴涓猻rc綾誨簱婧愮爜鍘嬬緝鍖呫佸拰鍏朵粬鍑犱釜澹版槑鏂囦歡銆傚叾涓紝鐪熸鍦ㄨ繍琛宩ava鏃惰搗浣滅敤鐨勬槸浠ヤ笅鍥涗釜鏂囦歡澶癸細bin銆乮nclude銆?lib銆? jre銆傜幇鍦ㄦ垜浠彲浠ョ湅鍑鴻繖鏍蜂竴涓叧緋伙紝JDK鍖呭惈JRE錛岃孞RE鍖呭惈JVM銆俠in:鏈涓昏鐨勬槸緙栬瘧鍣?(javac.exe)include:java鍜孞VM浜や簰鐢ㄧ殑澶存枃浠秎ib錛氱被搴搄re:java榪愯鐜錛堟敞鎰忥細榪欓噷鐨刡in銆乴ib鏂囦歡澶瑰拰 jre閲岀殑bin銆乴ib鏄笉鍚岀殑錛夋葷殑鏉ヨJDK鏄敤浜巎ava紼嬪簭鐨勫紑鍙?鑰宩re鍒欐槸鍙兘榪愯class鑰屾病鏈夌紪璇戠殑鍔熻兘銆?br />eclipse銆乮dea絳夊叾浠朓DE鏈夎嚜宸辯殑緙栬瘧鍣ㄨ屼笉鏄敤JDK bin鐩綍涓嚜甯︾殑錛屾墍浠ュ湪瀹夎鏃朵綘浼氬彂鐜頒粬浠彧瑕佹眰浣犻変腑jre璺緞灝眔k浜嗐?/div>
]]>
--------------------------------------------------浣跨敤VS鍚戝鍒涘緩Cocos2d-x欏圭洰錛堝簾寮冿紝涓嶅緩璁嬌鐢級
浣跨敤create_project.py
闂1錛氬伐紼嬪悕絳夋浛鎹笉瀹屽叏
闂2錛氬垱寤洪」鐩笉鑳芥寚瀹氳礬寰?/span>
%COCOS2DX_HOME%銆?/span>
import sys, os
def checkOption():
argLen = len(sys.argv)
targetPath = "./"
if argLen == 2:
targetPath = sys.argv[1]
if not targetPath.endswith("/"):
targetPath += "/"
return targetPath
def replaceCocos2dxPath(path):
filelists = os.listdir(path)
for item in filelists:
suffix = (os.path.splitext(item))[1]
print(suffix)
if suffix == ".sln":
print('replace "..\..\..\" with %COCOS2DX_HOME% in *.sln')
#replace "..\..\..\" with %COCOS2DX_HOME% in *.sln
content = open(path + item, 'r').read().replace("..\\..\\..\\", "%COCOS2DX_HOME%\\")
file = open(path + item, 'w')
file.write(content)
file.close()
if suffix == ".vcxproj":
print('replace "$(ProjectDir)..\..\..\" with $(COCOS2DX_HOME)\ in *.vcxproj')
#replace "$(ProjectDir)..\..\..\" with $(COCOS2DX_HOME)\ in *.vcxproj
content = open(path + item, 'r').read().replace("$(ProjectDir)..\\..\\..\\", "$(COCOS2DX_HOME)\\")
file = open(path + item, 'w')
file.write(content)
file.close()
if __name__ == '__main__':
targetPath = checkOption()
replaceCocos2dxPath(targetPath)
]]>