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,float fontSize ,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, float fontSize, Color4B textColor)
{
auto block = new Block();
block->initwithArgs(color, size, label, fontSize, textColor);
block->autorelease(); //加入自动回收池,由引擎来管理内存。 _blocks->pushBack(block); //加入数组 return block;
}
bool Block::initwithArgs(Color3B color,Size size,string label,float fontSize,Color4B textColor)
{
this->Sprite::init(); //一个Block就是一个精灵 this->setContentSize(size); this->setAnchorPoint(Point::ZERO); this->setTextureRect(Rect(, , 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/, size.height/); return true;
}
(2)删除一个Block
void Block::removeBlock()
{
this->removeFromParent(); //从Layer中移除
_blocks->eraseObject(this); //从数组中移除。
}
2、设置和读取行号。
CC_SYNTHESIZE(int, _BlockCol, BlockCol);
这是引擎为我们封装好的功能,就是用于快速设置接口,功能当然就很简单,就是创建设置和读取_BlockCol的函数。
3、向下移动的功能。
void Block::moveDown()
{
this->_BlockCol--; //记录的行号减一
auto visibleSize = Director::getInstance()->getVisibleSize();
this->runAction(Sequence::create(MoveTo::create(0.1f, Vec2(getPositionX(), _BlockCol*visibleSize.height/)),
CallFunc::create([this]()
{
if(_BlockCol<)
this->removeBlock(); //移除屏幕时删除Block
}), NULL));
}
Block类的简单简历就到此啦~
cocos2dx游戏开发——别踩白块学习笔记(一)——Block类的更多相关文章
- cocos2dx游戏开发——别踩白块学习笔记(二)——经典模式的实现
一.创建GameScene以及GameLayer 就是简单创建一个Scene而已,在此就不多说啦~,可以参照我的打飞机的学习笔记(2). 二.添加一个开始栏 很简单,就是调用Block中的create ...
- 《Cocos2d-x游戏开发实战精解》学习笔记4--实战一个简单的钢琴
上一节学习了使用Cocos2d-x播放音乐的方法,但是那种方法一般只适合于播放较大的音乐,而一般比较短小的音乐(如游戏中的打斗.按键音效等)则要通过playEffect来播放.本节使用该方法以及之前学 ...
- 《Cocos2d-x游戏开发实战精解》学习笔记3--在Cocos2d-x中播放声音
<Cocos2d-x游戏开发实战精解>学习笔记1--在Cocos2d中显示图像 <Cocos2d-x游戏开发实战精解>学习笔记2--在Cocos2d-x中显示一行文字 之前的内 ...
- cocos2dx游戏开发——捕鱼达人mini版学习笔记(二)——MainMenu的搭建
一.创建文件~ MainMenuScene.h MainMenuScene.cpp MainMenuLayer.h MainMenuLayer.cpp 那个场景的搭建就不多说了,那个我的打 ...
- 《Cocos2d-x游戏开发实战精解》学习笔记1--在Cocos2d中显示图像
Cocos2d-x中的图像是通过精灵类来显示的.在Cocos2d-x中游戏中的每一个角色.怪物.道具都可以理解成是一个精灵,游戏背景作为一种特殊的单位将其理解成是一个精灵也没有什么不妥.在源文件本章目 ...
- 《Cocos2d-x游戏开发实战精解》学习笔记2--在Cocos2d-x中显示一行文字
在Cocos2d-x中要显示文字就需要用到Label控件.在3.x版本的Cocos2d中,舍弃了之前版本所使用的LabelTTF.LabelAtlas.LabelBMFont 3个用于显示文字的类,而 ...
- cocos2dx游戏开发——捕鱼达人mini版学习笔记(一)——FishAchor的搭建
一.创建文件· FishAchor.h还有FishAchor.cpp. 主要就是创建每种鱼的类,方便以后的取用~,很多是重复性的操作,然后我们是mini版,暂时也就加入大概6钟鱼就好= =,然后我们现 ...
- ios-高仿别踩白块游戏的实现
先看下效果图片 前几天看到一个游戏叫别踩白块,下载量还挺大几百万了都,下载下来玩了玩看了看,这个游戏还挺简单的.俗话说想一千遍,一万遍不如动手做一遍来的实在.昨晚以及今天白天闲的没事就开搞了,下午六点 ...
- jquery之别踩白块游戏的实现
转载请注明出处http://www.cnblogs.com/Wxtrkbc/p/5687112.html 前端学习要告一段落了,也没机会写什么像样的东西,然后无意中想起某人以前给我玩了一下别踩白块的游 ...
随机推荐
- IOS- 02 零碎知识总结
1.UIView,UIViewController,UIWindow和CALayer UIView是什么,做什么:UIView是用来显示内容的,可以处理用户事件 CALayer是什么,做什么:CALa ...
- OSG osgDB FileUtils FileNameUtil操作文件名相关函数
/** Gets the parent path from full name (Ex: /a/b/c.Ext => /a/b). */extern OSGDB_EXPORT std::stri ...
- September 27th 2016 Week 40th Tuesday
Friends are lost by calling too often and calling seldom. 交往过密过疏,都会失去朋友. Please mind your own busine ...
- 查看base64编码图片
1.确认编码纯净(没有编码参数) 2.在头部加上 data:image/jpeg;base64, 3.放到浏览器查看
- 简单获取input file 选中的图片,并在一个div的img里面赋值src实现预览图片
html代码: <input id="file_upload" type="file" /> <div class="image_c ...
- Xcode常用代码块
Xcode的代码片段(Code Snippets)创建自定义的代码片段,当你重用这些代码片段时,会给你带来很大的方便. 常用的: 1.strong:@property (nonatomic,stron ...
- 做一个App前需要考虑的几件事
本文转载于文章原文链接,版本归原作者所有! 随着工具链的完善,语言的升级以及各种优质教程的涌现,做一个 App 的成本也越来越低了.尽管如此,有些事情最好前期就做起来,避免当 App 有了一定规模后, ...
- php的错误级别
error_reporting() 用于设置 PHP 的报错级别并返回当前级别.(PHP 4, PHP 5) 函数能够在运行时设置 error_reporting 指令. PHP 有诸多错误级别,使用 ...
- ListView介绍
原文:http://blog.csdn.net/qingye_love/article/details/13772391?utm_source=tuicool&utm_medium=refer ...
- jQuery 操作复选框(checkbox) attr checked不起作用
参考资料 http://www.paobuke.com/develop/javascript/pbk849.html 这天用到jQuery功能,想实现一个简单的复选框动态全选或全不选,结果测试发现 ...