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

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



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



一、由于我的设置界面全都是控制声音的,所以先说说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" class="cpp">//-------------------------------------------------------------播放背景音效
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 设置界面透明层和屏蔽下层触控的更多相关文章

  1. ios – 检查设备是否支持模糊

    我的应用程序使用UIBlurEffect,但旧设备没有模糊支持.我想检查用户的设备是否支持模糊.我该怎么做?

  2. iOS 5/6:首次使用CoreAudio后音量较低

    我在一个VoIP应用程序上工作.AudioSession的模式设置为kAudioSessionMode_VoiceChat.对于一个调用,我打开一个带有子类型kAudioUnitSubType_VoiceProcessingIO的CoreAudioAudioUnit.一切正常.第一次调用后,我使用AudioUnitUninitialize()关闭AudioUnit,然后停用音频会话.然而,现在似乎

  3. ios – 如何显示UIView的键盘

    我有一个UIView,我想接收键盘输入.我试过了:但它不起作用.我可以通过隐藏UITextField并将键盘转发给我的UIView来实现’脏’的解决方法–但是我的UIView如何直接接收键盘输入?

  4. iOS蓝牙BLE安全性和“Just works”关联模型

    根据thisdocument和thiswhitepaper,有一些安全措施旨在防止被动窃听蓝牙BLE连接.有没有办法在iOS中央管理器和外围设备之间实现安全连接?

  5. ios – 如何使用iphone使用蓝牙或wifi与OBD II进行通信

    我想为iOS创建一个简单的应用程序,它通过ODBIIWifi/蓝牙设备从汽车读取数据并在iPhone屏幕上显示.但我不知道从哪里开始.请有人帮我实现以下结果.我有蓝牙和wifi加密狗.第1步:配对蓝牙或Wifi加密狗和iPhone.第2步:通过加密狗阅读详细信息请参阅我能够轻松理解的任何教程或示例代码.我想深入了解这些过程,并希望自己编写代码.所以请帮忙.提前致谢.解决方法正如David所说,在i

  6. ios – 页面上有一个或多个错误.在itunesconnect上

    我正在尝试在iTunesconnect上传一个新的iOS应用程序版本,我不断收到错误页面上有一个或多个错误它突出了唯一的语言.请帮忙.并参考附图解决方法简而言之,必须将所有图像添加到“AppPreview和Screenshots”.我刚刚遇到这个问题,这个https://stackoverflow.com/a/38887524/795114的答案帮助我解决了这个问题.不知道为什么,但是当删除其他图

  7. xcode – 了解iPhone分辨率

    我正在使用phonegap将一个非常简单的html5页面导出到iphone应用程序并遇到这个愚蠢的问题.iPhone分辨率为960×640.当我将画布设置为那些尺寸时,它似乎太大了.这是为什么?我怎样才能利用iphone4的全高清功能.如果我将画布设置为较旧的iPhone,似乎画布适合全屏.将视口设置为这样的东西似乎有效,但是这会是性能损失吗?

  8. ios – 如何获得iPhone和配对的Apple Watch之间的当前距离

    有没有办法让苹果手表和配对的iPhone之间保持距离.我正在研究一个测试用例,当两个设备之间的距离发生变化时,应通知iPhone和AppleWatch.解决方法从技术上讲,您无法获得确切的距离,但您可以将一个设备充当信标,并在其核心位置附近工作.您有多达三种接近状态可以检查距离:CLProximityImmediate(即设备彼此非常接近),CLProximityNear(即设备彼此靠近)和CLP

  9. ios – 强制iPad Pro无需启动屏幕即可实现全分辨率

    解决方法不,您必须使用启动屏幕来支持iPadPro.这就是Apple决定支持它的方式.如果您找不到使用单个启动屏幕获取所需结果的方法,您可以提供一个特定于iPhone和一个特定的iPad.更新:Xcode8支持iPadProLaunch图像插槽,因此您不再需要使用Launch屏幕文件来支持iPadPro.

  10. iOS键盘颜色变化 – 键盘外观深色不粘

    解决方法它可能与键盘是全局对象的事实有关.在任何给定的时间内,内存中只有一个键盘.此外,操作系统将根据背景自动更改键盘颜色.因此,您的设置可能只是被覆盖.我建议您在应用程序进入后台时隐藏键盘,然后在重新进入前景时重新显示它.然后当您重新显示键盘时,通过代码重置键盘外观.

随机推荐

  1. 【cocos2d-x 3.x 学习笔记】对象内存管理

    Cocos2d-x的内存管理cocos2d-x中使用的是上面的引用计数来管理内存,但是又增加了一些自己的特色。cocos2d-x中通过Ref类来实现引用计数,所有需要实现内存自动回收的类都应该继承自Ref类。下面是Ref类的定义:在cocos2d-x中创建对象通常有两种方式:这两中方式的差异可以参见我另一篇博文“对象创建方式讨论”。在cocos2d-x中提倡使用第二种方式,为了避免误用第一种方式,一般将构造函数设为protected或private。参考资料:[1]cocos2d-x高级开发教程2.3节[

  2. 利用cocos2dx 3.2开发消灭星星六如何在cocos2dx中显示中文

    由于编码的不同,在cocos2dx中的Label控件中如果放入中文字,往往会出现乱码。为了方便使用,我把这个从文档中获取中文字的方法放在一个头文件里面Chinese.h这里的tex_vec是cocos2dx提供的一个保存文档内容的一个容器。这里给出ChineseWords,xml的格式再看看ChineseWord的实现Chinese.cpp就这样,以后在需要用到中文字的地方,就先include这个头文件然后调用ChineseWord函数,获取一串中文字符串。

  3. 利用cocos2dx 3.2开发消灭星星七关于星星的算法

    在前面,我们已经在GameLayer中利用随机数初始化了一个StarMatrix,如果还不知道怎么创建星星矩阵请回去看看而且我们也讲了整个游戏的触摸事件的派发了。

  4. cocos2dx3.x 新手打包APK注意事项!

    这个在编译的时候就可以发现了比较好弄这只是我遇到的,其他的以后遇到再补充吧。。。以前被这两个问题坑了好久

  5. 利用cocos2dx 3.2开发消灭星星八游戏的结束判断与数据控制

    如果你看完之前的,那么你基本已经拥有一个消灭星星游戏的雏形。开始把剩下的两两互不相连的星星消去。那么如何判断是GameOver还是进入下一关呢。。其实游戏数据贯穿整个游戏,包括星星消除的时候要加到获得分数上,消去剩下两两不相连的星星的时候的加分政策等,因此如果前面没有做这一块的,最好回去搞一搞。

  6. 利用cocos2dx 3.2开发消灭星星九为游戏添加一些特效

    needClear是一个flag,当游戏判断不能再继续后,这个flag变为true,开始消除剩下的星星clearSumTime是一个累加器ONE_CLEAR_TIME就是每颗星星消除的时间2.连击加分信息一般消除一次星星都会有连击信息和加多少分的信息。其实这些combo标签就是一张图片,也是通过控制其属性或者runAction来实现。源码ComboEffect.hComboEffect.cpp4.消除星星粒子效果消除星星时,为了实现星星爆裂散落的效果,使用了cocos2d提供的粒子特效引擎对于粒子特效不了

  7. 02 Cocos2D-x引擎win7环境搭建及创建项目

    官网有搭建的文章,直接转载记录。环境搭建:本文介绍如何搭建Cocos2d-x3.2版本的开发环境。项目创建:一、通过命令创建项目前面搭建好环境后,怎样创建自己的Cocos2d-x项目呢?先来看看Cocos2d-x3.2的目录吧这就是Cocos2d-x3.2的目录。输入cocosnew项目名–p包名–lcpp–d路径回车就创建成功了例如:成功后,找到这个项目打开proj.win32目录下的Hello.slnF5成功了。

  8. 利用cocos2dx 3.2开发消灭星星十为游戏添加音效项目源码分享

    一个游戏,声音也是非常的重要,其实cocos2dx里面的简单音效引擎的使用是非常简单的。我这里只不过是用一个类对所有的音效进行管理罢了。Audio.hAudio.cpp好了,本系列教程到此结束,第一次写教程如有不对请见谅或指教,谢谢大家。最后附上整个项目的源代码点击打开链接

  9. 03 Helloworld

    程序都有一个入口点,在C++就是main函数了,打开main.cpp,代码如下:123456789101112131415161718#include"main.h"#include"AppDelegate.h"#include"cocos2d.h"USING_NS_CC;intAPIENTRY_tWinMain{UNREFERENCED_ParaMETER;UNREFERENCED_ParaMETER;//createtheapplicationinstanceAppDelegateapp;return

  10. MenuItemImage*图标菜单创建注意事项

    学习cocos2dx,看的是cocos2d-x3.x手游开发实例详解,这本书错误一大把,本着探索求知勇于发现错误改正错误的精神,我跟着书上的例子一起调试,当学习到场景切换这个小节的时候,出了个错误,卡了我好几个小时。

返回
顶部