The Director(导演)
CCDirector类的主要作用:
1访问和改变场景
2访问cocos2d的配置细节
3访问视图(OpenGL,UIView,UIWindow)
4暂停、恢复和结束游戏
5在UIKit和OpenGL之间转换坐标
CCNode
1.CCNode是所有节点的基类,抽象类
2.使用
生成一个新节点:
CCNode *childNode = [CCNode node];
将新节点添加为子节点:
[myNode addChild:childNode z:0 tag:100];
获取子节点
CCNode *retrievedNode = [myNode getChildByTag:100];
通过tag删除子节点(cleanup会停止任何运行中的动作)
[myNode removeChildByTag:100 cleanup:YES];
通过节点指针删除节点
[myNode removeChild:retrievedNode];
删除一个节点的所有子节点
[myNode removeAllChildrenWithCleanup:YES];
从myNode的父节点删除myNode
[myNode removeFromParentAndCleanup:YES];
Actions
声明一个动作
CCAction *action = [CCBlink actionwithDuration:10 blinks:20];
action.tag = 101;
运行这个动作会让借点闪烁
[myNode runAction:action];
如果你想在以后使用此动作,你可以用tag值获取
CCAction *retrievedAction = [myNode getActionByTag:101];
使用tag停止相关联的动作
[myNode stopActionBytag:101];
用动作指针停止动作
[myNode stopAction:action];
停止所有在此节点上运行的动作
[myNode stopAllActions];
预定信息
每一帧都会被调用的更新方法
-(void )scheduleUpdates
{
//系统默认
[self scheduleUpdate];
//自定义每秒调用10次的更新方法
//[self schedule:@selector(UpdateTenTimesPerSecond:) interval:0.1f];
}
-(void)update:(ccTime)delta
{
//此方法每一帧都会被调用
}
停止所有选择器
[self unscheduleAllSelectors];
停止指定选择器
[self unschedule:@selector(updateTenTimesPerSecond:)];//无法停止
scheduleUpdate中设置的预定更新方法
_cmd关键词停止当前方法的预定
-(void) UpdateTenTimesPerSecond:(ccTime) delta
{
[self unschedule:_cmd]; //只运行一次
//新的更新时间间隔
float nextUpdate = 600;
[self schedule:_cmd interval:nextUpdate]; //重新预定方法调用
}
设置场景
[[CCDirector sharedDirector] pushScene:[Settings scene]];
关闭设置场景
[[CCDirector sharedDirector] posScene];
replaceScene设置过渡场景
[[CCDirector sharedDirector] replaceScene:(CCTransitionScene的子类)scene];