CCProgressTimer制作横向进度条

用CCProgressTimer实现进度条效果很不错,还有动画,只是中文社区、博客对横向进度条讲的比较少,自己写一个大概的用法,因为刚开始使用,有问题还请指出。

ps. 基于cocos2d 2.1。

首先是初始化一个CCProgressTimer:

然后设置其状态:

这样就得到了一个横向进度条。

获取Texture packer的免费授权码

制作cocos2d游戏的时候会经常需用精灵画册(sprite frame),如果适用精灵画册可以明显提高游戏的效率。很多人都选择适用Texure packer,这个工具不止支持cocos2d,他还支持超级多其他的引擎,最近刚出的3.1.3还添加了对Spirte kit的支持。

我在试用一周后开始考虑入手这个工具,有人说免费的就很好用,其实不是这样的,免费版会给一些图片增加作者的网址,你会发现图片一片红……

后来突然发现作者也发免费授权的,前提是你要有自己的博客,这个博客至少写了6个月,而且需要有5篇以上的相关文章。我前天发的申请,昨天收到了作者的邮件,我突然发现作者热心的把PhysicsEditor的key也给我了(申请的时候我没选择要这个),真不错。

申请地址:http://www.codeandweb.com/request-free-license

邮件末尾还说如果你写一个这个工具的入门教程,他可以考虑把你的文章放到他站点上给你提高访问量,不过我还没用明白,先算了,虽然我的博客的确没什么访问量。

关于cocos2d坐标系

无论是搞2d还是3d开发,最需要搞清楚的就是坐标系,这部分混乱的话就没啥奔头了。所以玩cocos2d,一上来就先把各种与坐标有关的东西搞清楚。

基本的两个坐标系:屏幕坐标系和GL坐标系。

  1. 屏幕坐标系x轴朝右,y轴朝下。默认原点在左上角。
  2. GL坐标系x轴朝右,y轴朝上。默认原点在左下角。

在调用任何需要设置位置的函数,或从函数获取位置信息前,必须要明确这个函数使用哪个坐标系。比如调用CCNode类的setPosition函数,它使用的就是GL坐标系。比如在处理触摸事件时CCTouch对象中的坐标就是屏幕坐标系。

继续阅读

cocos2 CCTargetedTouchDelegate和CCStandardTouchDelegate找不到的问题

今天使用CCTargetedTouchDelegate的时候一直提示这个协议找不到

Cannot find protocol declaration for CCTargetTouchDelegate

后来在 这里 找到解释说这两个协议在cocos2d 2.1 beta 3已经换了名字了。

CCTargetedTouchDelegate -> CCTouchOneByOneDelegate

CCStandardTouchDelegate -> CCTouchAllAtOnceDelegate

对应的调整过来就可以了。