Qucik-cocos2d-x - 4

前端之家收集整理的这篇文章主要介绍了Qucik-cocos2d-x - 4前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1:添加玩家角色到场景中

在MainScenen:ctor()中添加下面代码

2:概念讲解 @H_403_8@

@H_403_8@
- 类的继承:子类会包含父类方法属性 @H_403_8@
- 调用父类方法: app 里 ctor() 方法就需要调用父类的 ctor() 方法,完成初始化工作。 @H_403_8@

@H_403_8@
3: @H_403_8@
return display.newSprite(); — “”图片? 里面有这个方法 @H_403_8@
-- 语法错误提示 红黑树 先主调 一班函数 函数有 @H_403_8@
map.find 红黑树 实现 @H_403_8@ @H_403_8@

@H_403_8@
3:local Bullet = class("Bullet",function () ) @H_403_8@
return @H_403_8@
end); @H_403_8@ @H_403_8@
------------------------------------------------------------------------------------ @H_403_8@
self:scheduler — self 不能少this指针 @H_403_8@
display:newSprite("img/bug1_01.png”) 是。 displaye.newSprite(self,…) @H_403_8@
cc.Sprite:create() — cc是table,sprite是建, 值又是个table @H_403_8@
@H_403_8@
使用时, 不会出现local =1的代码提示, 因为: 1: 后缀名字 2:关掉文件在开(与Xcode)一样 @H_403_8@
Bullet:onEnter( ) -- node = 触摸区域0大小(新版本又改了) / 不会被自动调用 要开启 @H_403_8@
@H_403_8@

@H_403_8@

1: cc.Sprite:setVisible()

cc表, sprite键, 值又是个table. 对键只能用. 函数才有: @H_403_8@

@H_403_8@
2:看错误就看第一行的 error有用 @H_403_8@

@H_403_8@

3: : 忘了 then 有吧不等号输错了

if i >=0 and i < 8 and j>=0 and j < 8 and MatrixStars[i][j] ~= nil then

@H_403_8@ @H_403_8@
------------------------------------------------------------------------------------- @H_403_8@

@H_403_8@
1:在触摸的回调函数function(event)中,记得考虑是否需要添加返回值,返回值的作用不用多说,true则后面的moved,ended等状态会接收到,否则接收不到,默认如果不添加则代表false。 @H_403_8@

@H_403_8@
2:节点生命周期事件,帧事件等其他事件 cc.NODE_TOUCH_EVENT @H_403_8@

@H_403_8@
a 这里我就简单拿两个来说下,掌握起来都很容易。先看这个cc.NODE_EVENT。 @H_403_8@
节点事件其实就是节点的几个生命周期: @H_403_8@
b cc.NODE_EVENT可以响应一个节点的onenter,onexit,cleanup,exitTransitionStart,enterTransitionFinish这些事件,当然如果不使用添加监听的方式,我们也可以重写相应的函数 @H_403_8@
c functionMyScene:onEnter() @H_403_8@
end @H_403_8@ @H_403_8@
3:触摸区域:   就是一个 CCNode 及其所有子 CCNode 显示内容占据的屏幕空间 @H_403_8@
@H_403_8@
----------------------------------------------------------------------------------------------------------------------------------------- @H_403_8@
1: 成员变量: (应为lua中不用生命定义,直接使用,动态修改), @H_403_8@
所以actor中的 self. 相当于C++中的类成员变量 @H_403_8@

@H_403_8@
2: lua不会写是, 写C++, 在化为lua @H_403_8@

@H_403_8@
3: local player = Play.new(); — 创建一个对象 @H_403_8@
像 当于C++中 createBullet(const char* fileName,Point pos) + void initBullet() 都被调用了 @H_403_8@

@H_403_8@
4:创建一个对象用 self,game_ local game_ @H_403_8@
理解: ctor()中定义对象用self.game_ 函数值用局部变量: local game_ @H_403_8@

@H_403_8@
5: 二维数组来存放星星:Star* stars[ 8][ 8]; — 对于lua 一个空表stars = {} 就ok @H_403_8@
遍历/复制 for { i=1; i< for{ j=1; } } — 从1开始,用impairs,stars[i][j]i不变,对应8个值 @H_403_8@

@H_403_8@
6: table 内存空间分 2个位置: 1: 数组空间(key 从1开时并且连续) 2: hash中 @H_403_8@

@H_403_8@
例子:tab = {[1]=1,[2]=2,“ok”,[3]= 3,[4=]4 } — 这时:1234都存储在数组中,”ok”放在hash中, @H_403_8@
tab = {1,2,[4]=4,[5]=5,} — 只有1,2放在数组空间中, ”剩余的“都放在hash中,因为2之后的key不连续 @H_403_8@
tab = { [2] =1,[3]=3 } —— ???? @H_403_8@

@H_403_8@
table有: 数字key 和 字符串键 @H_403_8@
— ipairs 仅仅遍历数组, pairs遍历所有的 @H_403_8@
------------------------------------------------------------------------------------------------- @H_403_8@
1: lua 是基于 C 的。 @H_403_8@
2: 内存管理:垃圾回收机制 @H_403_8@
A: 在 C 里,内存管理函数可不仅仅 malloc 和 free 两个。还有一个更重要的 api 是 realloc 。lua 就是用 realloc 来实现可变长度的数组的。( Lua 定义的 realloc 和 C 标准稍有不同,参见 Lua 参考手册lua_Alloc 的定义) @H_403_8@
realloc 可以保证新分配出来的内存完全复制了旧内存的数据,在分配器合理设计下,甚至不需要移动内存就可以原地扩展出空间来。这样,一个可变长的数组的实现(Lua 里大量用到)就可以做的非常高效。(可能比 C++ 的 std::vector 要高效的多。) @H_403_8@
B: @H_403_8@
原型:extern void *realloc(void *mem_address,unsigned int 
newsize);语法:指针名=(数据类型*)realloc(要改变内存大小的指针名,新的大小)。//新的大小一定要大于原来的大小,不然的话会导致数据丢失!说明:先判断当前的指针是否有足够的连续空间,如果有,扩大mem_address指向的地址,并且将mem_address返回,如果空间不够,先按照newsize指定的大小分配空间,将原有数据从头到尾拷贝到新分配的内存区域,而后释放原来mem_address所指内存区域,同时返回新分配的内存区域的首地址。即重新分配存储器块的地址。
@H_403_8@ @H_403_8@

猜你在找的Cocos2d-x相关文章