【原创】cocos2dx实战游戏开发之【捕鱼达人】------帮助&胜利场景的实现

本文详细介绍了捕鱼达人游戏的帮助场景和胜利场景开发过程,包括场景创建、背景图加载、菜单项设置及背景音乐播放,同时分享了游戏逻辑与计分展示的实现技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

             【捕鱼达人】游戏实战开发之帮助&胜利场景

   大家好,我是Lampard!!!

   今天迎来捕鱼达人系列的第二篇博客更新,希望大家多多支持。

 

  今天要实现的是帮助场景和胜利场景:

  (一)帮助场景的实现:

    帮助场景的构成是一个帮助场景的背景图,一个内容的显示框以及一个返回到主菜单场景的菜单项,以及背景音乐的播放

    2

   在显示框中你可以使用LabelTTF用无签名的UTF-8来打中文上去。

   但是个人感觉直接把图利用P图软件P一下会更方便,所以就没有使用Label,大家感兴趣的可以自己试验一下。

   下面上代码:

    (1)首先还是创建一个场景,和一个层,并把层添加到空场景中。

Scene* HelpLayer::createScene()
{
	Scene* scene = Scene::create();
	HelpLayer* helpLayer = HelpLayer::create();

	scene->addChild(helpLayer);

	return scene;
}

     (2)第二步就是填充这个层,内容包括背景图,菜单项以及帮助显示框。

bool HelpLayer::init()
{
	if (!Layer::init())
	{
		return false;
	}

	auto bgSprite = Sprite::create("HelpLayerBg.png");  // 背景图
	bgSprite->setScale(2);
	bgSprite->setPosition(vsable.width / 2, vsable.height / 2);
	this->addChild(bgSprite);

	auto HelpLogo = Sprite::create("HelpLogo.jpg");     // 显示框(含文字)
	HelpLogo->setPosition(vsable.width / 2, vsable.height / 2);
	HelpLogo->setScale(0.9);

	this->addChild(HelpLogo);

	auto BackItem = MenuItemSprite::create(             // 菜单项
		Sprite::create("BackItem1.png"),
		Sprite::create("BackItem2.png"),
		[&](Ref * ref) {
		Scene *s = StartLayer::createScene();
		TransitionSplitCols *trans = TransitionSplitCols::create(2, s);
		Director::getInstance()->replaceScene(trans);
	}
	);


	BackItem->setPosition(1200, 650);
	BackItem->setScale(1.5);

	auto menu = Menu::create(BackItem, NULL);
	menu->setPosition(Point::ZERO);
	this->addChild(menu);


	playMusic();

	return true;
}

   (3)最后就是实现音乐播放的函数,再三提醒,因为要使用到cocos的因为播放控件,

       所以头文件要加上#include "cocostudio/CocoStudio.h",名称空间要加上using namespace CocosDenshion;

void HelpLayer::playMusic() {


	SimpleAudioEngine::getInstance()->playBackgroundMusic("StartLayerBGM.mp3", true);
}

    至此我们的帮助场景已经实现。

 

 (二)接下来是我们的胜利场景

    捕鱼达人的游戏逻辑是在但单位时间内,捕捉尽可能多的鱼。所以我们用到全局变量Count来表示。只需要引用LabelTTF,并把Count强转为字符串类型,设置大小颜色就可以在界面上展示。至于其他内容和帮助界面差不多,无非就是背景图,背景音乐,菜单项和展示框。

  


	fishLabel = Label::create();
	fishLabel->setTextColor(Color4B::ORANGE);           // 颜色
	fishLabel->setSystemFontSize(160);                  // 大小
	fishLabel->setPosition(805, 410);                   // 位置
	std::string str = StringUtils::format("%d", Count); // 强转
	fishLabel->setString(str);
	this->addChild(fishLabel);

   4

   游戏的源代码在:

   捕鱼达人源代码下载 大家可以参详参详!

 

   OK,今天就到这里,谢谢大家!!!

                                        未完待续......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lampard杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值