框架
cocos2d Sources:存放cocos2d源代码
Classes:存放本应用程序源代码
Other Sources: 程序的入口main函数
Resources:存放项目的图片、图标、声音文件等等
Frameworks:框架
启动流程
int main(int argc, char *argv[]) {
NSAutoreleasePool *pool = [NSAutoreleasePool new];
NSAutoreleasePool *pool = [NSAutoreleasePool new];
//程序的控制权传递给了应用代理程序对象xAppDelegate
int retVal = UIApplicationMain(argc, argv, nil, @"xxAppDelegate");
int retVal = UIApplicationMain(argc, argv, nil, @"xxAppDelegate");
[pool release];
return retVal;
}
return retVal;
}
@interface xxAppDelegate: NSObject <UIApplicationDelegate> { 遵守系统定义的应用程序协议
UIWindow *window;
}
UIWindow *window;
}
xxAppDelegate需要处理的系统事件:
//放弃控制权
- (void)applicationWillResignActive:(UIApplication *)application {
[[CCDirector sharedDirector] pause];
}
//获得控制权
- (void)applicationDidBecomeActive:(UIApplication *)application {
[[CCDirector sharedDirector] resume];
}
//内存报警
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
[[CCDirector sharedDirector] purgeCachedData];
}
//按home键程序在后台
-(void) applicationDidEnterBackground:(UIApplication*)application {
[[CCDirector sharedDirector] stopAnimation];
}
//程序回到前台
-(void) applicationWillEnterForeground:(UIApplication*)application {
[[CCDirector sharedDirector] startAnimation];
}
//程序退出
- (void)applicationWillTerminate:(UIApplication *)application{
[[CCDirector sharedDirector] end];
}
//系统时间变化
- (void)applicationSignificantTimeChange:(UIApplication *)application {
[[CCDirector sharedDirector] setNextDeltaTimeZero:YES];
}
- (void)applicationWillResignActive:(UIApplication *)application {
[[CCDirector sharedDirector] pause];
}
//获得控制权
- (void)applicationDidBecomeActive:(UIApplication *)application {
[[CCDirector sharedDirector] resume];
}
//内存报警
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application {
[[CCDirector sharedDirector] purgeCachedData];
}
//按home键程序在后台
-(void) applicationDidEnterBackground:(UIApplication*)application {
[[CCDirector sharedDirector] stopAnimation];
}
//程序回到前台
-(void) applicationWillEnterForeground:(UIApplication*)application {
[[CCDirector sharedDirector] startAnimation];
}
//程序退出
- (void)applicationWillTerminate:(UIApplication *)application{
[[CCDirector sharedDirector] end];
}
//系统时间变化
- (void)applicationSignificantTimeChange:(UIApplication *)application {
[[CCDirector sharedDirector] setNextDeltaTimeZero:YES];
}
通过凼数 applicationDidFinishLaunching 将程序的控制权传递给 Cocos2D-iPhone 类库
Cocos2D-iPhone 接下来开始准备启动主画面:
1.获得主窗口对象(句柄)由成员 window 保存,将 Cocos2D-iPhone 的“导演”对象与之绑定。
2. 设置“导演”对象的基本属性,最好启动并运行场景
- (void) applicationDidFinishLaunching:(UIApplication*)application
{
CCDirector *director = [CCDirector sharedDirector];
//设置“导演”对象的属性...
//导演对象启动并运行场景
[[CCDirector sharedDirector] runWithScene: [HelloWorld scene]];
}
{
CCDirector *director = [CCDirector sharedDirector];
//设置“导演”对象的属性...
//导演对象启动并运行场景
[[CCDirector sharedDirector] runWithScene: [HelloWorld scene]];
}