 |
角色扮演游戏引擎的设计原理
|
|
| |
| 角色扮演游戏引擎的设计原理
角色扮演游戏(RPG)是深受广大游戏迷们喜爱的一种游戏, 它以独特的互动性和故事性吸引了无数的玩家。它向人们提供了超出现实生活的广阔的虚拟世界,使人们能够尝试扮演不同的角色,去经历和体验各种不同的人生旅程或奇幻经历。这些体验都是在现实生活中无法实现的。在玩过许多游戏后,许多玩家都不再仅仅满足于一个游戏玩家的身份,而会思考游戏是如何制作的,并且打算制作一个自己的游戏,网上的各种游戏制作小组更是如雨后春笋般涌现。下面我就给大家介绍一下角色扮演游戏引擎的原理与制作,希望能对游戏制作爱好者有所帮助。
一 游戏引擎的原理
说到引擎,游戏迷们都很熟悉。游戏引擎是一个为运行某一类游戏的机器设计的能够被机器识别的代码(指令)集合。它象一个发动机,控制着游戏的运行。一个游戏作品可以分为游戏引擎和游戏资源两大部分。游戏资源包括图象,声音,动画等部分,列一个公式就是:游戏=引擎(程序代码)+资源(图象,声音,动画等)。游戏引擎则是按游戏设计的要求顺序的调用这些资源。
二 角色扮演游戏的制作
一个完整的角色扮演游戏的制作从大的分工来说可以分为:策划,程序设计,美工,音乐制作以及项目管理,后期的测试等。
策划主要任务是设计游戏的剧情,类型以及模式等,并分析游戏的复杂性有多大,内容有多少,策划的进度要多快等因素。
程序设计的任务是用某种编程 ...
|
|
| 作者:不祥 guifang张贴于2004-06-20 11:42:57.0,共阅读2328次,回复1次 |
|
|
 |
用DirectDraw编写动画程序
|
|
| |
| 一.理论篇 说起DirectDraw也许大多数人还不知其为何物,但一提到DirectX恐怕每一个Computer Fan 和Game Fan都再耳熟不过了。(什么!你没听说过DirectX!?Oh,My god!来人哪,拉下去重责五十大板!)DirectX又叫Game SDK,它最大的特点是直接对硬件的抽象层(HAL)进行操作,利用这个特点可以制作出高性能的Windows游戏。具体信息请见http://www. microsoft.com/directx/default.asp。 DirectDraw就是DirectX5的6个组件之一。DirectX5的其它5个组件分别是: Direct3D:提供了3D硬件接口。 DirectSound:立体声和3D声音效果,同时管理声卡的内存。 DirectPlay:支持开发多人网络游戏,并能处理游戏中网络之间的通信问题。 DirectInput:为大量的设备提供输入支持。 DirectSetup:自动安装DirectX驱动程序。 而DirectDraw则是DirectX的基石,DirectX的其它组件都是建立在它的基础之上的。DirectDraw使用页面切换的方法实现动画,它不仅可以访问系统内存,还可以访问显示内存,这是以往的Windows程序员所不能的。另外,我们利用DirectDraw还可以生成、移动、剪切、 ...
|
|
| 作者:不祥 jerry张贴于2004-06-11 09:48:45.0,共阅读2838次,回复1次 |
|
|
 |
C++源代码游戏编程--WinMain()函数集
|
|
| |
| C++源代码游戏编程--WinMain()函数集
C++源代码游戏编程--WinMain()函数交流
//******************************************************************
//函数:WinMain()
//功能:应用程序入口
//******************************************************************
int PASCAL WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MSG msg;
hInst=hInstance;
//初始化主窗口
if (!InitWindow( hInstance, nCmdShow))
return FALSE;
//初始化DirectDraw环境
if (!InitDDraw())
{
MessageBox(hWndMain, "初始化DirectDraw过程中出错!", "Error", MB_OK);
FreeObjects();
D ...
|
|
| 作者:不祥 guifang张贴于2004-06-20 11:46:28.0,共阅读6220次,回复4次 |
|
|
 |
刷屏技术的实现
|
|
| |
|
在实现绘图的过程中,显示的图形总是会闪烁,笔者曾经被这个问题折磨了好久, 通过向高手请教,搜索资料,问题已基本解决,现将文档整理出来以供大家参考. 1.显示的图形为什么会闪烁?
我们的绘图过程大多放在OnDraw或者OnPaint函数中,OnDraw在进行屏幕显示时是由OnPaint进行调用的。当窗口由于任何原因需要重绘时,总是先用背景色将显示区清除,然后才调用OnPaint,而背景色往往与绘图内容反差很大,这样在短时间内背景色与显示图形的交替出现,使得显示窗口看起来在闪。如果将背景刷设置成NULL,这样无论怎样重绘图形都不会闪了。当然,这样做会使得窗口的显示乱成一团,因为重绘时没有背景色对原来绘制的图形进行清除,而又叠加上了新的图形。有的人会说,闪烁是因为绘图的速度太慢或者显示的图形太复杂造成的,其实这样说并不对,绘图的显示速度对闪烁的影响不是根本性的。例如在OnDraw(CDC *pDC)中这样写:
pDC->MoveTo(0,0);
pDC->LineTo(100,100);
这个绘图过程应该是非常简单、非常快了吧,但是拉动窗口变化时还是会看见闪烁。其实从道理上讲,画图的过程越复杂越慢闪烁应该越少,因为绘图用的时间与用背景清除屏幕所花的时间的比例越大人对闪烁的感觉会越不明显。比如:清楚屏幕时间为1s,绘图时间也是为1s,这样在10s内的连 ...
|
|
| 作者:不祥 jerry张贴于2004-06-08 11:34:24.0,共阅读2695次,回复0次 |
|
|
 |
如何真实地模拟火焰效果
|
|
| |
| 模拟火焰效果如何真实地模拟火焰效果
作者:周军
游戏制作离不开各种各样的特效,火焰效果更是这些特效当中最常用的一种。在网上有很多的这方面的例子,但似乎都不太理想。下面我主要介绍几种有效的火焰模拟算法。
在讲述火焰算法之前,我想先介绍一个经典的Blur算法,这将为我们后面的文章提供很好的技术基础,因为这是模拟火焰的关键所在。^_^ 对于不同的效果我们要采取不同的模糊(Blur)算法,在这里我只介绍最简单的一种。
其实Blur算法相当简单,并不像很多人想象的那么神秘,只要一句话就可以解释清楚。我们所要做的不过是把屏幕上的每一个点用它周围的四个点的平均值代替即可。即:
好了,下面我们进入主题,Let’ s get in …… FIRE ! ! !
总的来说,模拟一个火焰效果需要以下这三个步骤:放置热源、火焰上升、减掉衰减因子。
1. 放置热源:
放置热源很好理解,也很好实现,我们只需要在屏幕的适当位置(想升起火焰的地方)放上一些亮点就可以了,比如:
for (int i=0; i<320; i++)
putpixel (i, 199, rand()%256);
2. 火焰上升:
我们已经有了热源,那么如何使火焰升起来呢?这就要用到我们刚才讲到的Blur了。由于火焰是要向上升的,所以我们不能简单的选择待处理pixel的上、下 、左、右四个 ...
|
|
| 作者:不祥 xler张贴于2004-05-19 20:05:02.0,共阅读2224次,回复0次 |
|
|