呵呵,不知道能不能坚持下来,先写着吧。

预备知识:Quick Cocos2dx 2.2.5基本知识 或者 Cocos2dx基本知识, lua入门

开发工具:Sublime Text 2.0/3.0

原型设计:Balsamiq Mockups

代码跟踪: https://github.com/AdoBeatTheWorld/SuperLink.git

我们的效果图大概是这样子的:

可见,我们需要将连连看的元素抽出来作为一个类,这个类肯定是一个显示对象来的,我们给这个类设入一个类型值,就可以自动的刷新图片,设入行与列就可以自动的刷新其位置。

这个类如下:

 local SpriteItem = class("SpriteItem", function( )
return display.newNode()
end) function SpriteItem:ctor() end function SpriteItem:setData(value)
printInfo("Set Data %d",value)
if self.type ~= value then
self.type = value
self:initIcon()
end
end function SpriteItem:initIcon()
printInfo(string.format("res/%d.png", self.type))
display.newSprite(string.format("res/%d.png", self.type)):addTo(self)
end function SpriteItem:recycle()
-- body
end function SpriteItem:reset()
-- body
end function SpriteItem:getValue()
return self.type
end function SpriteItem:setPos( px,py )
self.px = px
self.py = py
self:setPosition(px*, py*)
printInfo("x:%d,y:%d", self:getPositionX(),self:getPositionY())
end return SpriteItem

为了看到效果,我们可以在MainScene.lua里面试一下主要的一些接口,在MainScene:onEnter()中加入加入以下代码:

 local item
for i=, do
for j=, do
item = SpriteItem.new()
item:setData()
item:setPos(i,j)
item:addTo(self)
end
end

然后运行就可以看到以下结果:

然后,在MainScene.lua的ctor()函数里面添加一下得分和时间的文本表示我们就大功告成了:

 function MainScene:ctor()

     self.scorelb = ui.newTTFLabel({text = "Score : 0", size = , align = ui.TEXT_ALIGN_LEFT})
:pos(display.width-, display.height-)
:addTo(self) self.timelb = ui.newTTFLabel({text = "Time : 0", size = , align = ui.TEXT_ALIGN_LEFT})
:pos(display.width-, display.height-)
:addTo(self)
end

好吧,这个游戏比较小,能写多少字我也不知道,所以先在这里更新吧。

距上次发帖时间内,我工作去了,刚才花了10多分钟又润色了一下,新增了一些ui资源,然后代码方面也有所优化,当前效果图如下:

用Quick Cocos2dx做一个连连看(一)的更多相关文章

  1. 用Quick Cocos2dx做一个连连看(三)

    做个日记吧. 最近比较忙,斗志也不高,昨天有点时间了,开始做了一下连接方法,一开始用的搜索算法,但是bug比较多,究其原因是对语法和算法都不是很熟悉. 然后昨天下午利用点时间用稍微通俗一点的连接算法, ...

  2. 用Quick Cocos2dx做一个连连看(二)

    今天完成了以下内容: 1 成对生成SpriteItem 2 重排接口制作完成 3 SpriteItem的选择逻辑 主要代码如下: function MainScene:onEnter() local ...

  3. 笔记:利用Cocos2dx 3.3 lua 做一个动作类游戏(一)

    在这之前,声明一下: 做不完我是小狗. 没办法,没毅力和恒心,之前的那个Quick Cocos2dx做的横版过关游戏的demo已经转成了3.3的版本了,其实也算是个半成品,战斗,UI啥的都有了,呵呵. ...

  4. 做一个懒COCOS2D-X程序猿(一)停止手打所有cpp文件到android.mk

    前言:”懒”在这里当然不是贬义词,而是追求高效,拒绝重复劳动的代名词!做一个懒COCOS2D-X程序猿的系列文章将教会大家在工作中如何偷懒,文章篇幅大多较短,有的甚至只是几行代码,争取把懒发挥到极致! ...

  5. quick cocos2d-x 入门---井字棋

    学习quick cocos2d-x 第二天 ,使用quick-x 做了一个井字棋游戏 . 我假设读者已经 http://wiki.quick-x.com/doku.php?id=zh_cn阅读了这个链 ...

  6. Mac在结构quick cocos2d-x编译环境

    关于 Quick 很多其它的使用说明可參考安装文件夹下的 README 文件. Quick-Coco2d-x开发工具 普通情况下,我们通常都会採用Cocos Code IDE作为开发工具来高速开发游戏 ...

  7. Quick Cocos2dx Http通讯

    服务端:Python 通讯协议:Http 参考文章: 1 用python实现一个基本的http server服务器 http://blog.sina.com.cn/s/blog_416e3063010 ...

  8. cocos2d-x中有一个JniHelper类详细使用

    主体思路 通过JNI获取java虚拟机,再获取当前程序的JNI环境,通过JNI环境获取需要调用的java类信息,再获取需要调用的java类中的函数信息.再通过JNI环境调用,使用类信息.函数信息,调用 ...

  9. Mac下搭建quick cocos2d-x编译环境

    一. 我知道在你的电脑中一定已经安装好了Xcode(没有自己下载去吧),打开Xcode,开启"偏好设置"对话框(commond + ,).假设打开之后出现的是这种一个对话框,那么直 ...

随机推荐

  1. fp oo

    http://blog.enfranchisedmind.com/2009/05/scala-not-functional/

  2. Hibernate主键生成方式之hilo

    当利用Hibernate的getHibernateTemplate().save(obj);插入的对象的主键ID为null的时候自动生成5位数的主键ID进行插入. 此笔记的由来: 老夫在此处上传材料后 ...

  3. “strcmp()” Anyone?

    “strcmp()” Anyone? strcmp() is a library function in C/C++ which compares two strings. It takes two ...

  4. POJ 2031 Building a Space Station 最小生成树模板

    题目大意:在三维坐标中给出n个细胞的x,y,z坐标和半径r.如果两个点相交或相切则不用修路,否则修一条路连接两个细胞的表面,求最小生成树. 题目思路:最小生成树树模板过了,没啥说的 #include& ...

  5. PHP 上传图片,生成水印,支持文字, gif, png

    //admin_upfile.php <html> <meta http-equiv="Content-Type" content="text/html ...

  6. linux视频学习3(shell和网络)

    1.shell的学习. shell的种类比较多,主要有三种: /bin/sh, /bin/csh, /bin/ksh. 查看当前使用的是哪种shell : 命令env (显示当前操作系统的环境变量). ...

  7. iOS 静态库,动态库与 Framework 浅析

    静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人 ...

  8. - (void)addAnimation:(CAAnimation *)anim forKey:(nullable NSString *)key; 方法浅析

    转载自:http://blog.csdn.net/ronaldo_carry/article/details/49070119 将viewdidload里面的代码全部注释掉 - (void)viewD ...

  9. js基础之数据类型

    一:JavaScript 数据类型:字符串.数字.布尔.数组.对象.Null.Undefined JavaScript 字符串;        var carname="Bill Gates ...

  10. hb_gui配置heartbeat做MariaDB的高可用

    系统平台:CentOS release 6.5 (Final) Kernel:2.6.32-431.el6.x86_64 一.启动hb_gui hb_gui & 添加资源组 添加MySQL_I ...