2cocos2dx别踩白块游戏案例



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,
ccColor3B
strColor);

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

//参数实际上相同的

bool
init(CCSize
size,
ccColor3B
color,

CCString
str,
float
strSize,
ccColor3B
strColor);

//CCArray用于存储block的信息

static
CCArray * array;

//获得块对应的Array

static
CCArray *
getBlocksArray();

//相当于定义一个LineIndex的getLineIndex
,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::create(CCSize
size,
ccColor3B
color,

CCString
str,
float
strSize,
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
Block::init(CCSize
size,
ccColor3B
color,

CCString
str,
float
strSize,
ccColor3B
strColor)

{

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

CCSprite::init();

//设置块的大小

setContentSize(size);

//设置渲染的大小

setTextureRect(CCRectMake(0,
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

CCArray *
Block::getBlocksArray()

{

return array;

}

void
Block::moveDownAndCleanUp()

{

//行号减去1

_lineIndex--;

//往下走一个格

CCMoveTo *
to =
CCMoveTo::create(0.01,

ccp(getPositionX(),
getPositionY() -
winSize.height
/ 4));

this->runAction(to);

//从节点中拿走

if (_lineIndex
< 0)

{

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

array->removeObject(this);

removeFromParentAndCleanup(true);

}

}


运行结果:

时间: 2024-10-27 02:12:00

2cocos2dx别踩白块游戏案例的相关文章

jquery之别踩白块游戏的实现

转载请注明出处http://www.cnblogs.com/Wxtrkbc/p/5687112.html 前端学习要告一段落了,也没机会写什么像样的东西,然后无意中想起某人以前给我玩了一下别踩白块的游戏,手残还被嘲讽了下,现在想起来觉得这游戏实现起来也不难,于是上星期用jquery写了一个别踩白块的小游戏,就像当初学python的时候一样写了一个2048.然后今天正好抽个时间写个博客纪录下,算是对前一段时间学习的总结,没有玩过的可以去下一个原版的来玩一下,游戏很简单,就是从不断下落的方块中点击黑

C++用EGE简单实现别踩白块游戏

本项目已开源:https://github.com/wmpscc/AvoidBlank 关于EGE 介绍:EGE(Easy Graphics Engine),是windows下的简易绘图库,是一个类似BGI(graphics.h)的面向C/C++语言新手的图形库,它的目标也是为了替代TC的BGI库而存在. 详情见EGE官网 下载:官网提供的下载地址 安装方法一 简单示例 #include <graphics.h> int main() { //初始化为640*480大小 initgraph(6

自学easeljs 根据别踩白块游戏规则自己写的代码

主要基于       -------easeljs-0.7.1.min.js-----   去制作这个游戏 思路:主要思路是以行为单位 绑定可点击行 选中则讲 移动最外层容器继续绑定可点击行的下一行 否则结束游戏 HTML页面布局 <script src="js/easeljs-0.7.1.min.js"></script> <script src="easeljs/drawZfx.js"></script> <

JS游戏–别踩白块–教学视频

[布尔教育 PHP就业班 课堂案例 ] 玩游戏,不如自己写游戏! 打开浏览器,打开编辑器(sublime,editplus,notepad都行), 花上2个小时,写个"别踩白块"玩一玩. JS游戏_别踩白块(1) 思路分析.wmv JS游戏_别踩白块(2) 框架搭建.wmv JS游戏_别踩白块(3) 之随机黑白块.wmv JS游戏_别踩白块(4) 方块动起来.wmv JS游戏_别踩白块(5) 方块无缝滚动.wmv JS游戏_别踩白块(6) 得分.wmv JS游戏_别踩白块(7) 犯规处

小游戏--别踩白块

有图有真相,先上图再说 照旧贴出代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>别踩白块</title> <style type="text/cs

JS实现别踩白块小游戏

最近有朋友找我用JS帮忙仿做一个别踩白块的小游戏程序,但他给的源代码较麻烦,而且没有注释,理解起来很无力,我就以自己的想法自己做了这个小游戏,主要是应用JS对DOM和数组的操作. 程序思路:如图:将游戏区域的CSS设置为相对定位.溢出隐藏;两块“游戏板”上分别排布着24块方格,黑色每行随机产生一个,“游戏板”向下滚动并交替显示,将每个操作板的黑块位置存入数组,每次点击时将数组pop出来进行比对(我觉得亮点在这……). 这里是游戏的GitHub地址,大家可以到里点击中部菜单最右边的的Downloa

GameBuilder开发游戏应用系列之100行代码实现别踩白块

在线预览:http://osgames.duapp.com/apprun.html?appid=osgames1-961421749977376 在线编辑:http://osgames.duapp.com/gamebuilder.php?appid=osgames1-961421749977376 微信扫描: 游戏截图: 别踩白块是一款非常流行的游戏,该游戏于2014年4月16日上线App Store.并在全球40多个国家.地区免费游戏榜登顶榜首[4] ,超过一百个国家或地区排名前十 ,5月份荣

cocos2dx游戏开发——别踩白块学习笔记(二)——经典模式的实现

一.创建GameScene以及GameLayer 就是简单创建一个Scene而已,在此就不多说啦~,可以参照我的打飞机的学习笔记(2). 二.添加一个开始栏 很简单,就是调用Block中的create方法就可以啦~,只是需要传入大小和颜色等等的参数即可. void GameLayer::addStartLine() { auto block = Block::createWithArgs(Color3B::YELLOW, Size(visibleSize.width,visibleSize.he

游戏——网页版别踩白块

一 项目简介 主要知识点:JavaScript.HTML.CSS这是一个主要用JS实现的网页版小游戏,游戏规则很简单,通过点击不断下落的黑块来消灭它并获取分数,如果不幸黑块掉落下来或点到了白色区域那么游戏就会终止.游戏截图如下: 二 游戏框架 整个游戏可分为以下几个步骤实现:1. HTML和CSS画出静态的游戏框架:2. DOM结构说明:游戏元素使用嵌套的div元素来实现,是一个4*4的方格地图:最外层容器main(一个) > 次外层容器container(一个) > 行容器row(四行) &