zoukankan      html  css  js  c++  java
  • 用Quick Cocos2dx做一个连连看(二)

    今天完成了以下内容:

    1 成对生成SpriteItem

    2 重排接口制作完成

    3 SpriteItem的选择逻辑

    主要代码如下:

     1 function MainScene:onEnter()
     2     local item
     3     local item0
     4     local temptype = 1
     5     for i=1,32 do
     6         temptype = math.floor(math.random(0,10))
     7         item = SpriteItem.new()
     8         item:setData(temptype)
     9         item:addTo(self.layer)
    10         item:setName(string.format("item%d", i))
    11         self.items[i] = item
    12         item:setPos(math.floor((i-1)%row),math.floor((i-1)/row))
    13 
    14         item0 = SpriteItem.new()
    15         item0:setData(temptype)
    16         item0:addTo(self.layer)
    17         self.items[i+32] = item0
    18         item0:setName(string.format("item%d", i+32))
    19         item0:setPos(math.floor((i+31)%row),math.floor((i+31)/row))
    20     end
    21 
    22     self:shuffle(self.items)
    23 
    24     self.layer:addNodeEventListener(cc.NODE_TOUCH_EVENT, handler(self, self.onTouched))
    25     self.layer:setTouchEnabled(true)
    26 end

    顺序重排的方法:

     1 function MainScene:shuffle(t)
     2     local  len = #t
     3     for i=1,len*2 do
     4         local a = math.floor(math.random(len))
     5         local b = math.floor(math.random(len))
     6         
     7         if a ~= b then
     8             t[a],t[b] = t[b],t[a]
     9             t[a]:setPos(math.floor((a-1)%row),math.floor((a-1)/row))
    10             t[b]:setPos(math.floor((b-1)%row),math.floor((b-1)/row))
    11             --printInfo("swap item %d : %d", a,b)
    12         end
    13     end
    14     --[[i = 1
    15     for i=1,len do
    16         print(t[i]:getName())
    17     end]]
    18 end

    选择逻辑:根据屏幕上的坐标点取得对应的SpriteItem

     1 function MainScene:getItem( posx, posy )
     2     --printInfo("getItem %d : %d", posx, posy)
     3     
     4     local px = math.round((posx - startX)/50)
     5     local py = math.round((posy-startY)/50)
     6     if px > 8 or py > 8 then
     7         return
     8     end
     9     local index = row * py + px + 1
    10     local item = self.items[index]
    11     
    12     return item
    13 end

    当前效果图如下:

  • 相关阅读:
    Hbuilder连接第3方模拟器(夜神)
    localStorage H5本地存储
    各种经典教程的收集分享
    laravel学习教程整理
    js-打地鼠游戏开发
    我的文件备份
    jQuery Ajax 简单的实现跨域请求
    HTML如何编写为桌面程序
    js调用打印机
    js base64加密解密
  • 原文地址:https://www.cnblogs.com/adoontheway/p/4192258.html
Copyright © 2011-2022 走看看