cocos2d-x 3.3 之卡牌设计 NO.5 设置界面(透明层和屏蔽下层触控)
来源:互联网 发布:matlab编程实验答案 编辑:程序博客网 时间:2024/05/21 10:31
经过一段时间奋战,卡牌游戏总算完成的差不多,本想着做出一个效果就写一篇博文,但是不知不觉中已经有那么多坑没有填了
暑假加紧学习,最后再写一个游戏
先来看看所谓的设置界面是什么样的:
一、由于我的设置界面全都是控制声音的,所以先说说2dx的声音引擎:
1.首先应该包括头文件
#include "SimpleAudioEngine.h"
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);
0 0
- cocos2d-x 3.3 之卡牌设计 NO.5 设置界面(透明层和屏蔽下层触控)
- cocos2d-x3.x屏蔽下层触摸(制作透明图层暂停界面)
- cocos2d-x3.x屏蔽下层触摸(制作透明图层暂停界面)
- cocos2d-x 3.3 之卡牌设计 NO.6 Loading界面(异步加载图片,plist)
- Cocos2d-xv3.x屏蔽下层触摸
- Cocos2d-x 3.0屏蔽下层触摸
- cocos2d-x 3.3 之卡牌设计 NO.4 定时器的使用(清理内存)
- cocos2d-x 游戏暂停和恢复,还可以屏蔽下层按钮触发
- cocos2d-x 3.3 之黑白棋设计 NO.5 AI
- cocos2d-x 3.2 如何屏蔽下层管理事件?
- cocos2d-x 3.3 之卡牌设计 NO.1 点击选取卡牌
- cocos2d-x 3.3 之卡牌设计 NO.2 卡牌翻转
- cocos2d-x 3.3 之卡牌设计 NO.3 卡牌移动
- cocos2d-x 3.3 之黑白棋设计 NO.1 初步设计
- cocos2d-x 3.3 之黑白棋设计 NO.2 搜索
- cocos2d-x中用CCLayer实现对话框的简单做法,自动屏蔽下层Touch事件
- cocos2d-x封神榜(5) -- 【界面UI设计】
- Cocos2d-x 3.x 层触摸优先级及屏蔽
- 黑马程序员——java基础概述及java环境搭载
- 将View设置为Opaque
- hdu3033 I love sneakers!
- 织梦调用首页调用文章标题、图片、简介、详情
- SAT阅读:跟专家学习SAT阅读长难句
- cocos2d-x 3.3 之卡牌设计 NO.5 设置界面(透明层和屏蔽下层触控)
- 图片可控旋转效果
- 符号冲突问题解决
- vs2010 opencv 视频抓图
- 根据mysqlbin恢复丛库数据
- HTTP协议基础知识
- 关于springmvc3.2扫描Controller类的问题
- Java实现对Mysql的图片存取操作
- 织梦首页调用章标题和文章缩略图