分享
 
 
 

Visual C++ 冒险游戏程序设计 笔记(1)(不断更新……)

王朝vc·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

前段时间阅读《Visual C++ 冒险游戏程序设计》,顺便作了点笔记,现登在这里,认为值得看的朋友就看看吧……

CHAPTER 1来做冒险游戏吧

冒险游戏(AVG):Adventure Game---虚拟体验故事的游戏总称。

在冒险游戏中,故事是最重要的部分,所以“剧情(Scenario)”

冒险游戏多半规模很大,所以制作时多半是分工作业。

冒险游戏制作各职务:

1. 企划:5w1h(何时、何地、谁、为什么、讲什么、如何做),担任企划负责人最重要的不是好构想,而是要有能将构想传达给其他每个负责人的能力。

2. 剧本作家(Scenario Writer)

3. 原画师

4. 美工(彩色:Graphicer)

5. 音乐(BGM):制作的音乐必须数字化,通常都是转成WAV格式,不过也有转成DAT格式的。

6. 程序设计师:最好是能够掌握整体作业内容的人。

7. 辅助程序设计师:将剧情Script化。

企划的写法与读法

1. 无法实现的内容

2. 条理不清

3. 只有描述插曲的企划

4. 怎么看都看不懂的企划

5. 好的企划案、不好的企划案

不好的企划案:通常是“太拘泥于格式与体裁”,或是“只写满自己想做的部分”这种自我满足的占了大半,最后就造成前述的问题。

好的企划案:可以确定表达想要传达给玩家的是什么。让读完企划案的工作人员也会感觉“我想做这个游戏”的才是好的企划。“内容绝对比体裁重要”

制作游戏需要什么?

Windows环境

1. 编译器:整合开发环境(IDE)

2. 电脑

3. 其他器材

4. OS

5. 数据

6. 其他需要的东西:

(1)MSDN (2)编辑器(3)数据制作方法的相关数据

CHAPTER 2设计一个游戏

一.游戏设计:Game Design

1. CG张数。建议最初先决定CG的张数。

2. 故事的规模。例如:CG张数:32页*5格=160,台词的句数:160格*2=320。

3. 调整CG与台词的量。

4. 若是为兴趣而做的呢。程序部分,就应该做到“尽可能地不要有限制”。最好是写出可以超过1000张CG、台词,或信息超过20,000句也能正常运作的水平。

二.设计游戏系统

故事是冒险游戏的核心。故事就是剧本。冒险游戏则是根据剧本的指示在运作。使用脚本指令稿的语言方式,写出人类与电脑都能懂的剧本。

1. 剧本与脚本指令稿(Scenario与Script)

A. 脚本指令稿是什么:脚本指令稿是为了让程序方便读取的,所以要按照固定的规则(语法)来写。

B. 使用简浅的语言。写脚本的是剧本作家。这里要做的游戏系统,是以“在剧本里填入命令“为出发点所制定出来的。

2. 脚本播放器的规格

A. 画面颜色数与穿口大小。640*480和800*600。(当图片重叠时,如果调色板不同,就无法收敛与256色。

B. CG的大小:640*480,颜色数是1,677万色。

C. CG重叠的有无与张数。这里把游戏设计成背景上可以重叠单张CG。图片重叠主要用于在对话的场景显示人物之用。也可以不用重叠,而将所有数据作成一张CG,或采用可以重叠多张图片的做法。当重叠多张图片时,就要考虑到内存使用量与重叠的前后关系。

D.文字字数与字体大小

E. 文字框的修饰

F. 剧本的大小

3. 准备资料

A. 原画:长宽比“3:4”(480*640);最大A4;线条要扎实画黑;

B. CG资料:格式是DIB形式(扩展名是.bmp),一般称为“Windows点阵位图”。使用RGB(0,255,0)或RGB(0,254,0)代替透明色。

CG资料的规格决定了下面几项要点:

a. 大小:640*480

b. 格式:24位DIB形式

c. 角色的背景涂成“RBG(0,255,0)”

d. 站立角色的大小可以使用“320*480”象素

C. 音乐资料:BGM(背景音乐)。格式:44.1kHz/16位立体声的WAVE文件。

D.脚本:在剧本里加上游戏用的命令、CG插画、音乐等的指示,而让程序读取的东西,就是“脚本”

游戏设计的决定事项:

a. 画面大小:640*480象素,1677万色。

b. CG大小:640*480象素,1677万色。

c. CG重叠:背景与上面可以重叠一层图。

d. CG张数:100张左右。

e. 显示文字格式:35字*4行(包括不合法文字)/字体/16点/粗体。

f. 字框/装饰:显示在半透明的区域/不加修饰。

g. 原画:长宽比“3:4(480*640)”/最大A4/线条要扎实画黑。

h. CG资料:背景:640*480象素/24位DIB形式;角色:320*480象素/背景涂成“RGB(0,255,0)”。

i. 音乐资料:BGM:CD-DA(播放音乐CD);效果音:WAVE数据。

j. 脚本:转换后的大小不超过64KB,一个脚本使用的变量不超过100个。

CHAPTER 3建立类库

一.游戏系统的程序设计

1. 只学习需要的知识

A. Win32 API(GDI、Kernel、Multi Media、Common Control……)、DirectX、OLE、MFC、ATL还有开发用的程序语言相关知识(语法和类库等)。如果等到搞懂全部这些,人已经瘫一半了。

B. 实现游戏系统需要理解的项目

a. 列举需要的项目

① 打开窗口

② 将图片从文件中读入并显示

③ 显示文字

④ 显示菜单

⑤ 读入脚本并执行★

⑥ 在背景播放音乐

⑦ 尽可能地追加一些华丽的功能

b. 要怎么实现呢?

核心:执行脚本是最主要的功能。

二.打开窗口

1. 将建立窗口的动作类库化(建立出游戏专用的小规模类库)。

① Visual C++的工程设定

② 建立新工程

③ 建立、加入文件

④ 设定路径

⑤ 工程用到的文件

StdAfx.h 预先编译表头

StdAfx.cpp 预先编译表头

rescource.h 在资源编辑器中使用

Sample.h 定义CSampleWin、CSampleApp等类

Sample.cpp 定义函数

注释:StdAfx.h和StdAfx.cpp是VC++的整合环境Developer Studio为了对表头进行“预编译(Precompile)”,将windows.h等常用的表头文件一次性读取进来用的文件。而StdAfx.cpp也只是用来引入StdAfx.h而已。

三.建立类库

类库的建立方式:在日后写程序时,只要以类库为基础,改写所需的操作,这样当要扩充程序功能的时候,就不需要从头开始写起了咯。

使用类库扩充所需功能的方法如下:(在设计时必须把该写的部分独立出来)

① 引入类

② 继承该类

③ 重载(overload)成员函数

1. 类库是什么?

类库可以让我们更简单地使用Win32 API 与C++。所以,内容应该是Win32 API加上一些其他的处理动作。

2. 类库里的基本类:有用来控制应用程序的CWinApp类、控制窗口的CWindow类以及控制绘图所需的Device Context的CDC类。

⑴应用程序类(Application.h/Application.cpp)

a. CWinApp::CWinApp—构造函数(应用构造函数时,会初始化成员变量,并象这样将自己本身登录到外部变量上)

b. CWinApp::CWinApp---初始化应用程序(用来初始化应用程序的函数。如果在初始化时要做些其他处理,就要重载这个函数)

c. CWinApp::Run---消息循环(进行消息循环。)

d. CWinApp::RegisterWndClass---登录窗口类(使用RegisterClass, 登录窗口类)

⑵ 建立窗口和消息处理(Window.h/Window.cpp)

a. CWindow::Create----建立窗口

b. CWindow::WindowListTop---窗口列表路径

c. CWindow::GetWindow---从窗口列表取得到指定的CWindow对象

CWindow::AddWindowList---在窗口列表登录窗口

CWindow::DeleteWindowList---从窗口列表删除窗口

d. CWindow::WindowProc----消息处理(找到实体时,就要调用成员函数CWindow::WindowProc)

e. CWindow::LoadAccelTable---读取键盘快捷键表格

CWindow::PreTranslateMessage----消息前置处理。

f. 其他的成员函数

⑶HDC的包装类(dc.h/dc.cpp)

a. CPaintDC::CPaintDC---CPaintDC构造函数

b. CPaintDC::~ CPaintDC---- CPaintDC析构函数

为了绘图,还需要取得下面这些DC:

CClientDC:客户区域(窗口中可以绘图的区域)的DC。

CMemoryDC:取得绘图缓冲区的DC。

CScreenDC:整个画面(桌面)的DC。

⑷实例应用程序(Sample.cpp)

a. 建立窗口

b. 在窗口中显示文字

c. 点选菜单中的“结束”可关闭应用程序。

CSampleApp::InitInstance----建立窗口

CSampleApp::OnPaint----窗口重绘

CSampleWin::OnCommand----菜单的响应

⑸TRACE宏

(不断更新……)By Hackyeat(http://www.HackerStudio.Com)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有