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


  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瓦力冫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值