文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发其他语言在Pocket PC上编写游戏之十
精品推荐
特别推荐
·控制面板知多少
·给你十条学习Ruby语言的理由
·分页管理机制
·Perl 语言的重要价值体现
·经验技巧:分享两条Delphi开发经验
·Java编程思想:面向对象的逻辑思维方法
·Samba系统简介
热点TOP10
·AIX 5L 学习大纲/简易教程(2)(未经许可,请勿COPY)
·DENX U-Boot及Linux使用手册
·EZ-USB 68013A开发指南
·图象处理中的边缘检测------canny算子
·Visual C++ ADO数据库编程入门
·利用 wordXP 实现自动排班
·UDT协议-基于UDP的可靠数据传输协议
·XPCOM--LINUX下的组件开发技术
·MyEclipse JSF 快速入门中文版(上)
·samba和openldap结合实战
·AIX 5L 学习大纲/简易教程(1)(未经许可,请勿COPY)
·Microsoft Windows XP Embedded 开发工具概述
·eMbedded Visual C++开发入门
·在VC6中创建wxWidgets项目[附图]
·数值计算程序大放送-线性代数方程组
·列表视图控件
·visual studio 2005 简体中文团队开发版 SQL server 2005简体中文版下载
·Visual Studio 2005:在 Visual C++ 中开发自定义的绘图控件
·汇编语言工具下载
·多文档界面(MDI)

在Pocket PC上编写游戏之十

日期:2007年5月3日 作者: 查看:[大字体 中字体 小字体]


现在有一些标准类型的数字音乐。例如,WAV,MP3,MIDI,MOD等等。每种音乐在技术上只有些细微的差别。MP3和WAV是其实是相似的,除了使用不同的记录和重放方法外就只在压缩技术略有区别。MIDI和MOD更是除了音源不一样以外完全一样。

  众所周知有两种音乐技术可以制作数字音乐。着两种方法是采样和MIDI。

  MIDI(Musical Instrument Ditaigal Interface)是一个缩略词表示乐器数字接口。在乐器和计算机之间它充当一个接口。在MIDI文件内, 包含了音乐序列的代码(音符,效果,节拍等等)。音序器将发送代码到声音模块生产音乐和声音。所以播放MIDI我们需要两个主要的部件,音序器和声音模块。音序器能用软件实现,声音模块通常是硬件。不是很清楚有没有Windows CE将此设备嵌入。一般来说如果你想在你的Windws CE设备上播放MIDI,你需要添加专用的硬件设备。

  采样技术是非常有趣的。如果我们记录声音(例如狗叫) 在8KHz,当我们在其他的频率下播放它,例如在6KHz。我们将听见比原始声音低一些的声音。 相反的如果我们在10KHz频率下播放它,我们将得到高一些音调的声音。因此如果从钢琴录制了一段C音符,我们几乎将播放出任何想要的音符。

  MOD(声道)音乐出自Amiga系统。它也使用采样技术。它带给我们的主要是,它是一种能使用纯软件播放音乐文件。在以前只有Amiga有四声道硬件音频设备。所以MOD是唯一的有四个轨道的音乐,它能同时播放四个音符。现在我们应用软件混频技术,依靠处理器的高速度我们可以将许多声道混合成一个声音。 我们可以拥有超过四个音轨,最多可以达到128轨。一个典型的MOD声音文件的组成是音效(乐器)和音乐符号(歌曲)。

  数字音乐支持将采样和MIDI这两种基本的重要的音乐标准技术联合使用。但是非常遗憾的是他们忘记了Windows CE系统。对Windows CE系统来说这些声音文件太大并且太复杂了。

  现在, 让我们回到20年以前。你还能想起下面的代码吗;

Play "L1O1C1E2DGA";

  没错,它们是MBASIC音乐代码式样。用它为一个简单的游戏产声音乐是很简单的方法。我们不需要外部的资源。我们将试着做一个小程序来模拟MBASIC音乐。下面是对这个技术的简单描述;

  1、编写一个规则,用来产生音调和频率。

  2、写一个函数用来转换音乐编码流。

  3、使用定时器的控制节拍。

  现在,让我们看下面的代码。

<souce lising one - MBASIC music decoder>
static BYTE *pMusicStream;
static int nMusicPos;
static nNotePeroid;
static nNoteOctep;

static int chtoi(char ch)
{
 return ch - '0';
}

void PlayMusic(void)
{
 switch(pMusicStream[nMusicPos])
 {
  case 'L': // tempo
   nTempo = chtoi(pMusicStream[nMusicPos+1]);
   nMusicPos++;
   break;
  case 'O': // octep
   nOctep = chtoi(pMusicStream[nMusicPos+1]);
   nMusicPos++;
   break;
  case 'C': // note
  case 'D':
  case 'E':
  case 'F':
  case 'G':
  case 'A':
  case 'B':
   note_no = pMusicStream[nMusicPos] - 'C';

   if(isdigit(pMusicStream[nMusicPos+1]))
   {
    tempo1 = chtoi(pMusicStream[nMusicPos+1]);
    Tone(note_no,nOctep,nTempo*tempo1);
    nMusicPos++;
   }
   else
    Tone(note_no,nOctep,nTempo);
    break;
 }

 nMusicPos++;
}
  我们甚至可以把它应用到我们的游戏中。看到了吧音乐可以这样容易的被实现。

  在前的章节,我已经提及关于我们的动态产生声音的函数库。这个库使用一些低级的音频API使我们能够获得有效的音乐和动态的音响效果。 更多的详细介绍放在我们的网页上.

  你可以播放一首歌曲作为背景音乐。你可以使用pg_LoadMod(…)函数装载音乐并暂时保存音乐。你可以使用pg_PlayMod(…)函数播放音乐。当你装载了新的音乐先前的一个将自动地卸载由新的代替。使用pg_ModStop(…)函数你能停止播放。

  用什么办法创建MOD格式的音乐呢?答案是你需要一个声道音乐作曲软件。这类软件通常都是功能很强大的,但也是不容易使用的。:/

  解决这个问题,我们能用采样技术从MBASIC音乐流生产音乐。混合的代码是太复杂的,这样,我们将把这些特征加到我们的声音引擎。现在,下面是它的实现..... 在音乐控制方面的更深层的函数是...

  pg_LoadInstrument(...) - 装载声音到内存
  pg_LoadMusicData(...) - 保存音乐流到游戏缓冲区
  pg_PlayMusic(...) - 开始播放背景音乐
  pg_StopMusic(...) - 停止播放音乐进入讨论组讨论。
[1] [2] 下一页 




上一篇:Windows CE开发之起步停车

下一篇:D语言能否成为明日之星

在Pocket PC上编写游戏之十 相关文章:
·孤胆枪手2 - 游戏秘籍
·罪恶都市 - 游戏秘籍
·帝国时代2:征服者 - 游戏秘籍
·《侠盗猎车手-罪恶都市》修改 - 游戏秘籍
·三国群侠传 流程攻略 - 游戏攻略
·《仙剑奇侠传2》完美补充攻略 - 游戏攻略
·暗黑破坏神2:毁灭之王 符文物品、符石功能、赫拉笛克方块等 - 游戏秘籍
·《合金装备3 食蛇者》超详尽剧情 - 游戏攻略
·《鬼舞者3》中文功略(PS2) - 其他电视游戏攻略秘籍 - 其他电视游戏
·重返德军总部 全攻略 - 游戏攻略
在Pocket PC上编写游戏之十 相关软件:
·三国群英传5 宇峻科技 单机游戏
·QQ游戏大厅V2007 Beta 1
·游戏王 混沌力量
·GBA《游戏王GX学院决斗》模拟器
·超经典街机游戏13合一
·多多真人视频棋牌游戏BETA V1.52
·培训游戏
·经典爱国游戏:抗日地雷战
·穷爸爸富爸爸现金流游戏 游戏I+II 书籍 映像
·新剑侠情缘中文版 完美游戏全属性修改器

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:viphot