Cocos2d Lua 入门小例子 一个记忆力游戏

1.游戏说明

一个"记忆"类的比赛游戏。你和电脑对战,轮到谁的回合,谁翻两张牌,如果两张牌一样,就消掉这两张牌,得2分,可以继续翻牌,如果两张牌不一样,就换一个人。直到最后,看谁的得分高。

游戏设计思想可以看这篇文章《Cocos2d 游戏状态机》

2. Lua 简单面向对象

我们知道Lua是脚本语言,不是真正面向对象语言。但是面向对象好像能让代码结构更加合理,Javascript, Lua都可以模拟出面向对象。Lua面向对象还有超多种方式实现,这里当然不一一介绍。简单来看个继承Sprite的写法。抄官方的。

MatchCard = class("Match",function (spriteFrameName, value)
    MatchCard.value = value //--属性
    return cc.Sprite:createWithSpriteFrameName("MatchCardBg.png")
end)
MatchCard.test= true //--属性
 //--一个方法
function MatchCard:containsTouchLocation(x,y)
local position = cc.p(self:getPosition())
local s = self:getContentSize()
local touchRect = cc.rect(-s.width / 2 + position.x, -s.height / 2 + position.y, s.width, s.height)
local b = cc.rectContainsPoint(touchRect,cc.p(x,y))
return b
end
//--new 一个对象,当然这跟c++的那种不一样的
local card = MatchCard.new()
//--调用方法
card:containsTouchLocation()

3.Cocos Code Ide 创建Lua项目

我这游戏是用Cocos Code Ide 创建的,还算顺利。API参考Lua-Tests就行了。整体是一样的。还没玩过Quick cocos2d-x。

4.cocos2d lua 使用感受

使用Cocos2d-x的C++编程感觉是最舒服的,虽然C++语法有写难,但不容易遇到很奇怪的Bug,就是编译速度太慢了,跟策划不好合作,像Js,和Lua,你定义好一些写法,策划直接也可以写Js和Lua,C++就不行了。还有Cocos2d-x C++ 能用上最新版本,移植Android和IOS没什么问题。还有Cocos2d-x C++感觉能写出较高质量的代码。还有VS2012非常好用。

Lua,JS都是脚本语言,用来开发游戏速度快很多。不需要编译。就是习惯了C++那种条条框框的面向对象后,写Lua,JS的面向对象总怪怪的。Debug有时候相对C++比较困难。cocos2d JS还是用WebStorm编写比较爽。Cocos Code Ide 跟VS2012和WebStorm还有差距,某些方面因为是集成Cocos的游戏框架,所以某些方面比较好用。

5.动态图以及项目源码下载

我对Lua使用比较少,感觉写的比较差,太多全局变量。项目下载地址:

http://www.waitingfy.com/?attachment_id=1291

exe可以直接运行在/runtime/win32/MatchGame.exe,不支持XP,Win7应该可以。

http://www.waitingfy.com/archives/1289

时间: 2024-10-23 13:06:41

Cocos2d Lua 入门小例子 一个记忆力游戏的相关文章

freemarker入门小例子

我用freemarker做了两个小例子,主要的东西是:两个Test文件,一个Animal实体类,一个ftl模板---freemarker的模板,我使用maven做的java工程案例.主要结构内容如下图: 注意:需要导入freemarker的jar包: 1.首先我们先来了解一下freemarker的概念: freeMarker概述: FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写: FreeMarker被设计用来生成HTML Web页面,特别是基于MVC

Python In Action:一、入门小例子

Python In Action这本书真是有点猛,一开头就来这么个例子: 1 import wx 2 class MyFrame(wx.Frame): 3 def __init__(self): 4 wx.Frame.__init__(self,None,-1,'My Frame',size=(300,300)) 5 panel=wx.Panel(self,-1) 6 panel.Bind(wx.EVT_MOTION,self.OnMove) 7 wx.StaticText(panel,-1,'

DWR入门的例子(一个)

DWR(Direct Web Remoting)是WEB远程调用框架.使用这种框架使AJAX发展至今已成为非常easy.使用DWR能client利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地client调用一样(DWR依据Java类来动态生成JavaScrip代码).它的最新版本号DWR0.6加入很多特性如:支持Dom Trees的自己主动配置,支持Spring(JavaScript远程调用spring bean),更好浏览器支持,还支持一个可选

linux shell 快速入门小例子(shell十三问学习NOTE)

读CU论坛shell十三问后进行的几次小实验,备忘一下! SHELL十三问地址:http://bbs.chinaunix.net/thread-218853-1-1.html #!/bin/bash function func_com() { local a=1 local b="2c3" echo ${a}b echo $ab } function func_array() { echo "##### func_array #####" local PATH=&q

小易邀请你玩一个数字游戏,小易给你一系列的整数。你们俩使用这些整数玩游戏。每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字。 例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你找出无法从n个数中选取部分求和

小易邀请你玩一个数字游戏,小易给你一系列的整数.你们俩使用这些整数玩游戏.每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字. 例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你找出无法从n个数中选取部分求和的数字中的最小数. 输入描述: 输入第一行为数字个数n (n ≤ 20) 第二行为n个数xi (1

Cocos2d Lua 越来越小样本 内存游戏

1.游戏简介 一个"记忆"类的比赛游戏.你和电脑对战,轮到谁的回合,谁翻两张牌,假设两张牌一样.就消掉这两张牌,得2分,能够继续翻牌,假设两张牌不一样,就换一个人.直到最后.看谁的得分高. 游戏设计思想能够看这篇文章<Cocos2d 游戏状态机> 2. Lua 简单面向对象 我们知道Lua是脚本语言,不是真正面向对象语言.可是面向对象好像能让代码结构更加合理.Javascript, Lua都能够模拟出面向对象.Lua面向对象还有超多种方式实现,这里当然不一一介绍. 简单来看

简述人脸特异性识别&amp;&amp;一个基于LBP和SVM的人脸识别小例子

原谅我用图片,MAC在Safari里给文章进行图文排版太麻烦啦~ 本文适合初入计算机视觉和模式识别方向的同学们观看~ 文章写得匆忙,加上博主所知甚少,有不妥和勘误请指出并多多包涵. 本文Demo的代码由HZK编写,特征点由月神和YK选择和训练. 转载请注明 copyleft by sciencefans, 2014 为了方便大家学习,附上高维LBP的核心代码 1 ################################################### 2 # 3 # 4 # NO

一个php多态性的小例子

多态性在 OO 中指 "语言具有以不同方式处理不同类型对象的能力",但 PHP 是弱类型语言,在这一点上就比较弱,仅有 instance of 可以用于判断对象的类型 多态性的优点:让代码更接近生活中的真实情况 一下是一个非常简单的多态性例子,描述在电脑上安装不同操作系统,linux, OS X, windows 和 computer 是两种不同类型的对象. interface os{ function name(); function creator(); } class linux

java操作xml的一个小例子

最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要定义好bean的层次结构就可以了,第三方包会自动生成和解析xml. 但是今天发现,这个包有两个问题: 一个是比较复杂(我是菜鸟,求别喷,我真的觉得他挺复杂的..).比如说你要想处理既有属性又有值的xml就比较麻烦.(@XStreamConverter注解这种方法报这个错:com.thoughtwor