WIN32 环境时钟编程要诀

WIN32 环境时钟编程要诀

● 樊一鹏( FreeMind)

RETURN

  在游戏编程中,获得精确的时间控制是非常必要的一个工作。

  在悠远的 DOS 时代,所有的程序员都习惯于靠接管和修改时间中断来做这个工作。

  到了 WIN32 时代,这种不合时宜的方法已经完全被遗弃了,现在我们另有几种途径来完成这个工作。

  第一式:GetTickCount()

  Windows NT 3.5 及更高版本,精度为 10ms
  Windows NT 3.1 及更高版本,精度为 16ms
  Windows 95 及更高版本,精度为 55ms
  由此可见,此式只适用于低精度应用场合

  第二式:timeGetTime()

  精度约1ms,此式适用于大多数应用场合

  第三式:High-Resolution Timer

  QueryPerformanceCounter() 配合 QueryPerformanceFrequency(),此式适用于高精度应用场合

  实际上,第三式在大多数情况下都是源自 INTELRDTSC (read time stamp counter) 指令来实现的,因此,直接基于 RDTSC 来完成所有功能才真正应该是攻无不克、战无不胜,天下无敌……


注:此处只谈要诀,不谈具体编程,招式详解请自行参阅 MSDNINTEL 的技术手册
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
PC游戏编程(入门篇) 第一章 基石 1. 1 BOSS登场--GAF简介 第二章 2D图形程式初体验 2.l 饮水思源--第一个"游戏"程式 2.2 知其所以然一一2D图形学基础 2.3 进入图形世界的钥匙--GAFDDraw 2.4 2D图像的本质--图层表面 2.5 场景的秘密--背景卷动 2.6 诱惑--来自"精灵"的问候 2.7 餐后甜点--GAFApp/GAFDDraw的其他法宝 第三章 塞壬的歌声魔力和第三类接触 3.1 1,2,3--计算机音乐概述 3.2 塞壬的歌声--音效程式的魔力 3.3 专业伴奏--掌握MIDI 3.4 第三类接触--和玩家打交道 第四章 打造自己的PRG传奇 4.l 九种武器--RPG游戏程式框架 4.2 魔法书的封面--标题画面和其他 4.3 创世界--场景的生死轮回 4.4 永远的主角--NPC和大魔王 .4.5 魔法咒语--剧情和脚本 4.6 泰斯叔叔的袋子--RPG的道具箱 4.7 英雄的宿命--战斗 4.8 传说的终结--人定胜天 第五章 好风借力 更上层楼 5.l 思维的底层--人工智能入门 5.2 虚拟的现实--走进3D世界 第六章 技巧完美篇 6.1 与数据共舞--游戏程序优化技巧 6.2 站在别人的肩上--常用开发库使用介绍 附录一 GAFApp类接口简明参考 附录二 GAFDDraw类接口简明参考 附录三 GAFDInput类接口简明参考 附录四 游戏编程/制作相关网站 目录回到顶部↑第一章 基石  1.1 BOSS登场——GAF简介 第二章 2D图形程式初体验  2.1 饮水思源——第一个“游戏”程式  2.2 知其所以然——2D图形学基础  2.3 进入图形世界的钥匙——GAFDDraw  2.4 2D图像的本质——图层表面  2.5 场景的秘密——背景卷动  2.6 诱惑——来自“精灵”的问候  2.7 餐后甜点——GAFApp/GAFDDraw的其他法宝 第三章 塞壬的歌声魔力和第三类接触  3.1 1,2,3——计算机音乐概述  3.2 塞壬的歌声——音效程式的魔力  3.3 专业伴奏——掌握MIDI  3.4 第三类接触——和玩家打交道 第四章 打造自己的PRG传奇  4.1 九种武器——RPG游戏程式框架  4.2 魔法书的封面——标题画面和其他  4.3 创世界——场景的生死轮回  4.4 永远的主角——NPC和大魔王 . 4.5 魔法咒语——剧情和脚本  4.6 泰斯叔叔的袋子——RPG的道具箱  4.7 英雄的宿命——战斗  4.8 传说的终结——人定胜天 第五章 好风借力更上层楼  5.1 思维的底层——人工智能入门  5.2 虚拟的现实——走进3D世界 第六章 技巧完美篇  6.1 与数据共舞——游戏程序优化技巧  6.2 站在别人的肩上——常用开发库使用介绍 附录一 GAFApp类接口简明参考 附录二 GAFDDraw类接口简明参考 附录三 GAFDInput类接口简明参考 附录四 游戏编程/制作相关网站 ↓展开全部内容 前言回到顶部↑所谓RPG,全称是Role Play Games,译为角色扮演游戏。它的雏形是由欧美的AD&D(龙与地下城)纸牌游戏发展起来的。 随着时代的发展,RPG渐渐分为两个流派,一是以欧美为主体的西方风格,一是以日本为主体的东方风格。西方风格的基础系统架构一般都以TSR为基础,魔法、怪物、奇异的大陆、混乱的时代这些要素充满整个游戏, 其代表作为《创世纪》系列、《Diablo》系列和《魔法门》系列。而东方风格的RPG秉承日本人严谨的风格,虽然也涉及魔法、怪物、大陆等基本元素,但是剧情所占比重比较大,其代表作为《勇者斗恶龙》和《最终幻想》系列。值得注意的一点是,中国风格的RPG——武侠游戏的兴起。武侠是中国独有的艺术体系,也是惟一能在被称为第9艺术的游戏世界里表现中国文化博大精深的RPG游戏。其中比较突出的代表就是《轩辕剑》系列(《仙剑奇快传》也归于此系列)、《侠客英雄传》系列、《啸傲江湖》系列等等。 RPG不同于其他类型的PC游戏,它通常注重整个游戏世界的完善和拟真。因此,相对于其他动作等类型的游戏而言,开发初期的设计工作要繁琐得多。 而作为一名程序员,要做的第一件事就是选择一把顺手的武器——编程工具。做程序的朋友都知道,比较流行的编程工具名目颇多,比如:VB,DEPHI、汇编等等。但是如果你决定做RPG编程,那我们向你推荐 MicrosoftVisualC++。使用 VC开发 RPG游戏,它有着更贴近底层。代码运行速度快、便于优化等 RADI具所无法比拟的优点,也是国内外专业游戏制作公司的首选开发工具。 开发RPG的程序员,不仅要从局部的细节编写人手,更要学会从大局上控制编写进度。你应该学会在编写之前,拟订好各项工作分配计划,设计出各类有用的文档,制订开发周期,这样,才不至于在开发过程中因为某个环节上的疏忽而导致整个项目的流产。另外,很重要的一点就是,必须让你的代码具备可读性,也就是必须有大量的注释,这样,不论是你或其他人在查阅以前的代码时,有一个准确的追踪思维。 你首先要掌握的就是C++常识,可以参考其他相关书籍。另一门很重要的课程就是“数据结构”,在计算机专业这是一门很重要的基础课。这并不难,也就是如何组织数据并使用适当的算法,人门的时候只需要按直觉 去安排数据就行了。如果你打算设计一个大型的RPG游戏,那可得好好的学一学这门课。一定要对所有常用的数据结构都非常熟悉,才能在使用中融汇贯通,设计出结构简单、容易维护的程序。 接下来当然就是VC的使用了。许多初学者分不清 C++和 VC的区别。 C++是一种计算机语言,就像 BASIC语言一样。而VC是微软公司设计的一个 C++程序设计工具,如果你想用好 VC,让它帮你做更多的事,那你还是需要去看专门讲VC的书。 谈到设计游戏,在 Windows平台下就不能不提微软的 DirectX。它是 VC的一个扩充游戏开发包,主要用于游戏设计时直接操作硬件设备,进而加快游戏运行速度。本书中将使用GAF开发包来进行设计。GAF开发包是由“第二人生”开发的,对DirectX包装后的类库;它把游戏设计中经常用到的DirectX功能包装起来,能代替DirectX用于游戏设计中。如果你有兴趣也可以自己学习一些DirectX的使用方法,它可以让你更好地优化游戏程序。除了在程序上所必须具备的能力外,还有一个值得注意的问题,那就是开发RPG必备的其他能力,诸如策 划。美术。音乐等。 建议你最好按本书顺序阅读,因为本书撰写的原则就是从基础到高级的循序渐进的综合讲解模式;本书将只有一个游戏实例,但它是用 VC++ 6. 0编写的,是完整的从设计到编写再到调试的全部流程,一巳跳过某一章的内容,后面的讲解对你可能会有断层的感觉。 本书面向的读者群是初学编程的朋友。我们尽量用清晰的实例努力将RPG的制作过程完整地介绍清楚,同时在代码中加人大量注释,以确保代码的通俗易懂;文中穿插一定的相关知识介绍,并增加了关于基础编程知识的讲解,这将起到不可或缺的提示作用。 本书也可作为高级程序员进军游戏业的参考教材。我们在对RPG游戏的剖析过程中,采取循序渐进的方法,逐步揭示RPG游戏制作的核心。不论在代码编写技巧上,还是制作结构上,都有适当的高级内容提示。相信聪明的读者通过认真的思考,会有新的、有益的启发。 本书还适用于立志游戏业的非程序员。我们在编写过程中,除了努力把游戏代码编写讲述清楚外,还从我们自身的开发经验出发,让读者深入了解整个RPG游戏开发的全过程。这样,读者就能更好地把握RPG游戏开发的步骤,从专业角度去监督整个游戏项目,尽可能地防止错误的开发思想。 本书共分6章,第1章属于游戏开发应掌握的基本知识;第2,3章属于游戏编写中比较有意思的基础内容,讲述图像与音效的编写;第4章是本书重点,详细介绍了从各个构成要素到整体的设计方法;第 5, 6章属于一些高级内容,讲述 3D技术、类封装、AI、编写技巧等。 本书配套光盘包括本书的所有实例程序。源文件及教程,还包括一些非常实用的工具。 最后,感谢所有支持我们编写本书的朋友们2感谢云风工作室以及樊一鹏无偿提供的开发工具,谢谢他们的大力支持!同时,向所有提供文档、程序代码及图片的第二人生会员们表示感谢!他们是:王远、曾松、马俊、杨波、吴梦华、赵之阳、黄淼心。陈锐、何杰、谌鸿潮。李海涛。 第二人生游戏开发工作室网址:http://www.uocpk.net/Secondlife/ 编者 序言回到顶部↑《快乐写游戏轻松学编程》丛书是重庆大学出版社为广大计算机编程爱好者和电脑游戏玩家送上的一份厚礼,是一套集学习、娱乐于一体的,全新教授模式的好书。全套书由陈其总策划,在多维图书策划中心以及各游戏工作室的鼎力协助下得以顺利出版。现就丛书的有关问题作出说明。 编程游戏 程序是计算机的灵魂,掌握了编程技术就可以随心所欲地让计算机为你服务,让它实现你的梦想。但学习过程中大量的命令和语句又让人感到枯燥乏味,而每一个学编程的人都有过面对一大堆熟悉的命令却组织不起一个像样的程序的经历。于是我们联想到了一种让很多朋友都着迷的程序——电子游戏。 l)第9艺术 电子游戏如同戏剧。电影一样,是一种综合艺术,并且是更高层次的综合艺术,它的出现代表了一种全新的娱乐方式——交互式娱乐(Interactive Entertainment)的诞生,而且从它的诞生到现在一直以其独特的魁力吸引了许多玩家,同时也激发了更多的人想写游戏的愿望。 一种事物,当它具有丰富而独特的表现力时,当它能给人们带来由衷的欢愉时,当它表现为许许多多鲜明生动的形象时,它就是一种艺术。电子游戏已经成为一门艺术,继绘画、雕刻。 建筑、音乐、诗歌(文学)、舞蹈。戏剧、电影(影视艺术)之后人类历史上的第9艺术。20世纪70年代,出现了第一批简单的电子游戏;今天,它已经发展成为拥有亿万游戏迷的独立的新型艺术样式,向世人显示了其强大的艺术生命力。《文明》、《Doom》、《魔法门》……一个又一个奇迹在产生,进人这个行业成了很多人的梦想。娱乐界的大腕:卢卡斯、派拉蒙、华纳等都已致力于电子游戏产品的开发,并推出了一大批优秀的交互式电影(Interactive Movie)。在世界范围内,电子游戏业的利润已经超过了美国的电影工业和日本的汽车工业。相信不久的将来必然有一大批杰出的电影导演和真正的艺术家投身于电于游戏艺术作品的开发。而VR头盔与3D音效卡的诞生已使电子游戏远远跳出了一般电影所能达到的视听层次。可见,电子游戏已经将视听综合艺术推向了一个崭新的高度和崭新的领域。 在中国,电子游戏曾一度被称为是“电子海洛因”,一些教育界人士痛斥电子游戏是如何毒害青少年,如何损害人的健康。其实与其千方百计扼杀它,还不如共同想办法来扬其长、避其短。因为绝大多数反对电子游戏的人,并不是反对电于游戏本身,而是反对电子游戏中存在的消极面。正如水能载舟亦能覆舟的道理一样,任何事物都有其两面性,关键是怎样利用好的那一面为人类造福。 本丛书正是要利用电子游戏的积极面,将枯燥的学习融人轻松的游戏之中,达到喻教于乐的目的。 2)培养全局观 许多刚学编程的朋友总是把大量的精力花在了命令和语句上,或是集中精力去学习那些复杂的函数。他们都忽略了怎样去实现一个完整的程序,所以有很多初学者到现在还没写过一个完整的程序。为了避免这种情况,在编写游戏实例时,各书都使用了简单而功能强大的游戏开发引擎,读者能非常轻松地学会如何显示图像文件、播放声音及控制输入设备等游戏中必备的功能,然后把注意力集中到如何实现一个完整游戏的过程及原理上来。 通过细致的讲解,读者朋友很快就能从实例中体会出程序全局观的作用和地位,并在一步步的学习后掌握它。 编程工具 作为一名程序员,要做的第一件事就是选择一把顺手的武器——编程工具。做程序的朋友都知道,比较流行的编程工具颇多,比如:VC,VB,DEPHI、汇编等等。由于本丛书是从编写游戏出发的,而为了能够完成一个完美的游戏编程工具应具有贴近底层、代码运行速度快、便于优化等优点。于是VC成了不二之选。 初学VC,会因为观念的改变而不知所措。其实,每个人时刻都面临着新知识的学习和旧知识的更新。这就好比,只有踏出新的一步才能前进。那么如何才能更快的学会程序(游戏)开发呢?很简单,那就是“边学边做”!所谓知识来源于实践,做做学学,学学做做,这样你很容易就能融汇贯通了。所以,首先了解一些VC使用常识,照着书中的一些简单的例子一步一步的实际操作,从中学会一些基本的游戏开发常识。然后学习一些C+十理论知识,选一些难一点的例子来学。之后再学一些游戏开发的高级技术,试着自己开发一个游戏出来。罗马不是一天建成的,饭不是一口吃得完的,游戏也不是一会就能做出来的。所以,每天砌一块砖,不久一座美丽的城堡就矗立在你面前了。 衷心祝愿每位读者能在本丛书中吸收到有用的知识。
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值