一、Block类介绍

当然啦,Block类在这个游戏里就是必需品= =,因为整体都是由这个搞出来的,所以我们可以把游戏需要实现的功能都放在这里。

主要有下面这些功能(经典模式):

1、创建一个Block,以及消除一个Block,还有管理Block的方法。

2、设置和取出所在的行号。

3、向下移动的功能。

二、具体实现。

1、创建一个Block,以及消除一个Block,还有管理Block的方法。

首先,管理Block的方法,就是创建一个静态的全局的数组,创建一个就加进数组,消除一个就删除出去。

(1)创建Block的方法。

先在Block.h中声明方法:

static Block* createWithArgs(Color3B color,Size size,string label,floatfontSize ,Color4B textColor);virtual bool initwithArgs(Color3B color,Size size,string label,float fontSize ,Color4B textColor);

然后呢,在Block.cpp中实现:

Block* Block::createWithArgs(Color3B color, Size size, std::string label, floatfontSize, Color4B textColor)

{

auto block= newBlock();

block->initwithArgs(color, size, label, fontSize, textColor);

block->autorelease(); //加入自动回收池,由引擎来管理内存。

_blocks->pushBack(block); //加入数组returnblock;

}

bool Block::initwithArgs(Color3B color,Size size,string label,floatfontSize,Color4B textColor)

{this->Sprite::init(); //一个Block就是一个精灵this->setContentSize(size);this->setAnchorPoint(Point::ZERO);this->setTextureRect(Rect(0, 0, size.width, size.height)); //设置纹理的大小this->setColor(color);

auto myLabel=Label::create(); //创建label,主要是开始和结束的Block需要。

myLabel->setString(label);

myLabel->setSystemFontSize(fontSize);

myLabel->setTextColor(textColor);this->addChild(myLabel);

myLabel->setPosition(size.width/2, size.height/2);return true;

}

(2)删除一个Block

voidBlock::removeBlock()

{this->removeFromParent(); //从Layer中移除

_blocks->eraseObject(this); //从数组中移除。

}

2、设置和读取行号。

CC_SYNTHESIZE(int, _BlockCol, BlockCol);

这是引擎为我们封装好的功能,就是用于快速设置接口,功能当然就很简单,就是创建设置和读取_BlockCol的函数。

3、向下移动的功能。

voidBlock::moveDown()

{this->_BlockCol--; //记录的行号减一

auto visibleSize= Director::getInstance()->getVisibleSize();this->runAction(Sequence::create(MoveTo::create(0.1f, Vec2(getPositionX(), _BlockCol*visibleSize.height/4)),

CallFunc::create([this]()

{if(_BlockCol<0)this->removeBlock(); //移除屏幕时删除Block

}), NULL));

}

Block类的简单简历就到此啦~

cocos2dx掼蛋_cocos2dx游戏开发——别踩白块学习笔记(一)——Block类相关推荐

  1. cocos2dx掼蛋_cocos2dx游戏开发——微信打飞机学习笔记(九)——BulletLayer的搭建...

    一.创建文件~ BulletLayer.h BulletLayer.cpp 二.How to do? (1)实例化BulletLayer方法的实现~ Bullet(PlayerLayer*temp); ...

  2. cocos2dx掼蛋_cocos2dx游戏开发——微信打飞机学习笔记(二)——游戏框架

    一.游戏的基本框架: WelcomeScene    -->    GameScene   -->   GameOverScene ||                           ...

  3. 网页版“别踩白块”实战笔记

    网页版"别踩白块"项目 笔记 js重点代码详解 所有完整代码如下: index.html index.css index.js 事件对象解释 参考链接 js重点代码详解 //全局变 ...

  4. cocos2dx掼蛋_Cocos2dx 入门小游戏实例

    从图书馆借了本木头的书籍,以下实例来自书籍,写在这里仅作笔记.. 游戏内容大概如下: 1.一个Sprite在地图上一直在跑,Sprite可以跳跃(其实是地图不断向左滚动) 2.途中有金币,Sprite ...

  5. cocos2dx掼蛋_cocos2dx入门

    几个重要概念 在cocos2d引擎中,有几个概念,分别是导演,场景,布景和人物角色. 导演(CCDirector)在cocos2d-x引擎中,导演类是游戏的组织者和领导者,导演制定规则让游戏内的场景, ...

  6. cocos2dx掼蛋_Cocos2d-x中文版

    功能介绍 流程控制(Flow control):非常容易地管理不同场景(scenes)之间的流程控制 精灵(Sprites):快速而方便的精灵 动作(Actions):告诉精灵们该做什么.可组合的动作 ...

  7. cocos2dx掼蛋_Cocos2D-X 学习笔记

    1. 3.4final控制台创建项目后,安卓编译会失败,必须手动把cocos/平台/andorid/java/src目录里的文件复制到安卓项目的src文件夹即可 2. 安卓的文件目录与win的略有不同 ...

  8. cocos2dx 字体外发光_《Cocos2d-x游戏开发实战精解》学习笔记2--在Cocos2d-x中显示一行文字...

    在Cocos2d-x中要显示文字就需要用到Label控件.在3.x版本的Cocos2d中,舍弃了之前版本所使用的LabelTTF.LabelAtlas.LabelBMFont 3个用于显示文字的类,而 ...

  9. cocos2dx游戏开发——捕鱼达人mini版学习笔记(一)——FishAchor的搭建

    一.创建文件· FishAchor.h还有FishAchor.cpp. 主要就是创建每种鱼的类,方便以后的取用~,很多是重复性的操作,然后我们是mini版,暂时也就加入大概6钟鱼就好= =,然后我们现 ...

最新文章

  1. 安卓Socket处理
  2. javascript-04 引用类型
  3. keepalived高可用+nginx负载均衡
  4. python之sys库
  5. AngularJS开发指南
  6. 加载elementor时出现问题_element ui 按需引入出现问题
  7. ViewPager VS ViewFilpper
  8. 铁路售票系统_高铁铁路运营客票乘务,自动售检票务实训的诞生背景
  9. 什么是html文件?html格式如何打开?(图文讲解)
  10. 三年之期已至,加多宝如何续写上市新故事
  11. 【C++】初窥门径---入门篇
  12. 手Q真的输给微信了吗?
  13. 学习MySQL的第一步:安装MySQL及数据库可视化工具Navicat
  14. 线性回归模型预测利润
  15. 华为云-容器引擎CCE-基本概念
  16. 属于计算机主机的是什么,电脑主机声音大嗡嗡响是怎么回事
  17. 《5G智慧钢铁白皮书》重磅发布!
  18. centos 关机和重启命令
  19. 元认知能力---反思能力
  20. IPV6地址的一些基础知识:

热门文章

  1. 使用delphi制作统计图表,delphi PageControl选项卡标题变色
  2. uc模拟器,7.4UC电脑版
  3. 上海玉佛禅寺“腊八节”赠粥迎新 民众凌晨排队
  4. Docker安装、详解与部署
  5. 计算机大赛响亮口号,比赛团队口号集锦
  6. 四、cadence ic 5141 ——添加工艺库文件
  7. java 压力测试_使用 JMeter 完成常用的压力测试
  8. 玩转三星手机设置—让你的手机更好用
  9. 对象的基本使用:属性和方法
  10. 站在三岔路口的全面屏手机,最终会走向何方?