对于开发的萌新来说,配置好自己的IDE和环境是刚开始一定要做的事情,这些事情繁琐麻烦但是也要做啊,cocos中环境的配置还是有很多坑的,而且现在的教程还是偏少,是在让人头疼。所以在此写下一部分遇到的坑来和大家分享一下.
1.项目新建的那些事
- 首先是vs插件bateLua的路径配置,刚开始来公司的时候什么也不会,配置的时候照着网上的教程配置了一下看到能print出来信息就开始coding了,其bateLua是一个很好的插件,他是可以打断点的,之前我一直做网页前端和写php,C++写的也很少,所以很少打断点一般都是把想知道的值打印出来自己在慢慢分析。但是有时打断点最终真的是很好用,很容易让你发现是哪里出现了问题。其实想要打断点就是要配置一段命令语句:
-workdir E.......\myProjectName\
-file src\main.lua
但在工作的时候我发现了一个中断的bug,有时候打断点也是不好使的,就是程序运行一段时间后一定会中断报C++的错误,这很让人联想到是内存泄露的问题,但是真心不好找啊,最后还是通过工具发现是有地方一直对某些控件一直增加监听事件而且没有移除,导致运行不了多少时间就会中断。
还有遇到的就是在3.10这个大整合版本的进行打包的工作,不得不吐槽一下,触控做的还是不方便(而且现在他们在主推cocos creater)有时候还是有问题其中就是如果你下在的jdk是1.8_64位的话需要将jdk中的一个tool工具包复制到jre的lib的目录下 教程链接 然后将其他的环境变量按照网上的配置好就行了。
还有这其间遇到的问题就是cocos自带的ui控件有的有很多的问题,首先就说一说button控件这个最常用的控件吧,首先我建议不要使用button自带的按钮文字,里面的属性太少在之后的开发法中,项目组中那些不靠谱的策划们还有产品会一直让你改需求,所以最好在文字上用文本控件。而且如果你把按钮的文字在代码中赋值为空的时候还会出现bug就是之前按钮上的文字会出现位置不正确的情况,不是偏上就是偏下然后按钮上一片空(@。@)!你要想赋值赋值个空格也行的,可不要赋空值......
然后就是多平台的问题,在不同平台上文本的显示差距是很大的,尤其是换行加空格这对组合绝对够你喝一壶的。尽量把文字控件度放置几个吧,绝对有用。
下面就是自己的一些总结和问题了:在写自己的逻辑的时候想让lua给参数设置默认的初始值可以使用or这个标识符如下(还可以使用vs的注释可以鼠标移动到这个函数的时候显示注释):
--- <summary>
--- 创建测设层
--- @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.遇到的奇怪的问题
然后你想让函数多线程的进行可以使用调度者schedule这个好用的类,还有啊你想使用侦察者模式的时候不妨尝试一下cocos中的自定义监听事件。
然后还有说的就是监听和转换场景了,为什么我要说这个因为我写了检测slider到半分之一百的时候,调用replaceScene这个方法是发现了有时候会出现个控件重复add的错误。后来才发现是当我把进度条拉倒头的时候,因为游戏是60帧的有时候会在转换场景的时候会执行两遍甚至更多的次数,这样怎么会不发生重复加载的错误,其实这也很好解决就是把代码的健壮性做好,在跳转场景的时候执行了多遍的情况考略进去就行了。
总之在要开发中肯定或多或少的会遇到不同的问题,只要耐心的去查找和多去请教一些前辈问题总会解决(通过各种方法,解决问题的方向不止一个)