cocos2d-x学习笔记

本文档详细介绍了在MacOS环境下进行Cocos2d-x游戏开发环境的搭建过程,并分享了一系列Lua编程实用技巧,包括解决TableView滑动图标串位问题、替换贴图的方法、Lua继承机制探讨等。

2014-10-09

Mac OS下环境搭建    http://blog.csdn.net/u010944926/article/details/39227855

大牛技术帖

http://www.himigame.com

知识点 

1. tableview 

可参考    http://blog.csdn.net/henren555/article/details/11139037

关于tableView 这里补充一点,滑动图标会串位的问题。关键在tableCellAtIndex的else。

如以下代码,去掉else语句,当sprite和label滑动幅度较大时,会发现cell上的label会变化,而因为所有的cell的sprite图标都一样,所以看不出来sprite其实也串位了。为了解决这个问题,只要把每个精灵在else语句中取一下就好了。

function TableViewTestLayer.tableCellAtIndex(table, idx)
    local strValue = string.format("%d",idx)
    local cell = table:dequeueCell()
    local label = nil
    if nil == cell then
        cell = cc.TableViewCell:new()
        local sprite = cc.Sprite:create("Images/Icon.png")
        sprite:setAnchorPoint(cc.p(0,0))
        sprite:setPosition(cc.p(0, 0))
        cell:addChild(sprite)

        label = cc.LabelTTF:create(strValue, "Helvetica", 20.0)
        label:setPosition(cc.p(0,0))
        label:setAnchorPoint(cc.p(0,0))
        label:setTag(123)
        cell:addChild(label)
    <span style="color:#ff0000;">else  <span style="white-space:pre">	</span>--delete start
        label = cell:getChildByTag(123)
        if nil ~= label then
            label:setString(strValue)
        end <span style="white-space:pre">	</span>--delete end</span>
    end

    return cell
end


2. 替换贴图 

可参考    http://blog.csdn.net/tangaowen/article/details/8728975

http://www.himigame.com/iphone-cocos2d/516.html

    texture = CCTextureCache:sharedTextureCache():addImage("scene/index/mail/board02.png")
    mailicon:setTexture(texture)

3. lua继承 对象 类 

关于setpeer和getpeer的作用

4. registerScriptHandler的用法  
列举遇到的几种,还有诸多疑惑!
tableView:registerScriptHandler(tableCellTouched, cc.TABLECELL_TOUCHED) 
button :registerScriptHandler(function() obtnclicked() end )//可带参数
button :registerScriptHandler(obtnclicked )//不可带参数

5. function定义的区别
以下三种用法有何区别?
function tableviewLayer. tableCellTouched//属性?方法?为何全局变量self.info在函数中无法被识别,而在下一种中可以识别
function tableviewLayer:tableCellTouched//相当于c++中的public接口
function tableCellTouched

6. 关于全局变量在别的文件中引用
self:getParent():showInfo()//showInfo()方法在原文件中定义,推荐(变量哪里定义哪里修改,便于代码后期修改)
    self:getParent().info:setVisible(true)

以下方法会新建info,而不是原来的self.info
-- local info = require("app.views.view.MailView").new().info
    -- info:setVisible(true)

2014-10-10
7. lua中的require机制,不同模块中如何传递参数

8. scrollview的用法,如何判断是否滑道顶层/底层
1)是否滚动到顶部
--到顶部了
    if scroll.getScrollY() == 0 then 
    --todo
    end
2)是否滚动到底部
  local childview = scroll:getChildByTag(0)
local mlastY = -202 --滑动到底部
if mlastY == (childview:getHeight() - scroll:getHeight()) then
    shade:setVisible(false)
else
    shade:setVisible(true)
end

9. SVN的命令
svn update
svn commit filename -m ""
svn status -u
svn add filename
svn delete filename
* 表示其他终端新添加的元素
M表示被修改过
?表示本终端新添加的元素
A表示==
svn冲突 http://wdqfirst.blog.163.com/blog/static/11334741120124402559830/

2014-10-15
10. 错误记录:menu不接受menuItem之外的元素作为孩子

Menu only supports MenuItem objects as children


11. 错误记录:回调函数必须写在register之前,并且最好加local修饰



2014-10-16

12. lua的table排序 

http://blog.csdn.net/goodai007/article/details/9195615


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值