Cocos2d精灵-剧场-节目

来源:互联网 发布:香港中文大学深圳 知乎 编辑:程序博客网 时间:2024/04/28 20:21
Cocos-2d
常用方法
CCArray *children
CCNode *parent
CGPoint position 
CGSize contentSize


(1)-(void)addChild:(CCNode *)child  往一个对象中加一个孩子    类似于UIView中的addSubView


(2)-(void)removeFromParentAndCleanup:(BOOL)cleanup;把一个对象从父亲中删除   类似于removeFromSuperView (孩子主动从父亲中移除)
|
|
|
V
是否停止它所有的动作

(3)-(void)removeChild:(CCNode *)child cleanup:(BOOL)cleanup;父亲主动删除一个孩子
|
|
|
V
孩子的对象



CCNode 存放私有字段
1、@property (nonatomic,readwrite,assign) NSInteger tag;
与UIView中tag类似,存放一些整形变量

2、@property (nonatomic,readwrite,assign) void *userData;
可以存放一些自己的指针,userData可以存放任何类型,如:数结构,对象,id类型的对象
可以存放一些物理引擎中的对象(Box-2d)
 
3、-(CCNode *)getChildByTag:(NSInteger) aTag;
类似于UIView中的findviewById,findviewByTag




精灵方法
+(id)spiriteWithFile:(NSString *)filename; 类方法  (也有alloc init的实例方法)
//+(id) node
//{
// return [[[self alloc] init] autorelease];
//}
先要传进去一个文件名(一般情况下是一张图片,这一张图片是一个精灵的一个对象)
对于可以动的精灵来说,这个图片可能不是一张,是一大堆图片




+(id)spiriteWithFile:(NSString *)filename rect:(CGRect)rect;
|
|
|
V
这个精灵我会限制在某一个矩形的区域内
因为精灵CCSpirite继承了CCNode:所以他就有CCNode中所有的方法和属性










CCScene剧场基类
+(id)scene{
    //(node是CCNode中的一个方法做一个简单的分配内存初始化,做一个构造函数,相当于alloc init)
CCScene *sc=[CCScene node];
//Loading这个方法是创建一个有意义的剧场(节目)
LoadingScene *ls=[LoadingScene node];
//把这个有意义的剧场加到ls这个剧场里面去,就可以吧ls这个剧场加到sc这个剧场里面去
//这样sc这个剧场就是一个总的剧场,它里面有真正的内容
[sc addChild:ls];
//返回这个剧场的根的指针
return sc;


}



导演运行剧场
//首先会拿到这个剧场的对象 通过LoadingScene中的scene这个类方法来拿到这个剧场
CCScene *scene=[LoadingScene scene];
//用导演类中的runWithScene这个方法,让这个导演运行这个剧场
//[CCDirector sharedDirector]拿到一个导演,(只有一个导演,通过单例模式就取得了唯一的一个导演)
//runWithScene运行第一个剧场
[[CCDirector sharedDirector]runWithScene:scene];