Qucik-cocos2d-x - 4

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

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

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

2:概念讲解

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

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

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


1: cc.Sprite:setVisible()

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

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

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

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

-------------------------------------------------------------------------------------

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

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

a 这里我就简单拿两个来说下,掌握起来都很容易。先看这个cc.NODE_EVENT。
节点事件其实就是节点的几个生命周期:
b cc.NODE_EVENT可以响应一个节点的onenter,onexit,cleanup,exitTransitionStart,enterTransitionFinish这些事件,当然如果不使用添加监听的方式,我们也可以重写相应的函数
c functionMyScene:onEnter()
end
3:触摸区域:   就是一个 CCNode 及其所有子 CCNode 显示内容占据的屏幕空间

-----------------------------------------------------------------------------------------------------------------------------------------
1: 成员变量: (应为lua中不用生命定义,直接使用,动态修改),
所以actor中的 self. 相当于C++中的类成员变量

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

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

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

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

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

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

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

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