先说下技术相关问题;
Himi有段时间没有折腾Cocos2d-iphone了,前几天下载最新的Cocos2d 2.x版本尝试使用,发现两个常用知识点则需要注意的地方,这里分享下;
1. 对于Cocos2d 2.x版中,当你(自定义精灵)自定义一个类并继承精灵CCSprite时,务必要注意!千万要注意以下构造函数:
-(id) init { return self; }
在Cocos2d 2.x版本中不会默认初始化,也就是说父类不会自动调用子类的init函数,这里务必要重视;
2. 对于Cocos2d 2.x版本中,对于触屏时间的注册机制有了一些变化,以下代码可以看出:
Cocos2d 2.x版本 触屏时间注册代码:
[[[CCDirector sharedDirector]touchDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:NO];
Cocos2d 1.x版本 触屏时间注册代码:
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
ok,本章节知识点提醒就到这里,对于更多需要注意的区别之处,Himi在以后使用中如有发现,也会及时写博文提醒大家;
——————-
再简单说下关于cocos2d-iphone、cocos2dx、Unity3D使用感想,其实对于这三个引擎Himi都有使用开发过,虽然相对于Unity3D使用较少,但是也已经入门,简单也写过不少Demo(时间原因没有即使更新博客中),那么使用这几个引擎过程中,Himi认为这三个引擎都是开发iOS很不错的引擎,那么Cocos2dx和Unity3D与Cocos2d相比较而言,前两者显得更加适合跨平台开发,而且在Android和iOS平台已经都很成熟了。
那么如果我只想开发iOS平台应该用cocos2d-iphone?cocos2dx?
这里Himi可以肯定的告诉大家,两个引擎都可以,两者之间只是侧重点不同,对于cocos2d-iphone引擎而言,它更加的便捷、专一和稳定;二者之间的关系如同一个是既会开发client端也会开发Server端的3年游戏经验的程序员,另外一个则3年专一做Client端的程序员一样;
如果考虑到后期可能要做其他平台,那么cocos2dx会更适合你,而且如今跨平台开发已成趋势;
那么如果我想跨平台开发应该用cocos2dx? Unity3D?
这两款引擎的选择主要从2方面来抉择:
1. 资金;
如果你不缺钱那么你可以直接选用Unity3D,毕竟cocos2dx免费开源;如果缺钱,那么Unity3D的各种使用费用,证书费用,插件费用会让你无法接受;
2. 发展路线;
如果你偏向于开发2D游戏,那么推荐使用Cocos2dx来跨平台,因为cocos2dx就是针对2D游戏量身定做的引擎,使用起来相比Untiy3D而言更快上手,进行快捷开发;
如果你偏向于3D,2D游戏开发那么推荐使用Unity3D,因为3D Game的制作来说,Unity3D则显得很方便,更专业;当然了Cocos2dx近两年也不准备往3D路线进行发展;
这里Himi额外说两点:
1. 有童鞋问Himi,为什么抛弃Android开始做iOS ?
我很奇怪问这个问题的童鞋,对于Himi来说,Android iOS都是平台,只要是手机平台而且是Himi值得去付出精力学习的,那么Himi就会去学习研究,因为我比较喜欢接触新的技术,这个是自我的一个追求;而且现在Himi在公司Android、iOS都兼顾。所以不存在所谓的抛弃Android!
2.有童鞋看到Himi现在开始写Unity3D的博文,就问我是不是终于发现做Android跨平台Unity3D才是王道?
Himi其实一直都没有这么想过,掏心说,Unity3D引擎Himi一直对其比较有些排斥,因为Himi朋友有不少都做了1,2年的unity3D,通过交流后都认为Unity3D是给策划的工具,对于程序员而言对代码则会越用越陌生。 这表明Unity3D是个比较完善和强大的开发引擎,可视化已做的相当给力,但是另外一方面就能看出Unity3D已经将代码层大部门全部可视化处理,让很多非程序的开发人员也能很快掌握并进行开发;
其实说了点对Unity3D的自我看法,其实Himi就是想说,所有被大家所熟悉的引擎都有利有弊,不能断言XXX就是很牛,很完美的引擎,而是适合自我,适合公司的引擎其实就是很完美的引擎;
所以说,引擎的选择不单单与平台有关,更多的Himi认为与使用者有关;