且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《Cocos2d 跨平台游戏开发指南(第2版)》一1.4 访问主场景(MainScene)

更新时间:2021-12-31 23:41:55

本节书摘来异步社区《Cocos2d 跨平台游戏开发指南(第2版)》一书中的第1章,第1.4节,作者: 【印度】Siddharth Shekar(谢卡) 译者: 武传海 责编: 胡俊英,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.4 访问主场景(MainScene)

当启动应用时,将默认加载在SpriteBuilder中创建好的场景。下面,我们将打开MainScene文件并且稍微做一些修改,而后加载它以取代默认场景。

1.4.1 准备工作

到目前为止,MainScene.h和MainScene.m两个文件中没有任何代码。接下来,打开它们,并添加如下代码。

1.4.2 操作步骤

首先,打开MainScene.h文件,添加如下代码。

@interface MainScene :CCNode{

CGSizewinSize;
}

+(CCScene*)scene;

@end
接着,在MainScene.m文件中,添加如下代码。

#import "MainScene.h

@implementation MainScene

+(CCScene*)scene{

  return[[self alloc]init];

}

-(id)init{

  if(self = [super init]){

  winSize = [[CCDirectorsharedDirector]viewSize];

  }

  return self;
}

@end

然后,转到AppDelegate.m文件,它位于Source/Platforms下的iOS文件夹中,如图1-12所示。


《Cocos2d 跨平台游戏开发指南(第2版)》一1.4 访问主场景(MainScene)

在startScene函数中修改代码(粗体部分)如下:

(CCScene*) startScene
{

  //Comment or delete line below as shown
  //return [CCBReaderloadAsScene:@"MainScene"];

  //add below line instead
  return [MainScene scene];
}

至此,我们已经创建好一个完整的空白项目,供练习使用。

此时,如果你编译并运行空白项目,将只能看到一个黑色屏幕。为了确保我们的确为绘制做好了准备,并且保证绘制的内容能够显示在屏幕上,让我们添加一些用于更改背景颜色的基本代码。

在MainScene.m文件的init函数中,添加如下代码。

-(id)init{

  if(self = [super init]){

    winSize = [[CCDirectorsharedDirector]viewSize];

    CGPoint center = CGPointMake(winSize.width/2,
      winSize.height/2);

    //Background
    CCNode* backgroundColorNode = [CCNodeColor
      nodeWithColor:[CCColor
      colorWithRed:0.0f
      green:1.0
      blue:0.0]];
    [selfaddChild:backgroundColorNode];

  }


  return self;
}

在init函数中,首先初始化super init文件,而后获取当前设备的屏幕尺寸,再创建一个CGPoint类型的辅助变量,用来计算屏幕中心。

接着,我们创建一个新的CCNode,命名为backgroundColorNode,并调用CCNodeColor类和nodeWithColor函数。在其内,我们将传递红色、绿色、蓝色值。由于我想要绿色背景,所以我把绿色值设置为1,其他均设置为0。

最后,我们把backgroundColorNode添加到场景中。

1.4.3 工作原理

运行项目,观察刚才所做的更改,如图1-13所示。


《Cocos2d 跨平台游戏开发指南(第2版)》一1.4 访问主场景(MainScene)


此时,将只能看到一个绿色屏幕,它就是刚刚被添加到场景中的节点。如果你只想一个普通背景,而不想往项目中导入一幅图像,这是一种非常有用且快捷的方式,它让你能够轻松得到带有任何颜色的背景。