温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Cocos2dx面向对象编程介绍

发布时间:2020-06-28 21:28:16 来源:网络 阅读:876 作者:蓝鸥刘辉 栏目:移动开发

蓝鸥iOS培训讲师推荐:利用空闲时间和大家分享一Cocos2dx的有关内容,Cocos2d是一款非常好用的手游引擎,也是现在最火的引擎,有款游戏都是利用Cocos2dx引擎开发完成的。

一、对象的方法函数

今天的介绍内容是有关lua面向对象编程,首先要介绍是对象的方法函数,举例说明:

Cocos2dx面向对象编程介绍

从上面程序中可以看出,是先创建了一个函数,同时调用该函数。而且在调用函数时用了全局Hero,Lua尽量减少全局变量的使用。那么这时就要注意了,如果不故意的改动了Hero,那么就很有可能不能正常工作了。

有人可能会将localtemA=A中的函数修改为:

Cocos2dx面向对象编程介绍

不过让人麻烦的是,每次的selr都需要自己传,事实上lua也可隐性调用self,再修改:

Cocos2dx面向对象编程介绍

:的使用,冒号可以在方法中添加一个额外的隐藏参数。上面其实也看到了Hero.skill()和Hero:skill()的

区别。

二、类,将table作为自己的元素

在上面的Hero程序中,再作修改:

Cocos2dx面向对象编程介绍

创建一个新英雄的时候,oneHero将Hero设置为自己的元表,当oneHero:skill(10)的时候,在tableoneHero中查找skill,没有找到后,会进一步搜索元表的__index。

所以等价于:getmetatable(oneHero).__index.skill(oneHero,10)

而getmetatable(oneHero)是Hero,Hero.__index还是Hero

所以等价于Hero.skill(oneHero,10)

三、继承

举例说明:

Cocos2dx面向对象编程介绍

小结:每个对象没有的方法都会去父类中寻找,所以某个对象需要一些新的属性方法,就在该对象中实现就ok了,也没有那么麻烦。

基本上就是这样,理解起来简单又明了,希望能够对你有所帮助。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI