2cocos2dx别踩白块游戏案例

2cocos2dx别踩白块游戏案例,第1张

概述 1 建立一个别踩白块的项目dtwb(Don’ttouch white block) 2 修改main.cpp中的代码 3 修改AppDelegate.cpp中的代码 4 案例代码 Block.h #ifndef __BLOCK_H__ #define __BLOCK_H__ #include "cocos2d.h" USING_NS_CC; class Block :public CCSpr 

1 建立一个别踩白块的项目dtwb(Don’ttouch white block)

2 修改main.cpp中的代码

3 修改AppDelegate.cpp中的代码

4 案例代码

Block.h

#ifndef __BLOCK_H__

#define __BLOCK_H__

#include "cocos2d.h"

USING_NS_CC;

class Block :public CCSprite

{

public:

//分別表示块大小,块颜色,块中的字符串,字的大小,颜色

static Block * create(CCSize size,cccolor3B color,

CCString str,float strSize,133); Font-family:新宋体; Font-size:9.5pt">cccolor3B strcolor);

//create方法依赖init方法,所以这里的init参数和create

//参数实际上相同的

bool init(cccolor3B strcolor);

//CCArray用于存储block的信息

static CCArray * array;

//获得块对应的Array

static CCArray * getBlocksArray();

//相当于定义一个lineIndexgetlineIndex,setlineIndex方法

CC_SYNTHESIZE(int,_lineIndex,lineIndex);

//向下移动并且将下面的元素清空

voID moveDownAndCleanUp();

};

#endif

Block.cpp

#include "Block.h"

#include "AppMacros.h"

//定义块的CCArray

CCArray * Block::array = NulL;

//这里的create依赖下面的init,所以create中的参数和init中的参数是一样的

Block * Block::cccolor3B strcolor)

{

//如果array是空的,那么就创建一个新的

if (array == NulL)

{

array = CCArray::create();

//因为array走的不是渲染数,所以要加上retain()

array->retain();

}

Block * pRet = new Block;

if (pRet && pRet->init(size,color,str,strSize,strcolor))

{

pRet->autorelease();

//将这个块儿添加到array中去

array->addobject(pRet);

}

else

{

delete pRet;

pRet = NulL;

}

return pRet;

}

bool cccolor3B strcolor)

{

//注意:这里的块是一个精灵

CCSprite::init();

//设置块的大小

setContentSize(size);

//设置渲染的大小

setTextureRect(CCRectMake(0,size.wIDth,size.height));

//设置块儿的颜色

setcolor(color);

//设置块儿的锚点

setAnchorPoint(ccp(0,0));

//设置块儿中的文字,不在create里面赋值是因为默认的字体更好些

cclabelTTF *label = cclabelTTF::create();

//设置label的字符串

label->setString(str.getCString());

//设置字体的大小

label->setFontSize(strSize);

//设置字体的颜色

label->setcolor(strcolor);

//设置字的位置

label->setposition(ccp(size.wIDth / 2,size.height / 2));

addChild(label);

return true;

}

//取出array

getBlocksArray()

{

return array;

}

voID moveDownAndCleanUp()

{

//行号减去1

_lineIndex--;

//往下走一个格

CCMoveto * to = CCMoveto::create(0.01,

ccp(getpositionX(),0); Font-family:新宋体; Font-size:9.5pt">getpositionY() - winSize.height / 4));

this->runAction(to);

//从节点中拿走

if (_lineIndex < 0)

{

//从数组中拿走,这里将引用计数减1,让它不影响渲染数的问题

array->removeObject(this);

removeFromParentAndCleanup(true);

}

}

运行结果:

总结

以上是内存溢出为你收集整理的2cocos2dx别踩白块游戏案例全部内容,希望文章能够帮你解决2cocos2dx别踩白块游戏案例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1006348.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存