【cocos2d-x制作别踩白块儿】第六期:游戏交互实现

本文介绍了使用cocos2d-x3.0制作别踩白块儿游戏中交互部分的实现。内容包括在HelloWorldScene.cpp中添加触摸事件,定义moveDown函数,以及处理玩家在不同区域的触摸行为,如点击非第一行区域、点击白色块导致失败和点击黑色块使其变为灰色等。
摘要由CSDN通过智能技术生成

这一期我们实现游戏的交互。简单的说,就是搭建触摸的框架。


在HelloWorldScene.cpp中添加触摸事件

	auto listener = EventListenerTouchOneByOne::create();
	listener->onTouchBegan = [this](Touch* t, Event* e)
	{
		log("onTouch");
		auto bs = Block::getBlocks();
		Block *b;

		for(auto it = bs->begin(); it != bs->end(); it++)
		{
			b = *it;

			if(b->getLineIndex()==1&&b->getBoundingBox().containsPoint(t->getLocation()))
			{
				if(b->getColor()==Color3B::BLACK)
				{
					b->setColor(Color3B::GRAY);
					this->moveDown();

				}
				else
				{
					MessageBox("GameOver","失败");
				}
			}
		}

		return false;
	};

	Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);
利用触摸事件onTouchBegan,然后得到所有的Blocks,一个个遍历。先判断lineIndex是不是1而且触摸式在这一行,紧接着如果方块是黑色的话,然后将黑色变为灰色,并使所有方块下移moveDown;如果方块不是黑色,然后出现一个失败的对话框。


moveDown函数,我们先用一个空函数实现,后续会添加具体的逻辑。

//方块下移
void HelloWorld::moveDown()
{

}

在Block.cpp中添加getBlocks函数

Vector<Block*> * Block::getBlocks()
{
	return Block::blocks;
}

运行项目,效果如下:



点击非第一行区域,会输出



点击第一行的白色块,会出现失败对话框



点击第一行黑色块,黑色块会变成灰色



效果还不错吧?哈哈哈

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值