Lua元表应用之

最近学习cocos2d-x,顺势也接触到了Lua,

这小而巧的Lua,其功能却是yi想不到的强大,

我也不做冠冕堂皇的表面文章,大家可以去尝试深入了解Lua,

而我写Lua也不过2天,还是在别人的实例上改,至于其语法写法什么的,

可能是因为之前有过些程序基础,所以......╮(╯▽╰)╭,没学多少~\(≧▽≦)/~啦啦啦,

不过在练习cocos2d-x的HelloLua的时候,对其元表有了点了解,给大家看看,

我加的一个除草功能吧,其实播种子也是此写法,因为我们项目又不用Lua了,哈哈,我也就不练习了。

1 先在我们的游戏屏幕上添点草frameCrop吧,并insert装到我们创建的table表tSpriteCrop中

-- add crop
   local frameCrop = CCSpriteFrame:create(s_Crop, CCRectMake(0, 0, 105, 95))
--creat Crop table
  tSpriteCrop = {};

    for i = 0, 3 do
     for j = 0, 0 do
    local spriteCrop = CCSprite:createWithSpriteFrame(frameCrop);
    table.insert(tSpriteCrop,spriteCrop)
           spriteCrop:setPosition(10 + 220 + j * 200 - i % 2 * 90, 30 + i * 95 / 2)
           layerFarm:addChild(spriteCrop)
         end
   end

2 我们再加个除草功能的按钮吧

-- add the removespriteCropmenu
 local menuToolsItem = CCMenuItemImage:create(s_RemoveNormal, s_RemoveSelected)
 menuToolsItem:setPosition(0, 0)
 menuToolsItem:registerScriptTapHandler(removespriteCrop)
 menuTools = CCMenu:createWithItem(menuToolsItem)
 local itemWidth = menuToolsItem:getContentSize().width
 local itemHeight = menuToolsItem:getContentSize().height
 menuTools:setPosition(origin.x + visibleSize.width / 2 + itemWidth*2 + 5 , origin.y + itemHeight/2)
 layerFarm:addChild(menuTools)	

3 好了,看到menuToolsItem的registerScriptTapHandler消息响应函数了吗,我们再加个removespriteCrop除草函数,遍历下草把它除啦吧

-- remove priteCrop
  local function removespriteCrop()
       for k,v in ipairs(tSpriteCrop) do
	 if v:isVisible() then
	     v:setVisible(false)
	     table.remove(tSpriteCrop,k)
	 break
	end
      end
  end


 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值