cocos2d学习笔记第一章 基础场景创建及基本配置

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。



你可能感兴趣的:(cocos2d,layer,cocoa,interface,游戏,iphone,class)