【cocos2dx-3.0beta-制作flappybird】千层饼的智慧—谈谈游戏主场景的分层以及最简单的背景层的实现

一、一个问题

首先,不妨思考一下,如果让你对整个游戏的主场景进行垂直(Z轴方向)分层,你会怎么分呢?


二、层

我想我们还是来对层这个概念下一个定义:"层是隶属于场景之下的游戏元素。通常一个复杂的场景会有多个层,一个层显示一部分视觉元素,空白部分为透明或半透明,以实现多个层的重叠显示。层与层之间按照顺序叠放在一起,就组成了一个复杂的场景。"

在这个游戏当中,我们把整个游戏场景分为四层:
1、背景层  backgroundLayer
2、游戏层  gameLayer
3、状态层  statusLayer
4、选项层  optionLayer

三、各层的作用

1、背景层:顾名思义,主要是游戏背景的显示
2、游戏层:小鸟+水管
3、状态层:游戏过程中分数的显示,根据游戏的不同阶段,显示游戏状态(开始、游戏进行中、游戏结束)
4、选项层:游戏触摸层,用于响应触摸事件

四、各层源码

    //GameScene.cpp

  // Add the background
  auto backgroundLayer = BackgroundLayer::create();
  if(backgroundLayer) {
   this->addChild(backgroundLayer);
  }
  auto statusLayer = StatusLayer::create();
  // Add the main game layer
  auto gameLayer = GameLayer::create();
  if(gameLayer) {
   gameLayer->setPhyWorld(this->getPhysicsWorld());
   gameLayer->setDelegator(statusLayer);
   this->addChild(gameLayer);
  }
  // Add the game status layer to show the score and game status
  if(statusLayer) {
   this->addChild(statusLayer);
  }
  // Add operation layer to control the game
  auto optionLayer = OptionLayer::create();
  if(optionLayer) {
   optionLayer->setDelegator(gameLayer);
   this->addChild(optionLayer);
  }

五、小结

本节简单地对游戏场景进行了分层的讨论,有关详细代码,请移步到github  https://github.com/OiteBoys/Earlybird

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值