【cocos2d-x不要在生产白片步骤】第二项:制作Block分类
由于游戏非常多使用阻断,因此,我们创建了一个单独的类中Block。
于Blcok.h声明了两个初始化函数:
static Block* createWithArgs(Color3B color, Size size, std::string label, float fontSize, Color4B textColor); //初始化參数:方块颜色、方块大小、字、字体大小、字体颜色
virtual bool initWithArgs(Color3B color, Size size, std::string label, float fontSize, Color4B textColor);
由于方块有涉及到颜色、大小、字、字体大小、字体颜色,所以我们把这些都写进了參数里面。
用Vector来存放block,便于管理
//用来存放block
static Vector<Block*> * blocks;
在cpp中文件来详细实现这两个函数以及blocks:
//初始化blocks
Vector<Block*> * Block::blocks = new Vector<Block*>(); Block* Block::createWithArgs(Color3B color, Size size, std::string label, float fontSize, Color4B textColor)
{
auto b = new Block();
b->initWithArgs(color, size, label, fontSize, textColor);
b->autorelease(); //将b加入到blocks中
blocks->pushBack(b); return b;
} //初始化參数:方块颜色、方块大小、字、字体大小、字体颜色
bool Block::initWithArgs(Color3B color, Size size, std::string label, float fontSize, Color4B textColor)
{
Sprite::init(); //设置大小
setContentSize(size);
//设置锚点为左下角
setAnchorPoint(Point::ZERO);
//设置区域
setTextureRect(Rect(0, 0, size.width, size.height));
//设置颜色
setColor(color); //设置文字
auto myLabel = Label::create();
myLabel->setString(label);
myLabel->setSystemFontSize(fontSize);
myLabel->setTextColor(textColor);
addChild(myLabel);
myLabel->setPosition(size.width/2, size.height/2); return true;
}
另外还需一个函数来移除Vector中的block
//从Vector中移除blocks
void Block::removeBlock()
{
removeFromParent();
blocks->eraseObject(this);
}
版权声明:本文博主原创文章,博客,未经同意不得转载。
【cocos2d-x不要在生产白片步骤】第二项:制作Block分类的更多相关文章
- 分布式日志框架Exceptionless之生产环境部署步骤
Exceptionless 是一个开源的实时的日志收集框架,它将日志收集变得简单易用并且不需要了解太多的相关技术细节及配置.本篇基于我的上一篇<基于Exceptionless实现分布式日志> ...
- iOS开发:创建推送开发证书和生产证书,以及往极光推送官网上传证书的步骤方法
在极光官网上面上传应用的极光推送证书的实质其实就是上传导出的p12文件,在极光推送应用管理里面,需要上传两个p12文件,一个是生产证书,一个是开发证书 ,缺一不可,具体如下所示: 在开发者账号里面创建 ...
- SAP MRP的计算步骤
SAP MRP的计算步骤,物料需求计划(简称为MRP)与主生产计划一样属于ERP计划管理体系,它主要解决企业生产中的物料需求与供给之间的关系,即无论是对独立需求的物料,还是相关需求的物料, ...
- Hyperledger Fabric 1.0 从零开始(八)——Fabric多节点集群生产部署
6.1.平台特定使用的二进制文件配置 该方案与Hyperledger Fabric 1.0 从零开始(五)--运行测试e2e类似,根据企业需要,可以控制各节点的域名,及联盟链的统一域名.可以指定单独节 ...
- 微信公众平台宣布增加接口IP白名单提高安全性
微信公众平台目前已经发布通知在平台接口调用上为了提高安全性需要添加IP白名单并仅允许白名单IP调用. 目前微信公众平台面向开发者主要提供的开发者ID和开发者密钥,在调用时ID和密钥通过检验即可进行调用 ...
- Cocos2D v2.0至v3.x简洁转换指南(四)
实现通用的update方法 在Cocos2d 2.x你需要2个步骤去实现在每帧调用update方法: // 1) schedule update [self scheduleUpdate]; ... ...
- 如何让浏览器支持ES6语法,步骤详细到小学生都能看懂!
为什么ES6会有兼容性问题? 由于广大用户使用的浏览器版本在发布的时候也许早于ES6的定稿和发布,而到了今天,我们在编程中如果使用了ES6的新特性,浏览器若没有更新版本,或者新版本中没有对ES6的特性 ...
- 企业实施ERP的先后步骤,你真的了解吗?
信息化是我国加快实现工业化和现代化的必然选择.坚持以信息化带动工业化,以工业化促进信息化,在国民经济和社会领域广泛采用信息技术.国民经济信息化中企业的信息化工作是基础, ERP管理系统是IT技术和先进 ...
- 2015306 白皎 《网络攻防》Exp3 免杀原理与实践
2015306 白皎 <网络攻防>Exp3 免杀原理与实践 一.实践基础 免杀,故名思义,指的是一种能使病毒木马免于被杀毒软件查杀的技术. 免杀的方法有很多,比如加壳改壳.加垃圾指令.以及 ...
随机推荐
- 组件状态(TComponentState)11种和组件状态(TComponentStyle)4种
TOperation = (opInsert, opRemove); TComponentState = set of ( csAncestor The component was introduce ...
- MYSQL 语法大全自己总结的
mysql语法大全 --------数据链接---------------------数据库服务启动net start mysql --关闭服务net stop mysql --登录 -u,-p后面不 ...
- Theano学习笔记(二)——逻辑回归函数解析
有了前面的准备,能够用Theano实现一个逻辑回归程序.逻辑回归是典型的有监督学习. 为了形象.这里我们如果分类任务是区分人与狗的照片. 首先是生成随机数对象 importnumpy importth ...
- sql为数字添加千分位(也就是钱的格式)
感觉这个东西在项目中用得挺多的,之前在前台页面是用正则来处理,现在由于是数据查询,所以直接在查出数据的时候将其转为指定的千分位格式,省的前台再处理,不讲原理,因为我也看不懂,不过会用就行了,在网上找了 ...
- 后台调用外部程序的完美实现(使用CreateDesktop建立隐藏桌面)
最近在做的一个软件,其中有一部分功能需要调用其它的软件来完成,而那个软件只有可执行文件,根本没有源代码,幸好,我要做的事不难,只需要在我的程序启动后,将那个软件打开,在需要的时候,对其中的一个文本矿设 ...
- sublime搜索和替换--正则
Search and Replace Sublime Text features two main types of search: Search - Single File Search - Mul ...
- 四张类图理一下Streams的用法
首先是输出流 OutputStream.继承它的类有两种,一种是底层实现(纯继承OutputStream的类),一种是格式转换(组合了OutputStream的类). 所谓的底层实现,就是真正和物理存 ...
- VC中添加web控件的方法
在VC中使用WebBrowser控件的两方法 黄森堂(vcmfc)著 ClassWizard方式: 1.创建包装类:View->ClassWizard->Add Class->For ...
- Java实现定时任务的三种方法(转)
在应用里经常都有用到在后台跑定时任务的需求.举个例子,比如需要在服务后台跑一个定时任务来进行非实时计算,清除临时数据.文件等.在本文里,我会给大家介绍3种不同的实现方法: 普通thread实现 Tim ...
- 【Demo 0010】事件响应链
本章学习要点: 1. 熟悉iOS事件分发过程以及事件响应链; 2. 掌握基本事件响应方法(单击,双击): 3. 掌握基本手势处理方法: