错误代码如下

此时layer1被释放

经检查setContainer发现里面有一句this->removeAllChildrenWithCleanUp(true)

把layer1和layer2的添加顺序置换后问题消失

在实现运动中,常常需要实现一些加速度或者减速度的效果

Cocos2d-X引擎为我们提供了相应的实现接口,这样就不用再用原来的公式计算方法来实现加减速度的效果.

Ease系列的方法改变了运动的速度,但是并没有改变总体时间.如果整个动作持续5s,那么整个时间仍然会持续5s.

这些动作可以分成三类:

  • In actions:action(开始的时候加速)
  • Out action:action(结束的时候加速)
  • InOut actions:action(开始呵结束的时候加速)

CCActionEase有很多子类,根据不同的缓冲公式来模拟加减速过程.缓冲动作的具体内容如下:

  1. 指数缓冲:分别为CCEaseExponentialIn,CCEaseExponentialOut,CCEaseExponentialInOut
  2. 赛因缓冲:分别为CCEaseSineIn,CCEaseSineOut,CCEaseSineInOut
  3. 跳跃缓冲:分别为CCEaseBounceIn,CCEaseBounceOut,CCEaseBounceInOut
  4. 弹性缓冲:分别为CCEaseElasticIn,CCEaseElasticOut,CCEaseElasticInOut
  5. 回震缓冲:分别为CCEaseBackIn,CCEaseBackOut,CCEaseBackInOut

相关文章:http://jianyu996.blog.163.com/blog/static/1121145552012102293653906/

初学iOS开发,目前尝试用xib来构建UI

构建时有2种常用的方式:initWithNibName和loadNibNamed

我最初接触到的,是自定义一个复杂的UITableViewCell

然后在setData里做一些替换UI文字和图片的工作

于是乎,下一个ViewController我也这么做

报错 发现[[NSBundle mainBundle] loadNibNamed:@”MyViewController” owner:self options:nil][0]是一个UIView对象

没关系,UIViewController不是还提供了initWithNibName:bundle:方法么,于是乎

编译通过,但是奇怪的是,initWithNibName:bundle:里的自定义代码没有生效,发现xib里映射的对象全是nil

经过搜索查证,发现应该把自定义代码放在viewDidLoad里面

其实Xcode在生成文件模版的时候也提示开发者了

init的时候Custom initialization

viewDidLoad才是Do any additional setup after loading the view

 

转自http://wangwenhao.net/2011/10/26/the-property-in-ios-develop/

大家都知道@property和@synthesize可以自动生成某个类成员变量的存取方法,但可能对property中的一些属性不是很了解,网上的一些介绍有的不是很正确,感觉会误导新手,于是准备详细介绍一下property中的详细属性。

先介绍一下默认的情况:

readwrite:这个属性是默认的情况,会自动为你生成存取器

assign:这个属性一般用来处理基础类型,比如int、float等等,如果你声明的属性是基础类型的话,assign是默认的,你可以不加这个属性

对于assign来说,他的存取器代码是这样的:

natomic:默认是有该属性的,这个属性是为了保证程序在多线程情况,编译器会自动生成一些互斥加锁代码,避免该变量的读写不同步问题。

然后说一下其他的情况:

readonly:只生成getter不会有setter方法

copy:这个会自动生成你赋值对象的克隆,相当于在内存中新生成了该对象的副本,这样一来,改变赋值对象就不会改变你声明的这个成员变量了

retain:会自动retain赋值对象,具体实现如下:

 

可见首先要判断一下当前myField是否就是新赋值来的对象,如果不是要将自己release掉,之后才会进行赋值及retain。

nonatomic:如果该对象无需考虑多线程的情况,请加入这个属性,这样会让编译器少生成一些互斥加锁代码,可以提高效率。

 

现在个人云如火如荼,而且写代码经常多线作战,为了更好的同步代码,决定把git仓库建立到个人云上去

可供选择:百度云,坚果云

 

等百度盘同步完成后 从别的机器上就可以直接clone下来了

适用于单人多机器的开发模式

 

原文http://cn.quick-x.com/?p=1539 是基于quick-x的

为了方便在我们工程中使用,我把它写成了cocos2dx的,并增加了吞噬事件的开关

 

 

  1. BBUncrustifyPlugin
    https://github.com/benoitsan/BBUncrustifyPlugin-Xcode
    一个代码格式化插件,从eclipse的java一键格式化过来,发现xcode代码格式化真蛋疼,还好发现这个插件
  2. VVDocumenter
    https://github.com/onevcat/VVDocumenter-Xcode
    一个生成规范化注释的插件,java里习惯用javadoc的形式注释方法,xcode下也有,用"///"触发
  3. FuzzyAutocomplete
    https://github.com/chendo/FuzzyAutocompletePlugin
    都知道sublime的模糊匹配很好用,但是xcode默认是从头匹配,有这个插件就好了
  4. ColorSense
    https://github.com/omz/ColorSense-for-Xcode
    有这个插件就可以可视化的看到颜色具体是什么样子的了
  5. KSImageNamed
    https://github.com/ksuther/KSImageNamed-Xcode
    有这个插件,直接输入"[UIImage imageNamed:",就可以直接选图片了,还可以看见图片的预览

 

以上插件通用安装方式,git clone,build,有些是会自己复制到安装目录,如果没有的话,请将编译好的文件拷贝到~/Library/Application Support/Developer/Shared/Xcode/Plug-ins下,没有可以新建一个,装完插件记得重启xcode

BUG表现为,cocos2dx的工程下,在能输入文字的地方,点击iOS键盘上的"话筒"按钮,进行听写,此时APP直接崩溃

 

解决方法:

在CCDirectorCaller.mm文件里修改 doCaller方法

 

添加头文件

 

 

再次实验后问题消失

环境:cocos2dx 2.1rc0-x-2.1.4
ios7.0.6

https://github.com/boyu0/cocos2d-x/commit/c3778d8123537f0e991e98c2d89d3e577e3120f1

一. 源文件

  1. 文件采用UTF-8编码
  2. 文件后缀为小写的"lua" 

二. 命名

  1. 类(class)文件名使用大驼峰式
  2. 普通文件名,变量名,函数名使用小驼峰式
  3. 变量名尽量绕开系统保留字
  4. 全局变量使用全大写,以"_"分割单词
  5. 命名尽量用有意义的英文
  6. 如果单词过长,可使用缩写
  7. 英文单词过于复杂时,才能使用拼音 

三. 排版

  1. 使用't'(tab)进行代码缩进
  2. 比较符(=,==,>,>=,<,<=),连接符(..),运算符(+,-,*,/,%,^)左右需要有空格
  3. 逗号前不需要空格,逗号后需要有空格
  4. 括号不需要空格
  5. 函数之间用空行隔开
  6. 代码块含义不同时,用空行隔开
  7. 不允许一次使用多个空行
  8. if,for,while等语句独立成行
  9. 一次只声明一个变量 

四. 注释

  1. 单行注释用"–"
  2. 多行注释用"–[[ –]]"
  3. 注释区域
     版本,版权说明
    类说明,文件说明
    函数接口说明
    变量,全局变量
    重要代码块
  4. 注释上方需要空行,下方不需要

五. 其他

  1. 判空初始化
  2. 三元运算