Cocos2dx学习之-----别踩白块V1.0

本文介绍了使用Cocos2dx 3.2开发别踩白块小游戏的过程,包括创建项目、定义Block类、添加开始条、生成黑白块以及实现事件交互。游戏逻辑是玩家点击黑块继续,点击白块则游戏结束,当踩过50个黑块后游戏结束。文章还提到了计时器的使用和源码链接。
摘要由CSDN通过智能技术生成

学了点COCOS2DX,一直感觉也没什么大意思,所以就找个教程做个小游戏出来,反正国庆在校也没啥事,自娱自乐。

PS;我用的版本是cocos2dx3.2

一、创建项目

cocos new -p com.donttouchwhiteblock.xuran -l cpp -d .


二、创建block类

因为别猜白块里面最重要的一个元素就是“块”,所以我们要为这个元素创建一个类,然后实例化一些方法,以便完成游戏中的诸多行为

首先是gameblock.h文件

#pragma once
#include <iostream>
#include <cocos2d.h>
USING_NS_CC; 
class Block:public Sprite
{
public:
	static GameBlock* CreateWithArgs(Color3B color, Size size, std::string label, float fontsize, Color3B textcolor);
	virtual bool initWithArgs(Color3B color, Size size, std::string label, float fontsize, Color3B textcolor);
	void removeblock();

private:
	static Vector<GameBlock*> *blocks;
};

头文件里面定义了三个成员函数:

第一个是创建一个block,根据所获取到的参数

第二个是初始化一个新的块根据参数。

第三个是移除一个块

还有创建了一个block指针类型的数组,用于存储我们创建的block的对象。

其次是GameBlock.cpp文件


#include "GameBlock.h"

Vector<GameBlock*> *GameBlock::blocks = new Vector<GameBlock*>();

GameBlock* GameBlock::CreateWithArgs(Color3B color, Size size, std::string label, float fontsize, Color3B textcolor)
{
	auto b = new GameBlock();
	b->initWithArgs(color, size, label, fontsize, textcolor);
	b->autorelease();
	blocks->pushBack(b);
	return b;
	
}

void GameBlock::removeblock()
{
	removeFromParent();
	blocks->eraseObject(this);   //删除向量中特定的对象
}

bool GameBlock::initWithArgs(Color3B color, Size size, std::string label, float fontsize, Color3B textcolor)
{

	Sprite::init();
	setContentSize(size);
	setAnchorPoint(Point::ZERO);
	setTextureRect(Rect(0,0,size.width, size.height));
	setColor(color);

	auto l = Label::create();
	l->setString(label);
	l->setSystemFontSize(fontsize);
	l->setColor(textcolor);
	addChild(l);
	l->setPosition(size.width/2, size.height/2);
	return true;
}

有对block数组的初始化,一个块的初始化函数,包括各种参数的设置以及一个创建函数,一个释放删除函数。


三、添加开始条

创建了块对应的类和相应的方法之后,我们就要开始真正的一步一步来做了。首先,别踩白块的游戏在开始的时候是有一条黄色的部分,代表着起点。那么首先就来为我们的游戏添加这个黄色的起点块。


很简单,从HelloWorldScene文件里面添加一个新的函数叫做AddStartLine,函数的实现很简单,就是通过CreateWi

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值