cocos2dx 3.3 跑酷游戏 信息层

很简单的信息层,只显示了金币数和跑的距离,在主场景中和游戏层实现交互

#pragma once//防止重复编译
#include "cocos2d.h"
USING_NS_CC;
class InfoLayer :public Layer
{
public:
	bool init();
	CREATE_FUNC(InfoLayer);
	void goldAddOne();//金币数+1
	void distanceAddOne();//距离+1
	int getGoldNum();//为游戏结束层所写,(写GameOverLayer时加入)
	int getDisNum();//同上
private:
	int m_distance;//距离
	int m_goldNum;//金币数
	CCLabelAtlas *ttf_gold;//显示
	CCLabelAtlas *ttf_distance;
};
#include "InfoLayer.h"
bool InfoLayer::init()
{
	if (!Layer::init())
	{
		return false;
	}
	auto visibSize = Director::getInstance()->getVisibleSize();
	auto origin = Director::getInstance()->getVisibleOrigin();
	m_goldNum = 0;
	m_distance = 0;
	auto gold_string = CCLabelTTF::create("gold", "Arial", 32);
	gold_string->setAnchorPoint(Point::ZERO);
	auto distance_string = CCLabelTTF::create("distance", "Arial", 32);
	distance_string->setAnchorPoint(Point::ZERO);
	gold_string->setPosition(origin.x +10, origin.y + visibSize.height - gold_string->getContentSize().height);
	ttf_gold = CCLabelAtlas::create("0", "123.png", 26, 29, '0');
	ttf_gold->setPosition(gold_string->getPositionX()+gold_string->getContentSize().width+10,origin.y+visibSize.height-gold_string->getContentSize().height);
	distance_string->setPosition(ttf_gold->getPositionX()+ttf_gold->getContentSize().width+100, origin.y + visibSize.height - gold_string->getContentSize().height);
	ttf_distance = CCLabelAtlas::create("0", "123.png", 26, 29, '0');
	ttf_distance->setPosition(distance_string->getPositionX() + distance_string->getContentSize().width + 10, origin.y + visibSize.height - gold_string->getContentSize().height);

	addChild(ttf_gold);
	addChild(ttf_distance);
	addChild(gold_string);
	addChild(distance_string);

	return true;
}
void InfoLayer::goldAddOne()
{
	m_goldNum++;
	std::string s;
	s=std::to_string(m_goldNum);
	ttf_gold->setString(s);
}
void InfoLayer::distanceAddOne()
{
	m_distance++;
	std::string s;
	s = std::to_string(m_distance);
	ttf_distance->setString(s);
}
int InfoLayer::getGoldNum()
{
	return m_goldNum;
}
int InfoLayer::getDisNum()
{
	return m_distance;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值