1. 创建一个cocos2d工程
2. 创建一个新的场景:
步骤如下:
cmd+N 后选择ios -> cocoa touch -> Objective-C class
命名为:checkpoints_layer1 继承自 NSObject
3.修改场景文件
3.1 打开checkpoints_layer1.h
3.1.1 将父类改CCLayer // @interface checkpoints_layer1 : CCLayer
3.1.2 同时添加类的场景创建函数的声明:+(CCScene *) scene;
3.2 打开checkpoints_layer1.m
3.2.1 添加场景创建函数的实现如下:
+(CCScene *) scene
{
CCScene *scene = [CCScene node];
checkpoints_layer1 *layer = [checkpoints_layer1 node];
[scene addChild: layer];
return scene;
}
该函数的做用是用我们场景类checkpoints_layer1创建一个新的场景,并将期指针返回给调用者。
3.2.2 准备图片将其做为我们的场景的背景图
因为我打算只用在是iphone4(4S也一样)上,
所以做了一张640X960的背景图Checkpoints_bg1.PNG。
然后将该图片加到了工程中,并修改init函数让其显示出来,代码如下:
//用我们的背景图片创建一个sprite
CCSprite *bg = [CCSprite spriteWithFile:@"Checkpoints_bg1.PNG"];
// 将该实例加到我们的场景中来,因为我们当前只有一张图Z座标设置多少都一样我置的0,
// tag:1是今后用来在类的其它函数中得到该 实例时用的, 理论上将该值设置为一个枚举会更好,
// 我这是学习笔记,所以就直接写数值了。
[self addChild:bg z:0 tag:1];
//因为我设置了只做横屏的游戏,因为将该图片反转了90度
bg.rotation = -90;
//因为未设置锚点,所以按此不难算出将图显示在全屏的方法,很好理解
bg.position = CGPointMake(bg.texture.contentSize.height/2,bg.texture.contentSize.width/2);
4.将启动后的默认场景改为我们的新创建的checkpoints_layer1
在AppDelegate.m中找到applicationDidFinishLaunching函数
通常在该函数最后一行,有这样的话,将默认的hellowordlayer替换为我们的场景就可以了。
[[CCDirector sharedDirector] runWithScene: [checkpoints_layer1 scene]];
5.因为我打算做一个横屏的游戏所以要设置一下仅横屏有效
步骤如下:
RootViewController.m 文件中找到shouldAutorotateToInterfaceOrientation函数
将return YES改为下面的值, 代码中自动生成的注释写的也很清楚,直接放开即可。
return ( UIInterfaceOrientationIsLandscape( interfaceOrientation ) ); //仅横屏有效
return ( ! UIInterfaceOrientationIsLandscape( interfaceOrientation ) ); //仅竖屏有效
6. 编译运行
可以看到我们的场景已经出来, 表现出来的是我们加载到场景中的一张背景图,当然除了左下角的一个帧率别的都不会动。
注:该文章是我个人的学习笔记,并不是电子书,写的也不详细,请见谅 - xuanwenchao。