Cocos别踩白块儿案列1

Cocos  版本3.10

1.游戏介绍:

《别踩白块儿》是由 Umoni Studio (Umoni Entertainment Limited 的前身)”制作的一款休闲益智游戏。游戏于2014年4月16日上线App Store。并在全球40多个国家、地区免费游戏榜登顶榜首,超过一百个国家或地区排名前十,5月份荣登全球游戏下载总榜(iOS + Android)第一宝座,游戏上线3个月累计下载达1亿。

背景设定

别踩白块儿,这就是这个游戏的一个规则,很简单吧?谁都可以会玩,但并不是谁都能玩得很好噢。 你呢?你玩得怎么样?

《别踩白块儿 Don't Tap The White Tile》,这就是这个游戏的一个规则,我们只需要不断踩着黑色方块前进即可,很简单吧?谁都可以会玩,但并不是谁都能玩得很好噢,你呢?快来挑战看看吧!经典模式,以最快的速度到达终点。

街机模式,你有能力得多少分就得多少分,没有任何限制,这也是最具挑战性的一个模式。
限时模式,在30秒内看你能走几步。
极速模式,没有最高速限制的街机模式, 挑战你的极限接力模式,规定时间内完成50块儿,然后会有更多时间去完成另外的50块儿。

◈ 超过35种好玩的模式(持续添加中…)。

◈ 简单易玩,老少咸宜。

◈ 几十种颜色主题,支持同时多颜色主题。

◈ 美妙的钢琴音效,支持自定义播放列表。

◈ 顺畅的游戏体验。

◈ 支持社交网络分享,随时炫耀成绩。

 

自从越南的的独立游戏开发者——Dong Nguyen花了几个晚上为游戏界打了一针鸡血后,《疯狂的小鸟》(Flappy Bird)带来的极简游戏风暴就一直没停歇过,事实上这股风暴根本停不下来。各种版本的《2048》热潮还没过去,微博上又火了一款《别踩白块儿》。这名字怎么听着都让人摸不着头脑,但看到各种晒成绩单的朋友,笔者也忍不住下载了游戏试试,一起来看看这款iOS和安卓通吃的超简约游戏有什么过人之处。



虽然玩法听起来不复杂,但这类反应力游戏都是易学难精(你已经忘了《Flappy Bird》是怎么虐你的了吗?),尤其是画面不断下落的街机模式,非常难!第一次能过100分可以说明你的反应力超出常人的强大了。《别踩白块儿》的游戏时间每局在10秒到1分钟之间,可谓是又一个见缝插针的好帮手,尤其是在等车,排队时,必备一个不错的!另外最新版本的《别踩白块儿》可以将成绩分享到微博,看看你和朋友到底谁更强大。
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.创建Block类:

1.新建一个Black类:

打开头文件Block。H

然后使用cocos2d的命名空间:

让后我们来写一个类,类的名字叫Block让他继承自Sprite,

 

#ifndef __WitheBlock_Block__

#define __WitheBlock_Block__

 

#include<cocos2d.h>

#include<iostream>

 

USING_NS_CC;

class Block :public Sprite {

public:

 

static Block*createWithArgs(Color3B color, Size, std::string label, float fontSize, Color4BtextColor);

virtual bool initWithArgs(Color3B color, Size, std::string label, float fontSize, Color4BtextColor);

};

 

#endif

 

之后我们写一个初始化的方法:指定是虚函数,初始化应该传递进来几个参数,首先我们要考虑一个颜色值,还有大小,然后是一个字符,指定字符还要指定字符的颜色。

然后我们还要写一个静态的创建的方法,把参数复制上去,

 

public:

    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);

 

之后我们就要实现这些方法,在cpp中:

 

首先执行父类的初始化方法:

    Sprite::init();

 

最后加上return true;  肯定创建成功。

 

 

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();

    return b;

}

 

5—那么我们每创建一个block都需要把他们记录下来,我们记录下来我们使用

一个数组:这里我们由看到了Vector  问:同学们还记得我们之前的介绍吗?他是一个队列。

 

然后在cpp文件中对他进行一个初始化:

 

我们从这里来对他们进行了初始化,然后我们每创建一个都会把他放在blocks里面,可以方便外界来访问他所有的块,pushback我们把b放进来。

我们再写一个方法就是说在外界我们再给他一个方法把他给移除掉,

    virtual bool initWithArgs(Color3B color,Size size,std::string 

void removeBlock();

 

然后在cpp中:

void Block::removeBlock(){

    removeFromParent();//从它的父节点中删除这个节点本身。如果节点是孤立的,那么什么也不会发生。

    blocks->eraseObject(this);//  抹去;擦除

}

 

43.内容大小,44.从左下角开始对齐45设置他的颜色和大小,之后我们需要添加一个文本,设置文本,字体大小,颜色,53,设置他的位置。

 

这样我们就配置好了一个方块。

 

3.下一节我们学习添加开始行

打开cpp文件,把不要的代码都删掉:

分析案列,开始行是一个黄色的行,那么我们来写一个方法,在.h中





然后我们来实现这个方法:

然后我们在初始化的地方先执行一下这个方法,,init


通过观察,那么开始行是要在水平方向填充满整个区域的,因此我们需要获取屏幕的大小。

 



然后在init方法厘米我们写这个

接下来我们来添加这个块,首先我们要引入头文件,

思考2:我们发现这个Size是报错,为什么?

报错的原因是因为访问不到,原因是因为我们没有引入命名空间。然后我们还要引入头文件,这个头文件就是我们自己定义的。





然后我们打开cpp文件,

添加一个块等于Black  需要传进来一个颜色,黄色,宽度是铺满,高度是4,不要显示字符串,字符颜色黑色。
添加进来。
void HelloWorld::addStartLine() {

auto b = Block::createWithArgs(Color3B::YELLOW, Size(visibleSize.width, visibleSize.height / 4), "", 20, Color4B::BLACK);

gameLayer->addChild(b);

//b->setLineIndex(0);

}

运行一下,可以看到开始行的效果:





4.:添加结束行:
1.打开helloworld.cpp 来写一个方法,

 


然后我们来添加这样一个方法,结束行是绿色的方框。


然后我们在前面,把前面的startline替换

运行看一下效果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值