1、 1 第一章 绪论 1.1 游戏的历史 游戏开发至今已经有 30 多年 ,在这个短暂的时期里 ,随着硬件水平的提高 ,游戏开发新技术层出不穷 ,经典游戏比比皆是。 1.1.1 从头谈起 真正的电子游戏机产生于 20 世纪 70 年代。 1971 年,麻省理工学院的学生Nolan Bushnell 设计了世界上的第一个业务用游戏机(俗名街机),叫做电脑空间。这台游戏机用一台黑白电视机作为显示屏,用一个控制柄作为操纵器,不过由于市场因素这款游戏以失败告终。但是最后他在电子游戏的发展上取得了非凡的成就。 上面介绍的是专用机游戏的历史,而最 早的电脑游戏可以追溯到 1972 年,一个叫 Crowthe
2、r 的工程师用当时最流行的主机 DEC 公司的 PDP 10 编写一段简单的 FORTRAN 程序。在这个程序里, Crowther 设计了一张地图,地图上不规则的分布着陷阱,游戏者必须寻找路径避开陷阱。这个程序被公认为是最早的电脑游戏程序。 1989 年, BroderBund 公司的设计师乔丹 .麦克纳根据阿拉伯民族的古老传说一千零一夜在 Apple 平台上制作了一部动作冒险相结合的电脑游戏波斯王子。这个游戏获得了第一作,它代表了当时电脑技术的最高水平。 1986 年, 任天堂公司发售了一款真正的游戏巨作超级马里奥。 20 世纪 80 年代 IBM PC 兼容机的出现打破了 Apple 公
3、司的垄断地位。 到了 20 世纪 90 年代,游戏业才真正成熟起来,成为了一种产业。 由于 PC 机价格非常低而且硬件速度越来越快,游戏逐渐成为人们生活中不可缺少的一部分。游戏产业也逐渐发展成熟。 1.1.2 图形硬件的革命 图形硬件的飞速发展是近些年来的事情,部分原因是来自工业方面的压力,例如在军事和医疗方面对于实时图形的需求很强烈,而交互娱乐产业也极大的推动了图形硬件的发展。技术上的因素同样也推动着图形硬 件的发展,许多图形算法可以很容易地表达为并行方式,这样硬件执行的效率变得很高。摩乐定律也起了作用,越来越多的晶体管可以集成到一块单独的芯片上。 在所谓的 GPU(图形处理器)概念出现以前
4、,特殊的图形硬件只出现在诸如SGI 和 Ey=2-x 进行 旋转 2.程序运逻辑 程序中逻辑运算通常只作数值的运算及分析,如方块移动时阻碍判断、方块满行判断、删除满行、方块移动、定时器、事件响应等。 3.绘图 绘图会因为显示平的不同而有所不同,例如在单机与手机上的显示环境就不相同,或显示效果会有所不同,例如方块的样式作修正时,即可以产生出不同的显示效果。 4.显示平台 “可移植性高”是 Java 的属性之一, Java 的应用涉及许多领域,如手机、单机程序及浏览器等,不同的平台对于它的设定不尽相同,若将显示平台独立为一个类,将有助于主程序的完整性及移植程序的快速性。 4.2 注意事项 游戏在设
5、计时除了将程序切割成多个对象外,在游戏的逻辑运算上应尽可能做到弹性化。所谓弹性就是方块地图的长与宽应该可以用参数来改变。 8 4.3 游戏流程图 顶层图 图 1 按 S 键 关 开 1. 游戏开始 控制游戏开关 2. 键盘控制台 循环运行 程 序 运 行 否 是 否 是 否 是 游戏开始 接受按钮的控制信息 1. 检查满行 2. 删除满行 3. 重新装载方块 产生控制方块下降的执行信息 移动方块 显示方块于屏幕中 ,检查方块在屏幕上是否有阻碍发生 方块移动时是否有阻碍 方块是否无法下移 游戏结束 9 图 2 无效 有效 按键 保持不动 可动 2.1 检查按键 2.2 检查可移动性 10 第五章
6、 详细设计 5.1 总体设计 程序流程图 序号 方法名 作用 1 Main() 定义窗口 2 Init() 创建变量 3 start() 打开线程 4 paint() 游戏界面初始化和游戏开始开关 5 run() 控制游戏速度 6 gameinit() 游戏变量初始化 7 begin() 装载图形 过关 游戏结束 重新游戏 下一个图行 达到提定位置 达到提定位置 显示屏幕信息 按向上键 游戏开始 否 按 s 键游戏开始 按键 7.begin() 10.reach() 12.change() 9.xian() 6.gameinit() 8.save() 5.run() 11.KeyDown() 13.Destroy() 1.Main() 2.Init() 3.start()Main() 4.paint()