欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    C++课程设计(论文)-俄罗斯方块游戏设计.doc

    • 资源ID:3257792       资源大小:303.04KB        全文页数:38页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C++课程设计(论文)-俄罗斯方块游戏设计.doc

    二二级级实实践践课课题题设设计计任任务务书书 姓姓 名名 专业专业 班班 题题 目目 俄罗斯方块 设设 计计 任任 务务 俄罗斯方块设计的设计任务是采用 MFC AppWizard 应用程序的 SDI 程序框架,设 计该游戏,实现方块预览、方块控制、显示更新、游戏记分、游戏等级、游戏帮助等 功能。方块控制,直接由玩家通过键盘控制,游戏区域的方块部件根据玩家具体键盘 的操作左右移动、旋转、加速下落。游戏地图即“矩形容器”根据具体数据,通过载 入位图为游戏创建背景。 开发工具:VisualC+6.0、Photoshop 时时 间间 进进 度度 第 17 周(2010-06-282010-07-02):做游戏前的设计构思,参考相关资料, 封面的设计。 第 18 周(2010-07-052010-07-09):着手进行游戏的编程和附加功能的添加。 第 19 周(2010-07-122010-07-16):对游戏进行测试以及文档的书写。 原主原主 始始 要要 资资 参参 料料 考考 与与 文文 献献 01王明福 主编.Visual C+ 程序设计.北京:高等教育出版社,2003 02王鹏生.VC+游戏编程: 汕头大学. 2001.12 03谭浩强 编著.C+程序设计.北京:清华大学出版社,2004 04罗建军等 编著.大学 Visual C+程序设计案例教程.北京:高等教育出版社,2004 05孙鑫,余安萍 著.VC+深入详解.北京:电子工业出版社.2006 06古万荣 著.Visual C+ 完全自学手册.北京:机械工业出版社,2009 指指导导教教师师签签字字: 年年 月月 日日 俄罗斯方块 I 摘 要 在现今电子信息高速发展的时代,电子游戏已经深入人们的日常生活,成为老少皆 宜的娱乐方式。但是游戏设计结合了日新月异的技术,在一个产品中整合了复杂的设计、 艺术、声音和软件,所以并不是人人皆知。直到今天,在中国从事游戏设计的人仍然很 少,但是游戏行业的发展之快,远超如家电、汽车等传统行业,也正因为如此,游戏人 才的教育、培养远落后于产业的发展。 本文描述了我所学习过的游戏设计的几个方面,也是游戏设计中最常用的技术。首 先对游戏的概念及其发展过程做了整体的描述;接着介绍了游戏设计的基本思路、架构 与规划、游戏剧情等游戏策划方面的内容;随后对贴图、动画、物理动作模拟、消息管 理、人工智能等方面以 Visual C+为例做了一些描述;还以“俄罗斯方块”游戏为例,具 体讨论了实现游戏编程的方法,如游戏界面框架的创建、背景显示、方块的控制和显示、 成绩等,最后是总结。 此次设计在 Microsoft Windows XP 系统下,以 C+为开发语言,在 Visual C+开发 平台上进行电子游戏的设计与实践。 这款游戏看似简单却变化无穷,通过该游戏设计,达到以下目的: 1、 了解 Visual C+ 6.0 下可视化编程的特点,熟悉其相应的各种操作和技巧。 2、 了解随机函数的使用、动态存储空间的分配和回收、位图资源的引入和操作。 3、 掌握 MFC 类家族中,键盘消息、菜单、工具栏、定时器。 4、 掌握俄罗斯方块游戏开发的基本原理,强化基本编程能力和游戏开发技巧。 关键词: 电子游戏;游戏设计;俄罗斯方块;Visual C+6.0;Photoshop 俄罗斯方块 2 目 录 摘 要 .I 第 1 章 绪论.4 1.1 电子游戏机及其分类4 1.2 电子游戏发展现状4 1.2.1 电子游戏在国外的发展现状.4 1.2.2 电子游戏在国内的发展现状.6 1.3 俄罗斯方块简介7 1.4 设计工具简介8 第 2 章 游戏设计概述.9 2.1 为什么使用 Visual C+来设计游戏9 2.2 游戏架构与规划10 2.3 游戏剧本的规划和设计12 第 3 章 俄罗斯方块的实现.15 3.1 资源编辑15 3.2 变量函数15 3.3 具体实现18 3.3.1 构造函数.18 3.3.2 画图函数.18 3.3.3 界面函数.18 3.3.4 信息函数.18 3.3.5 菜单开始函数.19 3.3.6 开始函数.19 3.3.7 预备方块.20 3.3.8 计时器函数.20 3.3.9 键盘操作.20 3.3.10 移动函数.20 3.3.11 消行函数.20 3.3.12 过界或重叠.21 3.3.13 变换函数.21 3.3.14 暂停和热键.21 俄罗斯方块 3 3.3.15 改变窗口大小和添加背景音乐.21 第 4 章 游戏操作及测试.26 第 5 章 附加功能.27 5.1 日历27 5.2 计算器:28 第 6 章 课程设计心得与体会.32 参考文献.34 指导教师评语.35 附录:附加图:36 俄罗斯方块 4 第 1 章 绪论 通过绪论能够让我们了解到如今游戏的发展现状和前景,让我们清楚游戏 的种类,游戏在今后人们的生活中所扮演的重要角色。 1.1 电子游戏机及其分类 电子游戏,也就是运行在家用电脑、家用电子游戏机或是掌中宝游戏机及 街机上的电子游戏程序。电子游戏是一种结合剧情故事、美术、音乐、动画、 程序等技术于一身的互动型娱乐软件,涉及到多个行业1。 从电子游戏的分类来看,有着多种分类方式2。传统的游戏分类是按照游 戏类型,将其分为即时战略游戏、第一人称射击游戏、角色扮演游戏、策略型 游戏等类别。根据游戏运行平台的不同,可将电子游戏分为游戏机游戏、单机 版 PC 游戏、互动电视游戏、在线游戏和手机游戏。此外,韩国政府将电子游 戏业分为家用游戏机游戏、单机版 PC 游戏、网络游戏和街机游戏四大类。考 虑到中韩游戏业比较接近,论文采用韩国的分类标准。 “网络游戏”也就是人们 一般所指的“在线游戏” ,是指通过互联网进行的电脑游戏,通过人与人之间的 互动达到交流、娱乐和休闲的目的。在互联网(局域网)技术出现之前,电子 游戏都可以归于单机版游戏,即“人机对战”游戏,或最多是双人对战游戏。 而随着互联网技术的出现,通过连接游戏服务器,上百、上千、乃至上万的游 戏玩家同时连线娱乐成为了现实,这就大大增加了游戏的互动性、真实性,丰 富了电子游戏的内涵。从网络游戏的分类来看,目前业界还没有一个比较统一 规范的分类。随着计算机设备和网络技术的发展,电子游戏在全球得到了迅猛 的发展,取得了巨大的成功,已成为当今世界上不可缺少的精神粮食。 1.2 电子游戏发展现状 由于国内外的计算机发展水平不一样,我国的游戏发展水平和国外的游戏 发展水平也不一样。 1.2.11.2.1 电子游戏在国外的发展现状电子游戏在国外的发展现状 电子游戏是最初产生于美国,1971 年,一个还在 MIT 就读的学生设计了世 界上第一个业务用游戏机,这个街机游戏的名字叫电脑空间 。可以说时至今 俄罗斯方块 5 日,电子游戏仍然是外国的天下。 美国至今仍是世界第一大游戏市场,它遵循的是以发行商为主的产业开发 链模式,根据美国市场调查公司 NPD Group 调查统计,美国 2004 年游戏总销 售金额(包括家用、掌上型主机及软件)为 99 亿美元,占了全球游戏市场的 45%。其中游戏软件销售的具体数字是:视频游戏软件的销售额达 52 亿美元 (1.6 亿套),PC 游戏软件销售额达 11 亿美元(4500 万套),掌机游戏销售额达 10 亿美元(4230 万套)。2004 年一共大约有 2.48 亿套游戏售出。据估计,美国每个 家庭平均购买过 2 部游戏。 日本近 20 年来疯狂赚电子游戏的钱。从上世纪 60 年代初的街机,到六七 十年代之间的家用游戏机,再到八九十年代的掌上游戏机,日本经过 30 多年的 耕耘,终于把电子游戏这棵“摇钱树” ,培育成第一时尚娱乐产业,垄断全球业 界长达 10 余年。对于日本来说,电玩业已是国家经济的重要支柱之一,在 GDP 中占有 1/5 的举足轻重地位。日本游戏业在最辉煌的 1998 年,曾经占领全 球电子游戏市场硬件 90%以上,软件 50以上。 韩国号称世界上网络游戏产业最发达国家之一。迄今为止,国内网络游戏 市场有超过 60%的产品来自韩国游戏软件开发商,韩国网络游戏使国内很多游 戏运营公司在游戏营销市场或股票资本市场上获得了巨大的成功。韩国游戏市 场的发展不是偶然,韩国政府不仅给游戏产业以正确的定位和引导,更是将其 和本国经济发展紧密地联系到一起,做了很多市场培育方面的工作。韩国政府 认识到,靠重型工业来支撑全国经济的做法是片面的,于是将、娱乐产业 视为新的经济增长点,开始大力扶持。从那时起,科技含量极高而能源消耗极 低的游戏制作及相关产业担负起了“富国兴邦”的重担。由文化观光部出面组 建韩国游戏支援中心,向韩国游戏产业提供从资金到技术上的多方面支援;成 立游戏投资联盟,政府每年向游戏产业投入的资金多达亿韩元,并为游 戏企业提供长期的低息贷款;设立信息化基金和文化产业基金,为游戏产业服 务;对指定的风险企业实行各种税制优惠政策,减少甚至免除游戏企业的税务 负担;建设游戏产业基地以扶持中小游戏企业的发展;对从事游戏产业的高科 技人才免除两年的兵役。在韩国,从制作到运营,一个网络游戏公司起步门槛 较低,主要得益于政府实行的援助计划。此外,在有利的政策形势下,韩国出 现了众多的游戏院校,一些原本不涉足此领域的大学也开设了游戏相关专业课 俄罗斯方块 6 程,以大力培养游戏专业人才,从而为游戏生产提供了基础保障。 1.2.21.2.2 电子游戏在国内的发展现状电子游戏在国内的发展现状 与电子游戏发达的国家相比,我国在电子游戏方面还存在比较大的差距。 目前,我国游戏市场正处于发展阶段,但市场上的游戏软件主要来自日本、美 国、韩国等地,但由本土游戏制作人开发创作的游戏正在高速增加,国产原创 的游戏即将成为游戏的主流。 中国的游戏产业经过 80 年代初期台湾厂商的探索至 90 年代,开始了自己 的研发、发行的历程,直至网络游戏的风行,让中国的网络游戏开始有了飞速 的发展。 1983 年,智冠科技有限公司在中国台湾成立,为全球第一家签订授 权重制中文版产品代理销售合约的公司,2000 年智冠在台湾股票上市, 2002 年其控股的中华网龙在台湾上市。 1996 年底,UBI SOFT 上海分公司暨上海育碧电脑软件有限公司成立。同 年,全球游戏软件领军企业 EA 在中国上海成立办事处。1997 年,由尚洋公司 制作的血狮正式上市。 1997 年,北京新天地互动多媒体技术有限公司成 立,该公司引进了古墓丽影 III (TombRaider III) 、 盟军敢死队等著名欧 美游戏,并在 1999 年在中国率先掀起“游戏软件价格革命” ,全面推行 50 元的 价格体系,从此正版游戏价格开始贴近大众消费者。 1999 年,业内估算中国 电脑游戏市场(正版)约 1.5 亿元人民币。 2000 年,大陆华彩软件代理发行第 一款中文 MMORPG万王之王正式推出,该游戏于 1999 年在台湾发行,由 台湾雷爵资讯(Lager)开发。也在 2000 年,继万王之王 、 石器时代 、 网络 三国在台湾上市之后,游戏桔子推出了天堂 ,游戏桔子成立于 1995 年, 1999 年以便利店在台湾奠定了地位。 天堂这款由韩国著名游戏公司 Ncsoft 研发的网络游戏不但在本国大获成功,也在台湾再次夺冠。 2001 年初, 北京华义在中国大陆地区正式推出了石器时代 ,华义国际股份有限公司于 1993 年在台北成立,2001 年在台湾股票上市。 石器时代成为大陆当时最流 行的网络游戏。2001 年,天人互动软件技术有限公司在北京成立。当年与 SEGA 结成 PC 游戏业务的战略合作关系,发行了樱花大战 文明 无 冬之夜等经典游戏,2002 年,引进在欧美网络游戏魔剑 (Shadow Bane) , 这是首款在中国测试的欧美网络游戏。 2001 年 5 月, “联众世界”经过 3 年多 俄罗斯方块 7 的迅速成长,以同时在线 17 万人、注册用户约 1800 万的规模,成为当时世界 用户数量第一的在线游戏网站。 2005 年 1 月 21 日,中央电视台报道:我国网络游戏产业当年增加了 50%,今后几年都将以 50%以上的速度增长;第一届中国网络游戏年会报道: 中国国内网络游戏 2004 年规模达 24.7 亿元,2009 年规模将达到 109.6 亿元。 1.3 俄罗斯方块简介 俄罗斯方块原本是前苏联科学家阿列克谢·帕基特诺夫所开发的教育用软件, 之后开始提供授权给各个游戏公司,造成各平台上软件大量发行的现象。Game Boy 版的俄罗斯方块在日本卖出 424 万套,是 Game Boy 史上卖最好的游戏。 海湾战争时,也是前线美军最常拿消磨时间的游戏之一。由于俄罗斯方块具有 的数学性、动态性与知名度,也经常拿来作为游戏程序设计的练习题材。俄罗 斯方块曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事,它看 似简单但却变化无穷,令人上瘾。相信大多数用户都还记得为它痴迷得茶不思 饭不想的那个俄罗斯方块时代。俄罗斯方块上手极其简单,但是要熟练地掌握 其中的操作与摆放技巧,难度却不低。作为家喻户晓老少皆宜的大众游戏,其 普及程度可以说是史上任何一款游戏都无法相比的。 俄罗斯方块的基本规则: 1、一个用于摆放小型正方形的平面虚拟场地, 其标准大小:行宽为 10,列高为 20,以每个小正方形为单位;做为装饰的俄罗 斯方块。2、一组由 4 个小型正方形组成的规则图形,英文称为 Tetromino,中 文通称为方块共有 7 种,分别以 S、Z、L、J、I、O、T 这 7 个字母的形状来命 名; 3、通过设计者预先设置的随机发生器不断地输出单个方块到场地顶部, 以一定的规则进行移动、旋转、下落和摆放,锁定并填充到场地中。每次摆放 如果将场地的一行或多行完全填满,则组成这些行的所有小正方形将被消除, 并且以此来换取一定的积分或者其他形式的奖励。而未被消除的方块会一直累 积,并对后来的方块摆放造成各种影响。4、如果未被消除的方块堆放的高度超 过场地所规定的最大高度(并不一定是 20 或者玩家所能见到的高度) ,则游戏 结束。 具体到每一款不同的游戏,其中的细节规则都可能有千差万别,但是以上 的基本规则是相同的。1. 按游戏界面的“开始“按钮或者 F2 键来开始游戏,自 俄罗斯方块 8 己使用右边的窗口,对手使用左边的窗口。2. 键盘操作:系统缺省设置使用右 边的窗口,用光标操作,“左移一格;“右移一格;“旋转方块; 方块丢 下(方块下落到底) ,“End“健可以一格格的下落,用户还可以自定义习惯的按 键来操作游戏。3. 计分牌显示的内容: “分数”为本局的分数,计分标准一次 消一行 1 分、2 行 3 分、3 行 6 分、4 行 10 分。当分数达到一定的值,等级就 会提升、速度加快。 1.4 设计工具简介 本次设计以 Visual C+和 Photoshop 为设计工具进行。C 语言是一种高效率 的计算机程序设计语言,而 Visual C+则是在 C 语言基础的基础上开发从出的 一套功能强大的程序设计工具6。C+是一种通用的程序设计语言,其设计就 是为了使认真的程序员工作的更愉快。除了一些小细节之外,C+是 C 程序设 计语言的一个超类。 C+里的最关键概念是类。一个类就是一个用户定义类型。 类提供了对数据的隐藏,数据的初始化保证,用户定义类型的隐式类型转换, 动态类型识别,用户控制的存储管理,以及重载运算符的机制等。对于追求速 度与表现效果的游戏程序,Visual C+可以说是最佳的开发工具。在目前的商 业游戏程序设计领域中,大多是使用 Visual C+作为开发工具。因为 Visual C+有优异的运行速度,还可以直接访问内存。刚开始形成的是 C 语言,那些 想建立更快更有效的代码的程序员非常欣赏 C 语言,有一位名叫 Bjarne Stroustrup 的人却不满足于仅仅是生产快速代码,他想创建面向对象的 C 语言编 程。他开始对 C 语言的内核进行必要的修改,使其能满足面向对象模型的要求。 C+从此产生。Bjarne Stroustrup 是 C+的最初设计者和实现者。它自诞生以来, 经过开发和扩充已成一种完全成熟的编程语言。现在 C+已由 ANSI、BSI、DIN、其他几个国家标准机构和 ISO 定为标准。ISO 标准于 1997 年 11 月 4 日经投票正式通过。C+标准演变了许多年。C+模板是近几年来对 此语言的一种扩展,模板是根据类型参数来产生函数和类的机制,有时也称模 板为“参数化的类型” 。使用模板,可以设计一个对许多类型的数据进行操作的 类,而不需要为每个类型的数据建立一个单独的类。标准模板库(Standard Tempalte Library,STL )和微软的活动模板库(Active Tempalte Library,ATL )都 基于这个 C+语言扩展。Photoshop 作为一个图形处理软件,有较强的美化图形 俄罗斯方块 9 功能,游戏设计中,它也是一种必备的游戏软件。 第 2 章 游戏设计概述 在游戏所创造初的虚幻世界里,我们可以进行一趟惊心动魄的冒险行动, 或者是与众多武功高手对决,或者是为了保卫地球与外星入侵者打场星际大战 等等。本文将揭开游戏程序设计的序幕。 2.1 为什么使用 Visual C+来设计游戏 C 语言是一种高效率的计算机程序设计语言,而 Visual C+是在 C 语言的 基础上开发出的一套功能强大的程序设计工具。对于追求运行速度与表现效果 的游戏程序,Visual C+可以说是最佳的开发工具。在目前的商业游戏程序设 计领域中,都是使用 Visual C+作为开发工具,下面就来说明 Visual C+在游 戏程序开发上所具备的优点: 1优异的运行速度 如果您使用过 Visual Basic,那么当您在刚开始使用 Visual C+来编写程序 的时候,可能会不知从何下手,因为 Visual C+没有像 Visual Basic 一样有许多 现成的对象函数可以使用。Visual Basic 中的现成对象和函数,都是为了让 Visual Basic 程序员们能够更轻松地开发程序而实现准备的,但这些功能完整的 对象函数在执行时会占用很多计算机资源,降低程序运行效率。 而 Visual C+因为没有这些通用的对象和函数,所以开发出的程序运行速 度非常快。在后面的章节中,您将发现即使时需要进行复杂的计算机的图形处 理程序,在运行时仍然非常流畅。 2直接访问内存 在 C 语言中可以直接用指针来读写计算机内存,而且还提供了许多有关内 存处理的函数,直接读写内存的最大好处就是速度快。因为任何程序都必须读 取内存,只不过其他程序设计语言都为了防止发生内存读写不当而使用间接管 理内存的方式,这样虽然安全,但却比较耗费时间。Visual Basic 程序 直接读 写内存 ,直接读写内存的方式可以说是一把双刃剑,使用的当将大大提升程序 的运行速度,但若是使用不当,将会造成程序运行出错或者计算机死机。 3MFC 函数库 俄罗斯方块 10 MFC 函数库(Microsoft Foundation Class)是 Visual C+中的一套完整的函数 库,使用 MFC 可以让程序员很轻松地构建应用程序框架,降低使用 Windows API 开发应用程序的难度,非常适合初学 Visual C+或者游戏程序设计的人。 4使用 Windows API 在 Visual C+中使用 Windows API 是相当容易的,只要在项目中设定所要 使用的函数库并引用正确的头文件,就可以使用 Windows API 的函数与数据类 型。有关设定项目链接的函数库以及引用头文件的方法,将在后面介绍。 在 Visual C+开发环境之下,可以用具有完整面向对象属性的 C 语言作为 程序设计的主体,而且可以很容易地使用 MFC、Windows API,甚至整合其他 技术(如 DirectX 和 OpenGL)来开发游戏程序。因此,在未来的一段时间之内, Visual C+仍然会是开发程序的最佳工具。 游戏舞台的坐标系统游戏舞台的坐标系统 在开始设计游戏时,就要先确定游戏中各对象的位置,这都是通过确定其 坐标来完成的,所以在编写游戏程序之前,先说一下有关程序中的窗口区域与 坐标系统的概念。 1屏幕区、窗口区与客户区 任何一个游戏程序,不论是使用全屏幕模式还是窗口模式,都要建立一个 窗口。当窗口建立之后,对程序而言,显示屏幕被划分为三个区域:屏幕区 (Screen)、窗口区(Window)、客户区(Client)。 2坐标点与坐标转换 以屏幕左上角为原点,屏幕上的任何位置皆可以用一个坐标来表示,称它 为屏幕坐标。当程序中调用某些以坐标点为实参的函数时,都要传递相应的屏 幕坐标。如果只知道该点在客户区中的位置,则必须先将它转换为屏幕坐标。 转换客户坐标的方法实调用 ClientToScreen 函数。此外,还可以调用 ScreenToClient 函数将某一屏幕坐标点转换为其在客户区中的坐标。 2.2 游戏架构与规划 在开发游戏之前,先介绍一下一个成功的游戏应该具备的基本要素。与现 在的游戏相比,早期的游戏不论在画面的表现上,或是剧情安排上,都显得比 较粗糙。在创造一个游戏的时候,为了使游戏尽善尽美,首先要确定下列六项 俄罗斯方块 11 重要的基本要素:游戏主题的确立、剧情的发展过程、主要人物的突出、悬念 的安排、节奏的快慢、风格的呈现。下面详细介绍上述几个要素: 1. 游戏主题的确立 在开始制作一款游戏时,首先要确定游戏的主题。一般而言,可以针对不 同文化群的玩家来对游戏主题进行分类,例如以格斗的呈现方式为主题,或者 以团队合作一起攻击对方为主题等等。明确的主题可以引起玩家的共鸣,使游 戏受到玩家的喜爱。游戏主题可以分为两个部分,一种使以旧题材来带动新观 念,另一种是以新题材来牵引旧题材。 2. 剧情的发展过程 电影中,可以看到两个极为重要的要素:障碍和解决,正是这两种要素推 动整个电影故事情节的发展。将这两种要素具体地表现在游戏中时, “障碍”就 是游戏过程中,玩家必须解决的难题,而“解决”就是让玩家在排除游戏中的 障碍时,根据玩家目前游戏角色的能力情况,来寻求一些有效的解决方法。简 单的说, “障碍”就是游戏中的迷题系统,而“解决”就是游戏中的解题系统。 在游戏中,可以适当地加入这些要素,为游戏设置障碍和冲突,他们将成为玩 家在游戏中不断克服困难前进的动力,因而带动游戏中故事情节向前发展。 3. 主要人物的突出 游戏中的主人翁时一套游戏里的主要灵魂所在。只有出色的主人翁,才能 演绎出动人的剧情故事,使玩家一直流连忘返在游戏故事的剧情中。当成功地 设定一名出色的主人翁时,游戏就向成功迈进了一大步。这里有一点需要注意, 设计主人翁的时候,不需要将他的特点太脸谱化、流俗化、原形化。简单地说, 就是不要将主人翁设定成大众化的人物。游戏里的主人翁如果没有自己独特的 个性与形象,就很容易使玩家感到非常无趣和乏味。 4. 悬念的安排 悬念可为游戏带来紧张和不确定性,其目的是让玩家无法轻易地猜出游戏 下一步将会发生什么事情,而且适当地加入悬念可以让游戏更加吸引人。通常 悬念的成分会放在游戏故事发展前的内容上。一般而言,会先告诉玩家事情发 生后的后果,就好比在一般的侦探小说里,侦探已经知道事情发生的结果了, 自己的生命也可能会受到威胁。这一切的安排,就是为了增加读者对故事的紧 张气氛。 俄罗斯方块 12 5. 节奏的快慢 在制作一款游戏的时候,首先就应该明确地指出游戏的时间观念与现实生 活中的时间观念的差别。在游戏中,它的时间是由定时器所控制的,而定时器 有两种,分别为事件定时器与真实时间定时器。 6. 风格的呈现 在一款游戏中,应该从头到尾都保持一致的风格,这非常重要。游戏风格 的一致性包括人物与背景的属性,游戏风格的定位等。在一般的游戏中,如果 不是为了满足游戏剧情的特殊需要,都会尽量不让游戏中的人物说出超越当时 历史时代的语言,尤其是时代的特征。 2.3 游戏剧本的规划和设计 在开始设计一款游戏的细节时,应遵循一下几项特定的细则:界面的设计、 道具的设计、真实与虚构、游戏的死角、游戏的交互性、游戏中的奖励、游戏 中的对话。下面详细介绍这几点细则: 1. 界面的设计 在游戏中,可以把玩家所操作的建模设计成简单明了的文字或图标,这样 玩家就比较容易理解与使用,而且玩家会对这些界面感到相当体贴和使用。可 以采用符号或图像的界面来表达游戏指令的输入,并且尽量少采用单调呆板的 文字菜单方式。如果非要使用文字的化,也不一定要使用菜单来表现,可以使 用更为新潮的图形界面来表达。 2. 道具的设计 游戏中道具的属性是最单纯的,因为道具没有个性与情绪上的变化,将它 设定成什么样,它就是怎么样,例如补血道具,它只是为主角补血而已。一次 在设计道具的时候,只要去注意道具的合理性就可以了。另外,在设计道具的 时候,也要考虑到对象的全面性。例如在游戏中,玩家需要使用弓去打猎。诸 如此类,道具设计最困难的地方就是在于它的全面性。 3. 现实与虚构 当玩家在玩游戏的时候,主要是希望可以从游戏中体验到不同的虚幻生活 经历,并且希望从游戏中得到一些心理上的解放。所以游戏的世界观可以是虚 构的,不必在乎它的合理性与真实性,而在游戏中所设定的人物、感情或道具 俄罗斯方块 13 等因素则可以是真实的。简单地说,如果游戏的本质核心与现实生活的步调比 较接近,这类游戏就比较容易让玩家所接受。 4. 游戏的死角 在游戏的设计规划中,很容易犯下两种错误,那就是让玩家的主角造成 “游走”和“死路”的情况。 游走游走指的是玩家在广阔的地图上任意移动时,他们很难发现游戏下一步的 发展线索和途径。因为游戏中的地图太过于宽广,并且游戏中的提示又不是很 明显,玩家就很容易在游戏中随意地游走,游戏也就很难再继续进行下去,这 不仅会使玩家感到困扰,而且会大大地减少游戏的娱乐性。要避免产生这种游 走现象的方法就是在故事发展到一定程度的时候,把游戏世界的范围缩小,让 玩家可以到达的地方减少,并且使游戏的发展线索更加明显地显示出来,让玩 家可以从中得到更多的提示,这样玩家就能够轻松地找到故事发展目标。 死路死路是指玩家在游戏进行到一定程度后,突然发现自己进入了游戏的死路, 而且没有任何可以继续进行下去的线索与场景了,这时候游戏便会卡住。如果 遇到的是那些那些需要到储存点才能储存的游戏,玩家可能真的会欲哭无泪, 活活给气死。通常出现这种情况的原因是游戏设计者没有做到游戏的全面性, 而且没有将游戏中所有可能的流程全部计算处理,这时如果玩家没有按照游戏 设计者所规定的路线前进时,玩家就会很容易造成游戏过程中出现死路。 5. 游戏的交互性 交互性指的是游戏剧情或人物对玩家在游戏中所做的动作或选择产生某些 特定的反应。 ,举个例子来说,当主角在一个洞穴中遇到一个世外高人,在游戏 早期时,这个世外高人对主角的态度是不屑一顾,所以每次主角与他对话的时 候,他总是爱理不理。知道有人告诉主角说那个世外高人是因为与他所爱的人 走散之后,他的个性就变得相当的奇怪。主角为了帮助这个世外高人寻找到他 所爱的人,与怪物进行了一场厮杀,最后虽然找到了世外高人所爱的人,但主 角也因此受了重伤。当这个世外高人得知消息之后,赶紧向主角答谢,并且帮 助主角疗伤,甚至传授高强的魔法给主角。 如上所述,当注脚解决了世外高人的难题之后,世外高人对于主角的态度 则一百八十度的大转变,主角也因此而得到了室外高人高强的魔法,甚至还可 从世外高人的口中得知进行游戏下一个任务的提示,这也就是游戏的交互性。 俄罗斯方块 14 6. 游戏中的奖励 在游戏中,当玩家进行到一定程度的时候,就要给玩家一些奖励,例如精彩 的过场动画、漂亮的画面,甚至还可以让玩家所操控的主角得到一些有用的道 具或一些可以提升能力的武器装备等。 在游戏中,奖励也可以包括隐藏的因子在内,例如隐藏关卡、隐藏人物,甚 至于隐藏的过关密码等等。这些无厘头的设计非常有意思,这也是现在的游戏 都会加上的功能,但值得注意的是这些设计不可以影响到游戏的正常运行,毕 竟这些设计只是一个噱头而已。 7. 游戏中的对话 游戏中故事剧情的主要表现方式就是对话,可以将游戏中的对话种类分成下 列三种: (1)无剧情的游戏,如德军总部游戏。 (2)特定对话剧情的游戏,如角色扮演游戏对话游戏。一般而言,角色扮演游 戏都会以特定的对话方式来表现游戏中的故事剧情发展,通常这种游戏的故事 剧情是以单线的方式来进行的,其故事的交互性较低。 (3)选择性对话剧情游戏。在这类游戏中,对话的设计带有情绪性和选择性, 玩家可以做出他想选择的对话内容。如果玩家选择其中一个对话,那么其他的 话题就会消失,而以后的话题机会依据他第一次所选择的对话而引发。 在这里,要注意不要使对话对于单调和重复。一般而言,一款游戏中至少 要出现 60 句以上无意义且常用的对话,而且它们之间又可以互相组合,这样玩 家才不会觉得游戏中的对话过于单调无聊。还有也要尽量避免使用太过于简单 的字眼,例如“唉!” “早!”等太过于平凡的对话,因为在玩家看来,显得 过于草率,而且要尽量采用与目前游戏中情景有关的话题,以提升游戏的娱乐 性与真实性。 游戏设计是一门非常特殊的学问,它不但是许多技术的组合,而且还包含 电影、戏剧、历史、文化等重要的因素,所以如果想要好好地掌控游戏的规划 与构架,不仅仅要有创造力、文学功底,甚至对于这些重要的因素都要有一定 程度的认识与了解,这样才可能成为一名成功的游戏设计人员。 好了经过以上对游戏发展前景,发展过程,游戏的组成元件分析,相信大 俄罗斯方块 15 家对游戏都有了一个初步的了解,这里不再赘述了。下面就让我们做一个简单 的小游戏吧,看看俄罗斯方块的编程原理,让我们对 VC 有个更清晰的了解吧! 第 3 章 俄罗斯方块的实现 俄罗斯方块是一款很好玩的游戏,也很具有代表性。在很小的时候,就已 经接触过了俄罗斯方块,那时候,还只是玩玩而已,没想到今天自己要来实现 它。游戏的具体内容是,在游戏界面中,不停的有游戏方块从窗口上方往下落。 游戏者需要根据游戏方块的形状,操作控制键对方块进行移动、旋转,尽可能 将一层铺满。当一层被铺满后,该层会消失,否则层会迭高。当层数迭高到不 能落下游戏方块后,该游戏结束。首先新建一个单文档。 3.1 资源编辑 游戏的核心并不是我们所看到的图形,反而是我们所看不到的,游戏的算 法。那么,游戏的图形和核心之间是怎么联系的呢?例如我们怎么利用键盘的 方向键来控制俄罗斯方块的移动和转变呢?这些都需要我们一来具体的操作来 实现。游戏的图形和核心的联系是必然的。什么是游戏?游戏本来就是一种变 化过程,它是无形的,是不依奈图形而存在的。但是,游戏中缺少了图形,就 像是人只有一种表情,显得单调而无趣。所以我们首先为游戏选好一个封面和 背景图片,将这些图形加入到游戏当中。我们可以利用 PhotoShop 工具对图片 进行处理,达到我们利用的目的。来看一下具体实现吧! 添加位图:添加位图: 封面: IDB_BITMAP1 背景:IDB_BITMAP2 方块:IDB_BITMAP3 其次为游戏添加菜单:添加菜单: 开始: ID_MENU_START 暂停 ID_MENU_PAUSE 退出 ID_APP_EXIT 附图附图1所示。 俄罗斯方块 16 3.2 变量函数 接着就是定义变量了,但是,由于这个游戏要添加的变量和函数太多了, 我们要建一个新类。 是否应该先添加应该类呢?最好是这样。因为新类将会涉及到变量。 添加普通类 CRussia。附图附图 2 2 所示。 在 View 类和 Russia 类中添加以下变量和变量函数。 /MyView.h : /俄罗斯类 CRussia russia; /开始标志 bool start; /封面 CBitmap fenmian; /暂停 BOOL m_bPause; 注意注意:以上变量可以在 view 类 public 中直接添加。 /开始菜单 afx_msg void OnMenuStart(); /计时器 afx_msg void OnTimer(UINT nIDEvent); /键盘操作 afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); 注意注意 :以上成员函数可以通过类向导进行添加。 / Russia.h: /游戏数组 int Russia100100; / 当前图形 int Now44; /上一图形 int Will44; /变换后的图形 int After44; /当前图形的左上角位置 俄罗斯方块 17 CPoint NowPosition; /当前可能出现的图形形状数, int Count; /游戏结束 bool end; /级别 int m_Level; /速度 int m_Speed; /分数 int m_Score; /行列数 int m_RowCount,m_ColCount; /方块 CBitmap fangkuai; /背景 CBitmap jiemian; 注意注意 :以上变量可以在 Russia 类 public 中直接添加。 /显示分数等内容 void DrawScore(CDC*pDC); /消行 void LineDelete(); /方块移动 void Move(int direction); /方块变化,即方向键上键操作 bool Change(int a4,CPoint p,int b100); /是否与原来方块接触,或与边界接触 bool Meet(int a4,int direction,CPoint p); /显示下一个方块 void DrawWill(); /显示界面 void DrawJiemian(CDC*pDC); /开始 void Start(); 俄罗斯方块 18 注意注意 :以上成员函数可以在通过右键在 Russia 类中添加,并将 Change 和 Meet 的函数值返回 true。 3.3 具体实现 在以下的方法中包含了实现俄罗斯方块功能的各个函数,在实现游戏的过 程中,需要解决很多问题,包括如何创建新的方块、如何显示方块、如何移动 方块-左移、右移、下移、判断是否能移、如何旋转方块、放置方块与消除行 以及游戏的逻辑判断等等诸多问题,需要一步一步有条理的进行解决。 3.3.13.3.1 构造函数构造函数 首先要对 View 类和 Russia 类进行初始化。载入资源位图。 3.3.23.3.2 画图函数画图函数 利用画图函数进行图片的显示。在 void CMyView:OnDraw(CDC* pDC)函 数中,开始时我们是设 start 为假,它就会在 OnDraw()函数中画封面,而当我们 开始游戏,start 为真。 3.3.33.3.3 界面函数界面函数 当有一些客户区生效(被挡住或最小化)时,它必须重画,而如果游戏只 是玩了一半,它必然在重画时必须把原先已经出现的方块、分数等也显示出来, 怎么办?就必须在画封面的同时也画出它们。当然,刚开始时它们是不会符合 条件的。在下面函数中实现。 void CRussia:DrawJiemian(CDC *pDC) 3.3.43.3.4 信息函数信息函数 它是画分数、速度、难度的。 在这个函数中void CRussia:D

    注意事项

    本文(C++课程设计(论文)-俄罗斯方块游戏设计.doc)为本站会员(李主任)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开