【IOS-COCOS2D-X 游戏开发之十】自定义CCSPRITE/LAYER/CCNODE及静态类模版&自定义类细节说明&COCOS2DX触屏事件讲解

简介:
本站文章均为  李华明Himi 原创,转载务必在明显处注明: 
转载自【黑米GameDev街区】 原文链接:  http://www.himigame.com/iphone-cocos2dx/699.html

这里Himi又来了一篇基础篇…..不是因为充博文数量,而是Cocos2dX一个超级群里不少童鞋都有问过很基础的问题,Himi估计这些童鞋要么之前对C++不熟悉,要么就是之前没有接触过Cocos2d,而直接转入了Cocos2dx的开发行列中仂,这里首先给这些童鞋三个建议:

1. Cocos2dx的教程确实不多,但是因为Cocos2dx是Cocos2d一个繁衍的引擎,基本API没有大的变化,你只要将Cocos2d熟悉仂,那么X对你来说不会难的….

2. 还是再次提醒大家多看看引擎自带的例子,对于很多基础问题,源码完全能照顾到的,不管是cocos2d的,还是cocos2dX的,但是如果你还不知道Cocos2d/X的引擎示例在哪….无语下…(在引擎包下哦)

3. 还有不少童鞋抱着“赶快做完这个功能”的态度来工作来求助。。。这样不好的说,学开发跟学习一样,不思考就来答案的东西真的是浮云。。。建议大家遇到瓶颈的时候考虑下吧,禁忌饭来张口的童鞋;

入正题,开头就说仂本篇主要为了照顾下基础的童鞋,但是本篇也会介绍些在cocos2dx引擎中一些自定义类的模版的创建和使用;介绍过程中顺便把基础也说下,这样一举两得;

  首先我们先看一个自定义精灵类如何来做:(先上代码,然后细说)

这个自定义精灵类的模版重点介绍3个点:

1. 构造函数;

static SpriteClassModel* spriteModelWithFile(const char *spName);

此构造函数的实现机制,Himi仿制Cocos2dX引擎来做的,一方面使用方便,另外一方面内存自动释放;

2.  在构造函数中,有个备注1,还没有看到的童鞋请回头看下,这里我使用的父类CCSprite的索引文件名的创建方式,如下:

initWithFile(<#const char *pszFilename#>);

           那么这里可以根据需要继续自定义使用父类的索引帧缓存文件名的方式,如下:

initWithSpriteFrameName(<#const char *pszSpriteFrameName#>);

当然仂为了方便大家可以在自定义中多写几种构造,留好接口使用即可,那么这里Himi还自定义仂一个myInit()的函数,这个函数主要用途两点:1.用以清晰化操作,代码易读  2.当此类多种构造函数并在的时候可以将此自定义精灵类的独有属性设置等都放入此函数中,代码复用;

3. 关于触屏方面的,代码都有注释,不多说,唯一要提醒大家的就是当前Himi的这个精灵是采用触屏事件分发的机制进行处理的,而不是直接开启触屏开关(此方法太过于局限),那么如果对于这两种不太熟悉的童鞋请移步到如下文章:(cocos2d与cocos2dx类似)

【iOS-Cocos2d游戏开发之五】多触点与触屏事件详解(单一监听、事件分发) 

 

 关于CCNode的自定义这个不多说仂,类似自定义精灵只是继承父类有所变化,模版如下:

下面介绍下自定义CCLayer的模版:(先上代码,后剖析)

 

 

关于自定义CCLayer模版中,我这里将触屏相关代码删除了,与自定义精灵的触屏实现一样没区别;

重点介绍3点:

1.  CCLayer和CCScene 两个类都是自动释放内存,这个提示在创建cocos2dx引擎模版默认HelloWorldScene类中已经有提示,可能大家没有注意到,所以这里强调下;

2. CCLayer 经常会用于整个大的UI设计或者游戏中,他都作为主要的父类来使用,将游戏元素CCSprite,CCMenu,粒子等都添加到Layer中,所以此类在游戏中的交互性应该最强,所以在LayerClassModel模版中我添加了一个静态函数用于方便访问和其他类进行数据交互用(备注1),如下函数:

static LayerClassModel*sharedLayerClassModel(void);

好处不用多说,如CCDirector一样使用,如:CCDirector::sharedDirector()->getWinSize();

3. 备注2和备注3的作用防止当前类被重复创建,这个提醒下,不多介绍仂;

 

自定义的静态类与将CCLayer静态出来的方式类似,只是一个继承CCLayer一个不需要继承任何父类,模版如下:

基本代码都该有的注释都已经写仂,很容易理解,本篇供Cocos2dx的新童鞋一个参考吧  :ty:


相关文章
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户点击按钮时,按钮将从圆形变为椭圆形,颜色从蓝色渐变到绿色;释放按钮时,动画以相反方式恢复。通过UIView的动画方法和弹簧动画效果,实现平滑自然的过渡。
255 1
|
Swift iOS开发 UED
如何使用Swift和UIKit在iOS应用中实现自定义按钮动画
【10月更文挑战第18天】本文通过一个具体案例,介绍如何使用Swift和UIKit在iOS应用中实现自定义按钮动画。当用户按下按钮时,按钮将从圆形变为椭圆形并从蓝色渐变为绿色;释放按钮时,动画恢复原状。通过UIView的动画方法和弹簧动画效果,实现平滑自然的动画过渡。
220 5
|
Swift iOS开发 UED
实现一个自定义的iOS动画效果
本文介绍如何使用Swift和UIKit在iOS应用中实现一个自定义按钮动画,当按钮被点击时,其颜色从蓝色渐变为绿色,形状从圆形变为椭圆形,释放后恢复原状。通过UIView动画方法实现这一效果,代码示例展示了动画的平滑过渡和状态切换,有助于提升应用的视觉体验和用户交互。
288 1
|
Swift iOS开发 UED
揭秘一款iOS应用中令人惊叹的自定义动画效果,带你领略编程艺术的魅力所在!
【9月更文挑战第5天】本文通过具体案例介绍如何在iOS应用中使用Swift与UIKit实现自定义按钮动画,当用户点击按钮时,按钮将从圆形变为椭圆形并从蓝色渐变到绿色,释放后恢复原状。文中详细展示了代码实现过程及动画平滑过渡的技巧,帮助读者提升应用的视觉体验与特色。
239 11
|
Android开发 iOS开发 UED
iOS 自定义收款键盘
在iOS8之前,iOS系统的输入法只能使用苹果官方提供的输入法。 对于中文来说,官方的输入法并不好用,或者说不够好用,词库,联想,云输入等都没有或者和搜狗输入法,百度输入法等有中国特色的输入法相比有一定的差距。
252 0
|
编解码 iOS开发
iOS自定义的emoji表情键盘
iOS自定义的emoji表情键盘
511 0
iOS自定义的emoji表情键盘
iOS8新特性扩展(Extension)应用之四——自定义键盘控件
iOS8新特性扩展(Extension)应用之四——自定义键盘控件
693 0
iOS8新特性扩展(Extension)应用之四——自定义键盘控件

热门文章

最新文章