勤奋努力,持之以恒!
开发环境:
Mac OSX 10.9.3
Cocos Code IDE:V1.0.0.RC0
Cocos2d-x-3.2rc0
Cocos2dx中提供了类继承的一工具函数,在引擎中的/cocos/scripting/lua-bindings/script目录下有一个名为extern.lua,具体怎么用我们看代码。
用lua进行面向对象的编程,声明方法和调用方法统一用冒号,对于属性的调用全部用点号。
在工程中创建一新lua文件,名为HeroRole.lua。这是我们定义的HeroRole类。实现代码如下:
HeroRole = class("HeroRole")
HeroRole.__index = HeroRole
--英雄人物属性
HeroRole.name = nil --自身名称
HeroRole.level = nil --自身等级
--冒号的作用可以传递一个实参,也就是self,相当于c++的this
function HeroRole:extend(target)
local t = tolua.getpeer(target)
if not t then
t = {}
tolua.setpeer(target, t)
end
setmetatable(t, HeroRole)
return target
end
--创建HeroRole对象方法
function HeroRole:createHeroRole(_imageNameHero, _name, _level)
local sprite = HeroRole:extend(cc.Sprite:create(_imageNameHero))
sprite.name = _name
sprite.level = _level
return sprite
end
--更改名称
function HeroRole:setHeroName(value)
self.name = value
end
--得到名称
function HeroRole:getHeroName()
return self.name
end
--设置等级
function HeroRole:setHeroLevel(value)
self.level = value
end
--得到等级
function HeroRole:getHeroLevel()
return self.level
end
在main.lua中我们创建对象,代码如下:
local function myInit()
require "src/HeroRole"
--创建dogObj对象
local dogObj = HeroRole:createHeroRole("res/dog.png", "Dog", 99)
dogObj:setPosition(size.width/2,size.height/2)
mainLayer:addChild(dogObj)
cclog("Dog Object name == %s, leval == %d",dogObj:getHeroName(),dogObj:getHeroLevel())
--[LUA-print] Dog Object name == Dog, leval == 99
dogObj:setHeroName("BigDog") --更改英雄名称
dogObj:setHeroLevel(88) --更改英雄等级
cclog("BigDog Object name == %s, leval == %d",dogObj:getHeroName(),dogObj:getHeroLevel())
--[LUA-print] BigDog Object name == BigDog, leval == 88
--创建catObj对象
local catObj = HeroRole:createHeroRole("res/crop.png", "Cat", 100)
catObj:setPosition(size.width/2,size.height/4)
mainLayer:addChild(catObj)
cclog("Cat Object name == %s, leval == %d",catObj:getHeroName(),catObj:getHeroLevel())
--[LUA-print] Cat Object name == Cat, leval == 100
end
分享到:
相关推荐
用vsdoe开发cocos2dx-lua的辅助文件,用于代码提示,提高代码效率。一并提交了制作脚本。 cocos2dx-lua,vscode代码提示文件,附带制作脚本
可以快速解出cocos-lua, quick-cocos引擎使用xxtea加密的lua与zip文件。对luajit编译过的bytecode毫无办法。 资源来自吾爱破解论坛,作者ID:skyxiaoyu。感谢作者的分享
cocos2d-lua 实现富文本
cocos2dx-lua 自定义事件类
cocos2dx-lua微信原生支付文档(Android),首先要在微信支付平台下载好官方支付的SDK,放到安卓配置文件里,然后在代码里添加相应的参数
该文档详细说明了如何自定cocos2dx-lua(quick) C++接口并导出接口供lua端调用,从环境配置,文件编译,接口测试,平台(Android和Ios)编译一步一步进行详细说明,按照文档一步步操作就能生成你想要的C++接口,简单...
使用_cocos2d-x_和_Lua_快速开发游戏.pdf
2dx-lua api 文档,cocos2dx-3.5-output.zip cocos2dx-3.17-api-output.zip cocos2dx-3.x-deprecated-for-2.x.zip
quick-cocos2d-x3.3 lua开发曹操传源码,可编译通过 引擎版本:Cocos2dx-lua 3.3 语言:纯lua实现,逻辑代码大约2W多行,剧情脚本+数据大约7W多行(采用脚本进行转换的)
它是与Quick-Cocos2dx-Community v3.7.x兼容的Lua“框架”。得到帮助 QQ群:社区版千人群(1群)号:361920466社区版2群:138934064特征无需安装,无需环境设置。 OpenAL音频输出引擎,专为Lua设计。 集成更多第三...
shader编写,在lua层实现卡牌搓牌带3D弧边搓牌、翻牌效果。
cocos2dx lua debug的插件,可以断点lua,看堆栈信息,单步调试lua。 解压后,先安装BabeLua For 2015 V3.2.2.0.vsix,再安装babelua-compat-1.06-VS2015
Cocos2dx-3.9 中文API CHM 文档 用过的都懂
Cocos2dx引擎CocosDenshion库-Win32平台下实现setBackgroundMusicVolume函数
插件,笔记,文档,知识点,新手的笔记,下载嘘需要看清楚
cocos2dx-3.10-api.lua cocos官方API大全,使用VS按F12直接跳转
coocs2d核心编程代码。。。lua。。游戏开发,包含各种核心编程第二版demo
cocos2d-x进阶教程1_1搭建和配置Lua开发环境.mp4 cocos2d-x进阶教程1_2编写自己的Lua版本的HelloWorld.mp4 cocos2d-x进阶教程1_3Lua语言的注释、变量、语句块.mp4 ...cocos2d-x进阶教程1_10在Lua中实现串行化.mp4
cocos2dx scrollview优化
手把手教你swift项目添加cocos2dx-lua标签(空格分隔): iOS本文所用各版本信息:Xcode9.2 + swift4版本cocos2d-x v3.17集成思路首先网上给出一个C系的思路,本人未亲测,并且以C调用lua,绕过了cocos2d-x的调用...