摘要: 一、添加 Quartz Core 框架要使用 Quartz Core 框架,你需要将其添加到你的工程中 。 然后 #import <Quartz Core/QuartzCore.h> 二、认识图层对 ps 有所了解的人都知道图层的概念,在这里也一样。在PS中一张图片至少得有一个图层,一个或多个图层的叠加构成了一张位图。我们这里一个或多个图层的叠加的构成了UIView(或其派生类)对象。看过我关于 UIView 文章的人可能会有疑问:UIView 和图层没啥区别啊?NO,还是有区别的,图层是有弹性的,你可以操纵图层,使 UIView 有各种效果,比如三维效果,形变等等。要访问一个图层 阅读全文
posted @ 2012-05-04 22:57 高笑228 阅读(570) 评论(0) 推荐(0) 编辑
摘要: iphone 中2d的仿射变换共有3种形式:1.Translate 位移对应方法有:CGAffineTransform CGAffineTransformTranslate(CGAffineTransform t, CGFloat tx, CGFloat ty);CGAffineTransform CGAffineTransformMakeTranslation(CGFloat tx, CGFloat ty);注:t 代表相对变换,tx,ty 代表相对位移2.Scale 缩放对应方法有:CGAffineTransform CGAffineTransformScale(CGAffineTran. 阅读全文
posted @ 2012-05-04 21:49 高笑228 阅读(597) 评论(0) 推荐(0) 编辑
摘要: 添加一个软断点 Run->Manage Breakpoints -> Add symbolic breakpoint, 并输入 objc_exception_throw 阅读全文
posted @ 2012-05-04 14:28 高笑228 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 例子:@property(nonatomic,retain) NSString *aString;property:属性的定义,相当于C语言的setter和getter方法。assign:简单的赋值,不更改索引的计数。copy:建议一个索引计数为1的对象,然后释放旧对象;retain:释放旧对象,将旧对象的值赋予新对象,再增加新对象的索引计数1。针对具体的数据类型在属性定义应该这样选择:使用assign:对基础的数据类型,比如NSInterger,CGFloat和C数据类型(int,float,double,char等等)。使用copy:针对NSString;使用retain:针对NSObje 阅读全文
posted @ 2012-05-04 11:11 高笑228 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 方法1-(void)earthquake:(UIView*)itemView{ CGFloat t =2.0; CGAffineTransform leftQuake =CGAffineTransformTranslate(CGAffineTransformIdentity, t,-t); CGAffineTransform rightQuake =CGAffineTransformTranslate(CGAffineTransformIdentity,-t, t); itemView.transform = leftQuake; // starting point... 阅读全文
posted @ 2012-05-04 10:21 高笑228 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 当button的属性 isSelected 设置为YES的时候 button 的状态UIControlStateHighlighted 就会无效 阅读全文
posted @ 2012-05-04 09:56 高笑228 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 作为一个新手,运行他人的程序build时往往会在+ (id) layerWithColor:(ccColor4B)color{ return [[[self alloc] initWithColor:color] autorelease]; // <- ERROR HERE}处出现以下报错:Sending 'ccColor4B' (aka 'struct_ccColor4B') to parameter of incompatible type 'CIColor *'google了一下,发现问题在这里:+ (id) layerWithCol 阅读全文
posted @ 2012-04-28 14:48 高笑228 阅读(862) 评论(0) 推荐(0) 编辑
摘要: 在一个使用cocos2d的项目中,当切换关卡或者说切换layer时,经常需要释放上一个关卡或者layer中使用的图片资源,这个时候需要用到下面两个函数:[CCSpriteFrameCache sharedSpriteFrameCache] removeUnusedSpriteFrames];[CCTextureCache sharedTextureCache] removeUnusedTextures];注意:一定不要忘了调用CCSpriteFrameCache的removeUnusedSpriteFrames函数,因为每一个 CCSpriteFrame实例都retain了一个CCTextur 阅读全文
posted @ 2012-04-26 14:19 高笑228 阅读(2758) 评论(1) 推荐(0) 编辑
摘要: 分为5个步骤1,缓冲sprite帧和纹理[[CCSpriteFrameCache sharedSpriteFrameCache]addSpriteFramesWithFile@"bear.plist"];首先,调用CCSpriteFrameCache的addSpriteFramesWithFile方法,然后把Zwoptex生成的plist文件当作参数传进去。这个方法做了以下几件事:寻找工程目录下面和输入的参数名字一样,但是后缀是.png的图片文件。然后把这个文件加入到共享的CCTextureCache中。(这我们这个例子中,就是加载AnimBear.png)解析plist文 阅读全文
posted @ 2012-04-26 13:01 高笑228 阅读(877) 评论(0) 推荐(0) 编辑
摘要: CCAnimate动作使用了一个CCAnimation对象(它是一个包含所有动画帧的容 器),定义了每一帧之间的延迟,同时也给了这个动画一个命名。动画的名称 很有用,因为你可以用这个名称来存储CCSprite节点里面的动画。你可以通过动画名称来访问部份动画: CCSprite类可用于存储动画。之后你可以通过动画名称来获取相对应的动画 CCAnimation* anim = [CCAnimation animationWithName:@"move" delay:1 frames:frames]; // 将动画储存在CCSprite节点中 [mySprite addAnima 阅读全文
posted @ 2012-04-26 10:48 高笑228 阅读(2770) 评论(0) 推荐(0) 编辑