一、CCMenu
游戏中的菜单必不可少,CCMenu正是你想要的。
要创建CCMenu,你必须有CCMenuItem对象,CCMenuItem便是你菜单中的某个选项,可以为图片、文字等
cocos2d为menu item提供了必要的转换方法,比如CCMenuItemLabel你可以通过CCLabelBMFont得到;游戏中某些开关,比如声音开关可以用CCMenuItemToggle对象
每一个CCMenuItem都可以在创建的时候绑定某个对象的方法,当这个CCMenuItem被点击的时候会触发这个方法
二、CocosDenshion
cocos2d中集成了CocosDenshion,不过游戏中我们一般都是整个背景音乐或者来点音效,所以我们只需要用SimpleAudioEngine就可以了。
SimpleAudioEngine其实是对CDAudioManager进行了一些封装,我们暂时不去关注细节实现,先看看怎么使用
这是一段通用的代码,用来确保建立SimpleAudioEngine对象成功
// Indicate that we are trying to start up the Audio Manager
[CDSoundEngine setMixerSampleRate:CD_SAMPLE_RATE_MID];
//Init audio manager asynchronously as it can take a few seconds
//The FXPlusMusicIfNoOtherAudio mode will check if the user is
// playing music and disable background music playback if
// that is the case.
[CDAudioManager initAsynchronously:kAMM_FxPlusMusicIfNoOtherAudio];
//Wait for the audio manager to initialise
while ([CDAudioManager sharedManagerState] != kAMStateInitialised)
{
[NSThread sleepForTimeInterval:0.1];
}
//At this point the CocosDenshion should be initialized
// Grab the CDAudioManager and check the state
CDAudioManager *audioManager = [CDAudioManager sharedManager];
if (audioManager.soundEngine == nil ||
audioManager.soundEngine.functioning == NO) {
CCLOG(@"CocosDenshion failed to init, no audio will play.");
managerSoundState = kAudioManagerFailed;
} else {
[audioManager setResignBehavior:kAMRBStopPlay autoHandle:YES];
soundEngine = [SimpleAudioEngine sharedEngine];
managerSoundState = kAudioManagerReady;
CCLOG(@"CocosDenshion is Ready");
}
当对象成功创建以后,便可以使用这个对象了,预加载的过程会hang住程序,所以不要在主线程中进行声音的预加载
[soundEnginepreloadBackgroundMusic:trackFileName];
[soundEngineplayBackgroundMusic:trackFileNameloop:YES];
[CDSoundEngine setMixerSampleRate:CD_SAMPLE_RATE_MID];
设置采样率,可以在CocosDenshion.h中看到各种采样率的宏定义,可以根据自己的声音文件来设置,注意:当你声音文件低于设置的采样率时,会使用设置的采样率而产生内存的浪费。
[CDAudioManager initAsynchronously:kAMM_FxPlusMusicIfNoOtherAudio];
共有这几种模式:
kAMM_FxOnly,//!Other apps will be able to play audio
kAMM_FxPlusMusic,//!Only this app will play audio
kAMM_FxPlusMusicIfNoOtherAudio,//!If another app is playing audio at start
up then allow it to continue and don't play music
kAMM_MediaPlayback,//!This app takes over audio e.g music player app
kAMM_PlayAndRecord//!App takes over audio and has input and output
都很好懂,就不一一翻译了
分享到:
相关推荐
本学习笔记将深入探讨cocos2d的核心概念、关键组件以及实际应用技巧。 一、cocos2d基本概念 1. Scene(场景):cocos2d中的基本构造单元,代表游戏或应用的一个完整状态,例如主菜单、游戏关卡等。 2. Layer(层)...
在学习Cocos2d-x的过程中,新手首先需要了解其基本概念和安装配置过程。下面将详细介绍如何通过Cocos2d-x的官方文档进行入门学习,以及一些基础的开发步骤。 首先,进入Cocos2d-x的官方网站,下载最新的开发包。...
《cocos2d-x学习笔记》 在学习cocos2d-x时,了解其核心组件和工作流程至关重要。AppDelegate是cocos2d-x框架中的一个关键类,它扮演着应用程序入口点的角色,处理应用程序的生命周期事件。让我们深入探讨...
cocos2d-x学习资源汇总 cocos2d-x是一款功能强大且广泛应用于游戏开发的游戏引擎,由于其跨平台、开源、自由的特性,吸引了许多开发者的关注。以下是关于cocos2d-x的学习资源汇总,旨在帮助初学者快速入门和提高...
这篇学习资料是针对cocos2d/x,特别是cocos2d-x的入门指南,旨在帮助初学者快速掌握这个强大的游戏引擎。 cocos2d-x是一个跨平台的2D游戏开发框架,它可以让你的游戏在iOS、Android、Windows Phone以及其他桌面平台...
通过阅读提供的"吼吼睡cocos2d学习笔记"第七章,你将能够深入理解这些类的工作原理,学习如何在实际项目中应用它们。同时,提供的CH07.xcodeproj文件可能是包含示例代码的工程,可以帮助你直接在Xcode环境中运行和...
资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...
本篇学习笔记主要聚焦于Cocos2D-X的渲染框架,特别是布景层类的使用,这对于构建游戏场景至关重要。 首先,我们要理解Cocos2d-x中的“布景层”(CCLayer)。在Cocos2D-X中,布景层是场景(CCScene)的一个子类,...
本学习笔记旨在帮助开发者全面掌握Cocos2d-x的C++ API以及游戏项目的开发流程。 一、Cocos2d-x框架基础 Cocos2d-x是Cocos2d-x系列的C++版本,它提供了丰富的图形绘制、动画制作、音频播放、物理引擎等功能。Cocos2d...
该资源主要用于cocos2d-x中Value与json字符串的相互转换,提供从json文件读取为cocos2d::Value,cocos2d::Value写入到文件,cocos2d::Value转换为json字符串,json字符串转换为cocos2d::Value。json字符串转换成cocos...
本笔记将深入探讨Cocos2D-X中的内存管理策略,主要包括对象生命周期、内存分配与释放、引用计数以及智能指针的使用。 1. 对象生命周期:在Cocos2D-X中,每个对象都有其创建、使用和销毁的生命周期。当你创建一个...
总的来说,cocos2d-x 2.2.2是一个功能完备、易于学习和使用的2D游戏开发框架。通过深入理解并掌握这个版本,开发者可以创建出运行在多种平台上的高质量游戏,享受到cocos2d-x带来的强大开发体验。无论是初学者还是...
接下来,把 F:\cocos2d-1.0.1-x-0.9.1\cocos2dx 和 F:\cocos2d-1.0.1-x-0.9.1\CocosDenshion 这两个文件夹里面的全部内容拷贝一份到 D:\cocos2d-xProjects\HelloWorld 中去。 九、设置静态链接库 接下来,打开 F:\...
《Cocos2d-x实战 JS卷 Cocos2d-JS开发》是一本深入探讨Cocos2d-x游戏引擎JavaScript版本使用的专业书籍。Cocos2d-x是全球范围内广泛采用的游戏开发框架,尤其适用于2D游戏的制作,而Cocos2d-JS则是其JavaScript接口...
4. **Java-bindings.jar**:这是Cocos2d-x与Java之间的桥梁,使得开发者可以用Java编写游戏逻辑。 在Android Studio项目中,你需要将这些jar包导入到项目的`libs`目录下,并在`build.gradle`文件中配置依赖,这样...
《cocos2d-x学习笔记(17)--简单游戏实例1--双枪手》 cocos2d-x是一款跨平台的2D游戏开发框架,基于C++,支持iOS、Android、Windows等多个操作系统。本笔记主要讲解如何使用cocos2d-x创建一个简单的双枪手游戏实例,...
本学习笔记将深入探讨如何在Cocos2D-X中处理触屏事件,让游戏能够响应用户的触摸操作。 首先,我们要了解Cocos2D-X中的触摸事件处理机制。在Cocos2D-X中,触屏事件主要通过`Touch`类和`TouchEvent`类来实现。`Touch...
cocos2d-android游戏引擎是著名游戏引擎cocos2d游戏引擎的Android版。cocos2d-android游戏引擎性能优越、易学、可以进行纯java编程、具有极高的研 究价值、大大的降低了开发者的学习成本。您只需要一台普通配置的...
这份API文档不仅提供了关于Cocos2d-x的基本信息,还深入到具体的技术细节,对于学习和使用cocos2d-x开发游戏的开发者来说,是非常宝贵的参考资料。通过这份文档,开发者可以了解如何利用cocos2d-x的API构建游戏场景...
在学习和使用cocos2d-x 3.8时,开发者需要注意与最新版本的差异,例如API的变化、新功能的缺失等。同时,由于3.8是旧版本,可能不再受到官方的维护和支持,所以在解决特定问题时可能需要查阅旧的文档或社区论坛。 ...