cocos2d-x 3.3 之卡牌设计 NO.5 设置界面(透明层和屏蔽下层触控)

cocos2d-x 3.3 之卡牌设计 NO.5 设置界面(透明层和屏蔽下层触控),第1张

概述经过一段时间奋战,卡牌游戏总算完成的差不多,本想着做出一个效果就写一篇博文,但是不知不觉中已经有那么多坑没有填了 暑假加紧学习,最后再写一个游戏 先来看看所谓的设置界面是什么样的: 一、由于我的设置界面全都是控制声音的,所以先说说2dx的声音引擎: 1.首先应该包括头文件 #include "SimpleAudioEngine.h" 2.在场景init里或者loading场景里先预加载声音文件:

经过一段时间奋战,卡牌游戏总算完成的差不多,本想着做出一个效果就写一篇博文,但是不知不觉中已经有那么多坑没有填了

暑假加紧学习,最后再写一个游戏



先来看看所谓的设置界面是什么样的:



一、由于我的设置界面全都是控制声音的,所以先说说2dx的声音引擎:

1.首先应该包括头文件

#include "SimpleAudioEngine.h"


2.在场景init里或者loading场景里先预加载声音文件:
CocosDenshion::SimpleAudioEngine::getInstance()->preloadBackgroundMusic("sound/bgm/bgm_game.mp3");//背景音乐CocosDenshion::SimpleAudioEngine::getInstance()->preloadEffect("sound/effect/button_out.mp3");//音效
这样做跟预先加载纹理差不多,但是好处更加明显,如果不预先加载可能还会遇上BUG。


3.PLAY SOUND

//-------------------------------------------------------------播放背景音乐	CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic("sound/bgm/bgm_game.mp3",true); 

<pre name="code" >//-------------------------------------------------------------播放背景音效
if(isPlayEffect){CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("sound/effect/equip_out.mp3"); }
 
好了,这样音乐就能正常播放了,另外关于声音2dx还给我们提供了很多其他函数,这里就不多说了~


二、

1.新建一个setting类,与其他Layer一样,只需做如下一些改变

1)透明背景,我用了一个很LOW的方法,就是直接画了张与游戏界面大小一样的透明PNG,当背景图贴上去就好

2)按钮:

voID Setting::menuCallback(Ref* pSender){	MenuItem* NowItem=(MenuItem *)pSender;	switch (NowItem->getTag())	{	case 15://确定按钮		this->removeFromParentAndCleanup(true);//返回游戏界面		break;	case 16://背景音乐按钮		if(CocosDenshion::SimpleAudioEngine::getInstance()->isBackgroundMusicPlaying())		{			CocosDenshion::SimpleAudioEngine::getInstance()->stopBackgroundMusic();		}		else		{			CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic("sound/bgm/bgm_game.mp3",true);		}		break;	case 17://音效按钮		isPlayEffect=!isPlayEffect;		break;	default:		break;	}}

2.在游戏类里加载此场景:
Setting* setting = Setting::create();this->addChild(setting,100);

3.屏蔽下层触控:

在setting的init函数里注册鼠标监听:

//-------------------------------------------------------------添加鼠标监听	EventListenertouchOneByOne * Listener = EventListenertouchOneByOne::create();	Listener->setSwallowtouches(true);//这个很重要,阻止了触摸向下传递	Listener->ontouchBegan = CC_CALLBACK_2(Setting::ontouchBegan,this);	Listener->ontouchmoved = CC_CALLBACK_2(Setting::ontouchmoved,this);	Listener->ontouchended = CC_CALLBACK_2(Setting::ontouchended,this);	_eventdispatcher->addEventListenerWithSceneGraPHPriority(Listener,this);
总结

以上是内存溢出为你收集整理的cocos2d-x 3.3 之卡牌设计 NO.5 设置界面(透明层和屏蔽下层触控)全部内容,希望文章能够帮你解决cocos2d-x 3.3 之卡牌设计 NO.5 设置界面(透明层和屏蔽下层触控)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1063060.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存