首页 > 代码库 > 用Quick Cocos2dx做一个连连看(一)
用Quick Cocos2dx做一个连连看(一)
呵呵,不知道能不能坚持下来,先写着吧。
预备知识:Quick Cocos2dx 2.2.5基本知识 或者 Cocos2dx基本知识, lua入门
开发工具:Sublime Text 2.0/3.0
原型设计:Balsamiq Mockups
我们的效果图大概是这样子的:
可见,我们需要将连连看的元素抽出来作为一个类,这个类肯定是一个显示对象来的,我们给这个类设入一个类型值,就可以自动的刷新图片,设入行与列就可以自动的刷新其位置。
这个类如下:
1 local SpriteItem = class("SpriteItem", function( ) 2 return display.newNode() 3 end) 4 5 function SpriteItem:ctor() 6 7 end 8 9 function SpriteItem:setData(value)10 printInfo("Set Data %d",value)11 if self.type ~= value then12 self.type = value13 self:initIcon()14 end15 end16 17 function SpriteItem:initIcon()18 printInfo(string.format("res/%d.png", self.type))19 display.newSprite(string.format("res/%d.png", self.type)):addTo(self)20 end21 22 function SpriteItem:recycle()23 -- body24 end25 26 function SpriteItem:reset()27 -- body28 end29 30 function SpriteItem:getValue()31 return self.type32 end33 34 function SpriteItem:setPos( px,py )35 self.px = px36 self.py = py37 self:setPosition(px*40, py*40)38 printInfo("x:%d,y:%d", self:getPositionX(),self:getPositionY())39 end40 41 return SpriteItem
为了看到效果,我们可以在MainScene.lua里面试一下主要的一些接口,在MainScene:onEnter()中加入加入以下代码:
1 local item2 for i=1,10 do3 for j=1,10 do4 item = SpriteItem.new()5 item:setData(0)6 item:setPos(i,j)7 item:addTo(self)8 end9 end
然后运行就可以看到以下结果:
然后,在MainScene.lua的ctor()函数里面添加一下得分和时间的文本表示我们就大功告成了:
1 function MainScene:ctor() 2 3 self.scorelb = ui.newTTFLabel({text = "Score : 0", size = 30, align = ui.TEXT_ALIGN_LEFT}) 4 :pos(display.width-150, display.height-40) 5 :addTo(self) 6 7 self.timelb = ui.newTTFLabel({text = "Time : 0", size = 30, align = ui.TEXT_ALIGN_LEFT}) 8 :pos(display.width-150, display.height-80) 9 :addTo(self)10 end
用Quick Cocos2dx做一个连连看(一)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。