cocos2dx掼蛋_cocos2dx游戏开发——别踩白块学习笔记(一)——Block类
一、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类相关推荐
- cocos2dx掼蛋_cocos2dx游戏开发——微信打飞机学习笔记(九)——BulletLayer的搭建...
一.创建文件~ BulletLayer.h BulletLayer.cpp 二.How to do? (1)实例化BulletLayer方法的实现~ Bullet(PlayerLayer*temp); ...
- cocos2dx掼蛋_cocos2dx游戏开发——微信打飞机学习笔记(二)——游戏框架
一.游戏的基本框架: WelcomeScene --> GameScene --> GameOverScene || ...
- 网页版“别踩白块”实战笔记
网页版"别踩白块"项目 笔记 js重点代码详解 所有完整代码如下: index.html index.css index.js 事件对象解释 参考链接 js重点代码详解 //全局变 ...
- cocos2dx掼蛋_Cocos2dx 入门小游戏实例
从图书馆借了本木头的书籍,以下实例来自书籍,写在这里仅作笔记.. 游戏内容大概如下: 1.一个Sprite在地图上一直在跑,Sprite可以跳跃(其实是地图不断向左滚动) 2.途中有金币,Sprite ...
- cocos2dx掼蛋_cocos2dx入门
几个重要概念 在cocos2d引擎中,有几个概念,分别是导演,场景,布景和人物角色. 导演(CCDirector)在cocos2d-x引擎中,导演类是游戏的组织者和领导者,导演制定规则让游戏内的场景, ...
- cocos2dx掼蛋_Cocos2d-x中文版
功能介绍 流程控制(Flow control):非常容易地管理不同场景(scenes)之间的流程控制 精灵(Sprites):快速而方便的精灵 动作(Actions):告诉精灵们该做什么.可组合的动作 ...
- cocos2dx掼蛋_Cocos2D-X 学习笔记
1. 3.4final控制台创建项目后,安卓编译会失败,必须手动把cocos/平台/andorid/java/src目录里的文件复制到安卓项目的src文件夹即可 2. 安卓的文件目录与win的略有不同 ...
- cocos2dx 字体外发光_《Cocos2d-x游戏开发实战精解》学习笔记2--在Cocos2d-x中显示一行文字...
在Cocos2d-x中要显示文字就需要用到Label控件.在3.x版本的Cocos2d中,舍弃了之前版本所使用的LabelTTF.LabelAtlas.LabelBMFont 3个用于显示文字的类,而 ...
- cocos2dx游戏开发——捕鱼达人mini版学习笔记(一)——FishAchor的搭建
一.创建文件· FishAchor.h还有FishAchor.cpp. 主要就是创建每种鱼的类,方便以后的取用~,很多是重复性的操作,然后我们是mini版,暂时也就加入大概6钟鱼就好= =,然后我们现 ...
最新文章
- 安卓Socket处理
- javascript-04 引用类型
- keepalived高可用+nginx负载均衡
- python之sys库
- AngularJS开发指南
- 加载elementor时出现问题_element ui 按需引入出现问题
- ViewPager VS ViewFilpper
- 铁路售票系统_高铁铁路运营客票乘务,自动售检票务实训的诞生背景
- 什么是html文件?html格式如何打开?(图文讲解)
- 三年之期已至,加多宝如何续写上市新故事
- 【C++】初窥门径---入门篇
- 手Q真的输给微信了吗?
- 学习MySQL的第一步:安装MySQL及数据库可视化工具Navicat
- 线性回归模型预测利润
- 华为云-容器引擎CCE-基本概念
- 属于计算机主机的是什么,电脑主机声音大嗡嗡响是怎么回事
- 《5G智慧钢铁白皮书》重磅发布!
- centos 关机和重启命令
- 元认知能力---反思能力
- IPV6地址的一些基础知识: