《Cocos2d 跨平台游戏开发指南(第2版)》一2.5 添加Gameplay场景

2.5 添加Gameplay场景

当按下play按钮时,游戏应该切换到另一个场景,为此我们需要创建一个新场景,以便从原来的场景切换到新场景。首先,让我们学习一下如何创建一个场景。

2.5.1 准备工作

现在,让我们添加gameplay场景。在第1章中,我们已经学习过如何创建文件,采用相同方法,创建GamePlayScene类文件。

2.5.2 操作步骤

如上,我创建了一个名为GamePlayScene类。GamePlayScene.h文件中包含的代码如下:

#import "CCScene.h"

@interface GameplayScene : CCNode

+(CCScene*)scene;
-(id)initWithLevel:(NSString*)lvlNum

@end
GamePlayScene.m文件包含如下代码:

#import "GameplayScene.h"
#import "cocos2d-ui.h"

@implementation GameplayScene
+(CCScene*)scene{

    return[[self alloc]initWithLevel:lvlNum];
}

-(id)initWithLevel:(NSString*)lvlNum{

  if(self = [super init]){

    CGSize winSize = [[CCDirector sharedDirector]viewSize];

    //Basic CCSprite - Background Image
    CCSprite* backgroundImage = [CCSprite spriteWithImageNamed:@
    "Bg.png"];
    backgroundImage.position = CGPointMake(winSize.width/2,
    winSize.height/2);
    [self addChild:backgroundImage];

    CCLabelTTF *mainmenuLabel = [CCLabelTTF labelWithString:@"Gameplay
    Scene" fontName:@"AmericanTypewriter-Bold" fontSize: 36.0f];
    mainmenuLabel.position = CGPointMake(winSize.width/2, winSize.
height
    * 0.8);
    self addChild:mainmenuLabel];

    CCLabelTTF *levelNumLabel = [CCLabelTTF labelWithString:lvlNum
    fontName:@"AmericanTypewriter-Bold" fontSize: 24.0f];
    levelNumLabel.position = CGPointMake(winSize.width/2, winSize.
height
    * 0.7);
    [self addChild:levelNumLabel];

    CCButton *resetBtn = [CCButton buttonWithTitle:nil
      spriteFrame:[CCSpriteFrame frameWithImageNamed:@
      "resetBtn_normal.png"]
      highlightedSpriteFrame:[CCSpriteFrame frameWithImageNamed:@
      "resetBtn_pressed.png"]
      disabledSpriteFrame:nil];

    [resetBtn setTarget:self selector:@selector(resetBtnPressed:)];

    CCLayoutBox * btnMenu;
    btnMenu = [[CCLayoutBox alloc] init];
    btnMenu.anchorPoint = ccp(0.5f, 0.5f);
    btnMenu.position = CGPointMake(winSize.width/2, winSize.height *
    0.5);

    [btnMenu addChild:resetBtn];
    [self addChild:btnMenu];

  }

  return self;
}

-(void)resetBtnPressed:(id)sender{

  CCLOG(@"reset button pressed");
}

@end

2.5.3 工作原理

GamePlayScene类与MainScene类相似,但是在其中,我们添加了自定义场景和init函数,以便向类中传入字符串形式的难度级别数字。

此外,我们也添加了一个用于显示当前游戏难度级别的标签。

同样地,目前GamePlayScene类不做任何事。但是,在接下来的部分中,我们将学习如何从一个场景过渡到gameplay场景,其中会显示我们当前选择的游戏难度级别。

时间: 2024-09-30 20:56:18

《Cocos2d 跨平台游戏开发指南(第2版)》一2.5 添加Gameplay场景的相关文章

《Cocos2d 跨平台游戏开发指南(第2版)》一导读

前 言 Cocos2d 跨平台游戏开发指南(第2版)自从2007年创始以来,Apple App Store一直保持着持续增长的势头,每天平均约有500个App提交.其中,大约80%的App是游戏.形成这种局面的部分原因是Apple构建了一个非常棒的生态系统,免费提供操作系统和IDE开发环境,便于普通开发者接触并使用它们.另一部分原因在于Cocos2d框架,它是目前应用最广泛的免费iOS游戏开发框架之一,借助它,开发者能够更方便地开发游戏和App应用. SpriteBuilder把Cocos2d集

《Cocos2d 跨平台游戏开发指南(第2版)》一2.3 使用CCLabel添加文本

2.3 使用CCLabel添加文本 在这一部分,我们将学习如何向场景中添加文本.在Cocos2d中,有两种方法可以用来向场景中添加文本:一种是使用CCLabelTTF类,另一种是使用CCLabelBMFont类.我们将在本书第9章的Glyph Designer一节中讲解CCLabelBMFont,本部分我们只讲解CCLabels,了解一下它们是如何工作的. 2.3.1 准备工作 CCLabelTTF使用Mac系统中现有的系统字体.在使用CCLabelTTF类时,我们只需指定要使用的字体名称.希望

《Cocos2d 跨平台游戏开发指南(第2版)》一2.8 添加难度选择场景

2.8 添加难度选择场景 在本部分中,我们将学习如何添加难度选择场景,其中包含多种难度选择按钮,当你按下某个按钮时,相应难度水平的游戏就会被加载进来. 2.8.1 准备工作 为了创建难度级别选择场景,你需要一个自定义精灵,用来显示按钮背景图片以及表示难度级别的数字.首先,我们要创建这些按钮. 在创建好按钮精灵之后,接下来我们要创建一个新场景,用来存放背景图像.场景名称.按钮数组,以及变换场景到指定游戏难度的逻辑. 2.8.2 操作步骤 首先,我们创建一个新的 Cocoa Touch 类,命名为L

《Cocos2d 跨平台游戏开发指南(第2版)》一1.1 内容简介

1.1 内容简介 在本章中,我们将介绍有关Cocos2d框架的一些基本知识,以便帮助各位了解相关概念.首先,了解下载并安装SpriteBuilder/Cocos2d的过程,然后讲解Cocos2d中使用的2D坐标系统. 在学完基础内容之后,接着介绍精灵的基本属性以及如何把它们添加到场景之中.我们将了解一下如何把一幅图像添加到精灵对象,并讨论如何创建一个占位精灵,以便在游戏原型阶段测试基本的游戏机制与冲突.然后,再学习如何使用gIPrimitives创建基本形状.在此之后,我们将讨论如何使用动作对精

《Cocos2d 跨平台游戏开发指南(第2版)》一1.3 2D坐标系统

1.3 2D坐标系统 在2D游戏开发中,我们只需考虑两种坐标系统,一种是屏幕坐标系统,另一种是对象坐标系统. 在2D中,无论何时,当我们把一个对象放置到屏幕上时,总是要考虑对象离屏幕的左下角有多远.这是因为坐标原点位于屏幕的左下角,而非屏幕的中心.正因如此,如果把一个精灵放置到屏幕上,并且未修过它的位置时,它将在屏幕的左下角被创建出来.请记住,屏幕坐标原点[(0,0)]位于屏幕的左下角.如图1-11所示,如果你想把精灵放置到屏幕的中心,需要把精灵位置设置为位置属性中宽与高的一半.由于所有对象的位

《Cocos2d 跨平台游戏开发指南(第2版)》一2.7 添加过渡效果

2.7 添加过渡效果 如果你认为添加过渡效果十分酷炫,你可以在Cocos2d中添加切换场景时的过渡效果,这十分简单. 2.7.1 准备工作 我们真正需要做的是,在playBtnPressed函数中,使用设置过渡效果的代码代替前面所写的代码.创建过渡效果时,需要使用CCTransition类. 2.7.2 操作步骤 在playBtnPressed函数中,使用如下粗体代码代替上一节编写的代码. -(void)playBtnPressed:(id)sender{ CCLOG(@"play button

《Cocos2d 跨平台游戏开发指南(第2版)》一1.6 使用RenderTexture创建精灵

1.6 使用RenderTexture创建精灵 RenderTexture用来创建占位精灵,它们可以用来构建游戏原型.如果你想测试精灵的移动.跳跃代码,但又不想访问精灵,使用RenderTexture是创建精灵既快速又直接的方式. 1.6.1 准备工作 为了创建RenderTexture精灵,我们将编写一个新函数,当我们给出要创建精灵的尺寸与颜色时,它将创建并返回创建好的精灵. 1.6.2 操作步骤 在MainScene.h文件中,之前我们创建了scene函数,在该函数之下,添加如下粗体代码.

《Cocos2d 跨平台游戏开发指南(第2版)》一1.10 绘制gIPrimitives

1.10 绘制gIPrimitives Cocos2d使用openGLES,它是一个图形库,用来把对象显示在屏幕上.其实,到目前为止我们所有的绘图工作都依赖于这个图形库.Cocos2d也允许你访问gIPrimitives,使用它可以创建基本形状,如圆形.正方形.矩形等. 1.10.1 准备工作 现在,让我们一起看几个示例.我们将从创建一个简单的圆形开始. 1.10.2 操作步骤 在添加好hero节点之后,添加如下代码: //drawDotNode CCDrawNode* dotNode = [C

《Cocos2d 跨平台游戏开发指南(第2版)》一1.2 下载并安装Coscos2d

1.2 下载并安装Coscos2d 在创建并运行Cocos2d项目之前,必须先安装SpriteBuilder与Xcode.在本部分中,我们将简单地介绍一下如何安装它们. 1.2.1 准备工作 首先到http://cocos2d.spritebuilder.com下载Coscos2d,并进行安装. 目前Spritebuilder已成为Cocos2d的官方安装程序.单击Cocos2d-SpriteBuilder installer链接,随后打开Mac App Store Preview页面,而后完成