04 2012 档案
摘要:作为一个新手,运行他人的程序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
阅读全文
摘要:在一个使用cocos2d的项目中,当切换关卡或者说切换layer时,经常需要释放上一个关卡或者layer中使用的图片资源,这个时候需要用到下面两个函数:[CCSpriteFrameCache sharedSpriteFrameCache] removeUnusedSpriteFrames];[CCTextureCache sharedTextureCache] removeUnusedTextures];注意:一定不要忘了调用CCSpriteFrameCache的removeUnusedSpriteFrames函数,因为每一个 CCSpriteFrame实例都retain了一个CCTextur
阅读全文
摘要:分为5个步骤1,缓冲sprite帧和纹理[[CCSpriteFrameCache sharedSpriteFrameCache]addSpriteFramesWithFile@"bear.plist"];首先,调用CCSpriteFrameCache的addSpriteFramesWithFile方法,然后把Zwoptex生成的plist文件当作参数传进去。这个方法做了以下几件事:寻找工程目录下面和输入的参数名字一样,但是后缀是.png的图片文件。然后把这个文件加入到共享的CCTextureCache中。(这我们这个例子中,就是加载AnimBear.png)解析plist文
阅读全文
摘要:CCAnimate动作使用了一个CCAnimation对象(它是一个包含所有动画帧的容 器),定义了每一帧之间的延迟,同时也给了这个动画一个命名。动画的名称 很有用,因为你可以用这个名称来存储CCSprite节点里面的动画。你可以通过动画名称来访问部份动画: CCSprite类可用于存储动画。之后你可以通过动画名称来获取相对应的动画 CCAnimation* anim = [CCAnimation animationWithName:@"move" delay:1 frames:frames]; // 将动画储存在CCSprite节点中 [mySprite addAnima
阅读全文
摘要:cocos2d中有3种回调方式:CCCallFunc、CCCallFuncN和CCCallFuncND其中,他们有什么区别呢?这里我稍微总结下,不对的欢迎讨论和拍砖!看源代码的excute方法,我总结下面3点:1.CCCallFuncC代码 -(void)execute{[targetCallbackperformSelector:selector];}CCCallFunc是执行对应的回调方法,其中回调方法不可带参数。2.CCCallFuncNC代码 -(void)execute{[targetCallbackperformSelector:selectorwithObject:target]
阅读全文
摘要:今天在iPhone开发过程中,遇到一个需要生成随机数的问题。很快rand()和arc4random()都进入了考虑范围,但选择的时候感觉有点为难。之前的时候可能没有思索就随便挑一个用了,不过这次良心发现不能太随便了。rand() 和arc4random()到底应该如何取舍呢?调查了下,发现下文很好地解答了这个问题。在iPhone中有几个内嵌的随机数发生器,很多人的第一反应可能就是在调用如下函数后使用rand():srandom(time(NULL));但是……,rand()实际并不是一个真正的伪随机数发生器,random()会相对好点,但也不算理想。幸运的是iPhone上还有其他的选择。个人来
阅读全文
摘要:在cocos2d-iphone 1.0版本以后将CCColorLayer改为了CCLayerColor两种方法更换背景方法一 CCLayerColor *layerColor = [CCLayerColor layerWithColor:ccc4(255, 0, 255, 255)]; [self addChild:layerColor z:0];方法二新建自己的类#import <Foundation/Foundation.h>#import "cocos2d.h"@interface cccolor : CCLayerColor { }@end@implem
阅读全文
摘要:第一种保存方式:NSKeyedArchiver代码很简单就不多解释了直接上代码: //=================NSKeyedArchiver========================NSString *saveStr1 = @"我是";NSString *saveStr2 = @"数据";NSArray *array = [NSArray arrayWithObjects:saveStr1, saveStr2, nil];//----Save//这一句是将路径和文件名合成文件完整路径NSString *Path = [NSSearchPa
阅读全文
摘要:关于精灵的各种操作,总结一下以便以后复习查找。内容简要:1、初始化 2、创建无图的精灵 3、设置精灵贴图大小 4、添加入层中 5、对精灵进行缩放 6、对精灵款或高进行缩放 7、旋转精灵 8、设置精灵透明度 9、精灵的镜像反转 10、设置精灵的颜色 11、得到图的宽高 12、按照像素设定图片大小 13、在原有的基础上加xy的坐标 14、设置图片锚点 15、从新排列z轴顺序 16、更换精灵贴图 17、设置可视区域 原文地址:http://blog.csdn.net/dingkun520wy/article/details/6976558-------------...
阅读全文
摘要:SIGABRT 一般是过度release 或者 发送 unrecogized selector导致EXC_BAD_ACCESS 是访问已被释放的内存导致
阅读全文
摘要:1、首先引入libz.dylib框架2、到http://code.google.com/p/ziparchive/downloads/list下载所需要的第三方文件,并将其导入到项目中。3、解压缩ZIP文件代码如下: #import "ZipArchive.h" NSString *documentPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches"]; ZipArchive *zipArchive = [[[ZipArchive alloc]init]aut
阅读全文
摘要:CCSpriteBatchNode的作用很像CCLayer,因为它本身并不显示在屏幕上。不过 你只能把CCSprite加入CCSpriteBatchNode。CCSpriteBatchNode 将一个图片文件名作为参数,使用这个参数的原因是所有被添加进 CCSpriteBatchNode的CCSprite节点都必须使用同一个图片文件。如果你没有在 CCSprite中使用相同的图片,你将会在调试窗口中得到以下报错信息: SpriteBatches[13879:207] *** Terminating app due to uncaught exception 'NSInternalInc
阅读全文
摘要:在某个类中声明一个static 静态变量, 其他类中想使用它或者修改它不用new 这个对象 ,直接使用它的类名方可直接拿到这个静态变量的对象,遍可以在其他类中任意修改这个变量的数值。 在Objective-C 的语法中声明后的static静态变量在其他类中是不能通过类名直接访问的,它的作用域只能是在声明的这个.m文件中 。不过可以调用这个类的方法间接的修改这个静态变量的值。通过一个例子详细的解析一下static关键字的使用。MyClass.h警告: static 写在interface外面编译是没有错误的,但是编译器会报警告,这么说这样的写法是不被编辑器认可的。错误:static 写...
阅读全文
摘要:NSString *a = [[NSString alloc]initWithString:@"hello"]; NSString *b = [a copy]; NSLog(@"%d %d",a.retainCount, b.retainCount);// 2,2 NSMutableString *f = [a mutableCopy]; NSLog(@"%d %d",a.retainCount, f.retainCount);// 2,1 [f appendString:@"dd"]; NSLog(@"
阅读全文
摘要:阅读本文之前首先了解copy与retain的区别,如果有不正确的地方望大家多多指教:copy与retain的区别:copy是创建一个新对象,retain是创建一个指针,引用对象计数加1。Copy属性表示两个对象内容相同,新的对象retain为1 ,与旧有对象的引用计数无关,旧有对象没有变化。copy减少对象对上下文的依赖。 retain属性表示两个对象地址相同(建立一个指针,指针拷贝),内容当然相同,这个对象的retain值+1也就是说,retain 是指针拷贝,copy 是内容拷贝。当然在ios中并不是所有的对象都支持copy,mutableCopy,遵守NSCopying 协议...
阅读全文
摘要:CCDirector类,简称Director(导演),是cocos2d游戏引擎的核心。 Director是一个单例:它保存着 cocos2d的全局配置设定,同时管理着cocos2d的场景。 Director的主要用处如下:1. 访问和改变场景2. 访问cocos2d的配置细节3. 访问视图(OpenGL,UIView,UIWindow)4. 暂停,恢复和结束游戏5. 在UIKit和OpenGL之间转换坐标除了场景本身,每一个节点只有一个父节点,但是可以有任意数量的子节点。在最上面,你总是放置场景节点(MyScene),通常跟着的 是一个层节点(MyLayer)。在cocos2d里,层节点的作用
阅读全文
摘要:单例模式确保某一个类只有一个实例,单例模式三个要点1,某个类只能有一个实例2,它必须自行初始化3,必须自行向整个系统提供这个实例单例的好处是它可以在任何地点被任何类所调用。它接近于全局类的作用,更像一个全局变量。如果你需要在任何地方都能用到某些数据或方法,单例是很好的选择。
阅读全文
摘要:1.首先要明确的是,不使用pushViewController的默认动画,所以在调用这个函数时,要将animated设置为NO. 2.使用普通的来CATransition实现转换效果,代码如下:CATransition *animation = [CATransition animation];[animation setDuration:0.3];[animation setType: kCATransitionMoveIn];[animation setSubtype: kCATransitionFromTop];[animation setTimingFunction:[CAMedia.
阅读全文
摘要:1、在Mac OS中NSWindow的父类是NSResponder,而在i OS 中UIWindow 的父类是UIVIew。程序一般只有一个窗口但是会又很多视图。2、UIView的作用:描画和动画,视图负责对其所属的矩形区域描画、布局和子视图管理、事件处理、可以接收触摸事件、事件信息的载体、等等。3、UIViewController 负责创建其管理的视图及在低内存的时候将他们从内存中移除。还为标准的系统行为进行响应。4、layOutSubViews 可以在自己定制的视图中重载这个方法,用来调整子视图的尺寸和位置。5、 UIView的setNeedsDisplay和setNeedsLayout方
阅读全文
摘要:UIControlEventTouchEnter这个事件我发现是这样触发的 当你点击button后,手指移出button界外,然后在回到button界内就触发这个事件了
阅读全文
摘要:-(void)viewDidLoad { [super viewDidLoad]; // create a new button UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [button setTitle:@"Drag me!" forState:UIControlStateNormal]; // add drag listener [button addTarget:self action:@selector(wasDragged:withEvent:) fo...
阅读全文
摘要:默认情况下,我们向一个View中添加一个子View时,子View的越界部分也会显示出来,当然超过屏幕部分是显示不出来,因为无法在你手上显示内容了。看下面的图:上图中,橙色的View是蓝色View的子View。看左图,由它们的Frame设置,橙色的View部分超出的蓝色View的区域,默认情况下,蓝色View超出部分也会显示出来,除非在屏幕之外的部分。而我们有时候不想要这种行为,希望越界部分不显示出来,像右图所示那盘。比如我们可能期望橙色View的动画效果只在它的父View,即蓝色View之内展现。其实问题很简单,正如标题中所提示的那个 clipToBounds属性,字面意思是裁减到边界,就是超
阅读全文
摘要:修改plist文件 首先必须保证plist文件存在于Library 或者Documents中 建议把plist文件放在Library/Caches中(问过高手,放在这两个文件中有啥区别,高手说 苹果官方审查制度规定 最好把文件放在Library/Caches 中 ,否则苹果会不允许你的APP上架销售) NSString *documentPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches"]; tempstr = [documentPath stringByAppendingPa
阅读全文
摘要:NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *documentPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library/Caches"]; NSString* tempstr = [documentPath stringByAppendingPathComponent:@"menu.plist"]; if (![fileManager fileExistsAtPath:tempstr]
阅读全文
摘要:NSString *path = NSHomeDirectory();上面的代码得到的是应用程序目录的路径,在该目录下有三个文件夹:Documents、Library、temp以及一个.app包!该目录下就是应用程序的沙盒,应用程序只能访问该目录下的文件夹!!!请参考下面的例子:1、NSString *path1 = NSHomeDirectory();NSLog(@"path1:%@", path1);path1:/Users/yuanjun/Library/Application Support/iPhone Simulator/4.2/Applications/172
阅读全文
摘要:在iPhone开发中,使用全局变量有这么几种实现方法:1、在AppDelegate中声明并初始化全局变量 然后在需要使用该变量的地方插入如下的代码: //取得AppDelegate,在iOS中,AppDelegat被设计成了单例模式 AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; appDelegate.Your Variable2、使用 extern 关键字2.1 新建Constants.h文件(文件名根据需要自己取),用于存放全局变量;2.2 在Constants.h中写入你需要...
阅读全文

浙公网安备 33010602011771号