對(duì)于開(kāi)發(fā)的萌新來(lái)說(shuō)顷蟆,配置好自己的IDE和環(huán)境是剛開(kāi)始一定要做的事情诫隅,這些事情繁瑣麻煩但是也要做啊,cocos中環(huán)境的配置還是有很多坑的帐偎,而且現(xiàn)在的教程還是偏少逐纬,是在讓人頭疼。所以在此寫下一部分遇到的坑來(lái)和大家分享一下.
1.項(xiàng)目新建的那些事
- 首先是vs插件bateLua的路徑配置削樊,剛開(kāi)始來(lái)公司的時(shí)候什么也不會(huì)豁生,配置的時(shí)候照著網(wǎng)上的教程配置了一下看到能print出來(lái)信息就開(kāi)始coding了兔毒,其bateLua是一個(gè)很好的插件,他是可以打斷點(diǎn)的甸箱,之前我一直做網(wǎng)頁(yè)前端和寫php育叁,C++寫的也很少,所以很少打斷點(diǎn)一般都是把想知道的值打印出來(lái)自己在慢慢分析芍殖。但是有時(shí)打斷點(diǎn)最終真的是很好用豪嗽,很容易讓你發(fā)現(xiàn)是哪里出現(xiàn)了問(wèn)題。其實(shí)想要打斷點(diǎn)就是要配置一段命令語(yǔ)句:
-workdir E.......\myProjectName\
-file src\main.lua
但在工作的時(shí)候我發(fā)現(xiàn)了一個(gè)中斷的bug豌骏,有時(shí)候打斷點(diǎn)也是不好使的龟梦,就是程序運(yùn)行一段時(shí)間后一定會(huì)中斷報(bào)C++的錯(cuò)誤,這很讓人聯(lián)想到是內(nèi)存泄露的問(wèn)題窃躲,但是真心不好找啊计贰,最后還是通過(guò)工具發(fā)現(xiàn)是有地方一直對(duì)某些控件一直增加監(jiān)聽(tīng)事件而且沒(méi)有移除,導(dǎo)致運(yùn)行不了多少時(shí)間就會(huì)中斷框舔。
還有遇到的就是在3.10這個(gè)大整合版本的進(jìn)行打包的工作蹦玫,不得不吐槽一下,觸控做的還是不方便(而且現(xiàn)在他們?cè)谥魍芻ocos creater)有時(shí)候還是有問(wèn)題其中就是如果你下在的jdk是1.8_64位的話需要將jdk中的一個(gè)tool工具包復(fù)制到j(luò)re的lib的目錄下 教程鏈接 然后將其他的環(huán)境變量按照網(wǎng)上的配置好就行了刘绣。
還有這其間遇到的問(wèn)題就是cocos自帶的ui控件有的有很多的問(wèn)題樱溉,首先就說(shuō)一說(shuō)button控件這個(gè)最常用的控件吧,首先我建議不要使用button自帶的按鈕文字纬凤,里面的屬性太少在之后的開(kāi)發(fā)法中福贞,項(xiàng)目組中那些不靠譜的策劃們還有產(chǎn)品會(huì)一直讓你改需求,所以最好在文字上用文本控件停士。而且如果你把按鈕的文字在代碼中賦值為空的時(shí)候還會(huì)出現(xiàn)bug就是之前按鈕上的文字會(huì)出現(xiàn)位置不正確的情況挖帘,不是偏上就是偏下然后按鈕上一片空(@。@)恋技!你要想賦值賦值個(gè)空格也行的拇舀,可不要賦空值......
然后就是多平臺(tái)的問(wèn)題,在不同平臺(tái)上文本的顯示差距是很大的蜻底,尤其是換行加空格這對(duì)組合絕對(duì)夠你喝一壺的骄崩。盡量把文字控件度放置幾個(gè)吧,絕對(duì)有用薄辅。
下面就是自己的一些總結(jié)和問(wèn)題了:在寫自己的邏輯的時(shí)候想讓lua給參數(shù)設(shè)置默認(rèn)的初始值可以使用or這個(gè)標(biāo)識(shí)符如下(還可以使用vs的注釋可以鼠標(biāo)移動(dòng)到這個(gè)函數(shù)的時(shí)候顯示注釋):
--- <summary>
--- 創(chuàng)建測(cè)設(shè)層
--- @param c4b_var(cc.c4b)
--- @param width(number)
--- @param height(number)
--- @param locationX(number)
--- @param locationY(number)
--- </summary>
function Utility:createTestLayer(c4b_var ,width ,height ,locationX ,locationY)
c4b_var_use = cc.c4b(100, 200, 100, 100) or c4b_var
width_use = 1920 or width
height_use = 1080 or height
locationX_use = 0 or locationX
locationY_use = 0 or locationY
local layer = cc.LayerColor:create(c4b_var_use, width_use, height_use)
layer:setPosition(cc.p(locationX_use, locationY_use))
return layer
end
2.遇到的奇怪的問(wèn)題
然后你想讓函數(shù)多線程的進(jìn)行可以使用調(diào)度者schedule這個(gè)好用的類要拂,還有啊你想使用偵察者模式的時(shí)候不妨嘗試一下cocos中的自定義監(jiān)聽(tīng)事件。
然后還有說(shuō)的就是監(jiān)聽(tīng)和轉(zhuǎn)換場(chǎng)景了站楚,為什么我要說(shuō)這個(gè)因?yàn)槲覍懥藱z測(cè)slider到半分之一百的時(shí)候脱惰,調(diào)用replaceScene這個(gè)方法是發(fā)現(xiàn)了有時(shí)候會(huì)出現(xiàn)個(gè)控件重復(fù)add的錯(cuò)誤。后來(lái)才發(fā)現(xiàn)是當(dāng)我把進(jìn)度條拉倒頭的時(shí)候窿春,因?yàn)橛螒蚴?0幀的有時(shí)候會(huì)在轉(zhuǎn)換場(chǎng)景的時(shí)候會(huì)執(zhí)行兩遍甚至更多的次數(shù)拉一,這樣怎么會(huì)不發(fā)生重復(fù)加載的錯(cuò)誤采盒,其實(shí)這也很好解決就是把代碼的健壯性做好,在跳轉(zhuǎn)場(chǎng)景的時(shí)候執(zhí)行了多遍的情況考略進(jìn)去就行了舅踪。
總之在要開(kāi)發(fā)中肯定或多或少的會(huì)遇到不同的問(wèn)題纽甘,只要耐心的去查找和多去請(qǐng)教一些前輩問(wèn)題總會(huì)解決(通過(guò)各種方法,解決問(wèn)題的方向不止一個(gè))