论文部分内容阅读
[摘 要]现在游戏已经深入到人们的生活中,几乎每个人都玩过至少一款游戏。随着越来越多的人关注游戏,当今的游戏产业也成为潜力无穷的产业。与此同时,游戏设计已经成为当今许多玩家的梦想。本文主要阐述太空射击游戏的设计。
[关键词]太空射击游戏 碰撞检测
中图分类号:TP312 文献标识码:A 文章编号:1009-914X(2015)29-0322-01
1 引言
射击小游戏是一种非常吸引人的休闲小游戏,在云云的射击游戏之中,高手一定会选择雷电系列。太空射击游戏就是一款类似雷电以太空为背景的2D射击单机休闲游戏,这个游戏有子弹系统、敌机系统、碰撞系统、图像显示等各个模块,将来还可能加入背景渲染、图形菜单、声音等功能模块。尽管各个模块均有复杂的功能,利用面向对象,我可以把各个模块功能的内部实现封装在一个个类中,就像一些游戏引擎搬只提供外部接口。这样,就可以做到各个模块只进行必要的通讯,内部黑盒子独立运作,互不干扰。
2 游戏总体设计
在游戏的总体设计中主要是对游戏的任务和游戏的流程进行描述,了解要做什么和概述怎么去做,都要用到些什么技术和相关游戏架构的设计。
2.1 系统任务概述
游戏程序是一项精度要求很高的程序系统,因此其代码利用率很高。一个实时运行的最终作品,每秒都会运行成千上万行程序,绘图事件、键盘事件都会以极高的频率在后台等待响应,若有丝毫的差别都将很容易导致程序在运行不久后可能出现严重错误,甚至死循环。因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在设计中。
玩家飞机的运行可以通过键盘响应事件控制,但敌方则因为是自动运行,就需要有一定的智能性;敌人飞机的运行或移动方向也要进行相关的设置,已免游戏过于简单。对于双方发射的子弹应该赋予不同的速度和时间间隔,同时,程序应该设定敌人飞机的子弹不与敌人的飞机进行碰撞检测,已增加游戏的可玩性。敌我双方的飞机在前进时也需要考虑到是否碰撞到对方飞机,设计好爆炸效果,增加真实感。每一次刷新页面、每前进一步都需要进行相关的碰撞检测。
2.2 游戏流程图
游戏流程,运行游戏最先就是游戏的主菜单,菜单上点击“开始游戏”进入了太空射击对抗的主游戏界面,开始出现主角飞机在屏幕中央,马上敌人也陆陆续续的到来,这时主角飞机和敌人都将发出各自的攻击,当主角飞机和敌人发生碰撞或被敌机的子弹击中时就要减去相应的生命值,生命值小于0时,程序将自动对主角飞机重新赋予新生命,倘若主角没有受损,从另一个角度考虑是否杀敌了,如果消灭了敌机,主角飞机的杀敌数将加1,分数也会有所增加,当分数超过了级数的300倍时,级数将会上升,难度也将由于敌人的增加而增加。在游戏中的任何时候点击了Esc都会返回到主菜单,点击“退出游戏”,程序结束。
2.3 系统角色的设计
游戏设计中有各种角色的设计,角色的设计好坏影响游戏的复杂程度和游戏质量,本系统拥有的角色主要有玩家的飞机、敌机、子弹,它们之间的协调相互作用就组成了游戏。
2.3.1 玩家的飞机
主角飞机是游戏最为重要的部分,主角的显示要先加载图片,再进行显示,在飞行射击游戏中,主角飞机一般具有的属性有:生命值、飞行速度、飞行方向、分数、级数、武器、杀敌数和逻辑性的射击判断。飞行速度在游戏中可以给一个初值,飞行方向可以用键盘来进行操作,武器本人在游戏中设计至少三种,主角飞机的操作有:开火射击,更换新武器,各种动作,更新状态等。
2.3.2 敌机
敌机在游戏中总共设计三种敌人飞机,它们所具有的共同的属性设计为:生命、武器、子弹方向、移动方向、射击与否,当然,各种敌机的生命值等属性值是不同的。敌机需要具有一定的智能性,以便对玩家攻击,使游戏具有一定的可玩性。敌人可以在适当时候转向或者开炮火,同时,程序应该检测敌机是否飞出了界外。所以游戏中敌机的基本操作有:向玩家飞机开火,更新并调整敌机的位置,改变敌机的飞行方向等,敌机开火也要经过一定的时间间隔,否则玩家会被连续的子弹击中没法脱身。改变敌机的飞行方向,就是过了一段时间或者敌机快要跳出屏幕画面而采取如设置某个随机数来调整敌机的飞行方向,保证游戏的现实可玩性。
2.3.3 子弹
子弹分为玩家飞机子弹和敌机子弹,玩家子弹设计三种用于更换武器,这三种武器分别为机关炮、导弹、散弹枪,它们的威力和攻击方向均会有不同,对于一个完整的游戏来讲,应该根据关卡的不同而给予玩家不同的飞机,飞机性能的差别在于子弹的射程不同。由于本游戏仅设计简单,所以子弹速度设定的差别没有体现出来。还有就是敌机的子弹了,三种不同的敌机就至少应当有三种不同的敌机子弹。子弹和各类飞机碰撞时要做出检测判断,如果对象死亡,则要产生爆炸换入爆炸图片。
子弹类的设置属性初步设计有:类型、最近开火时间、角度、移动速度、时间间隔,类型指的是子弹的分类,加入最近开火时间的目的是为了判断是否在子弹时间间隔内又发射子弹,如果是,就不允许发射子弹,子弹本来还有攻击力这一属性,在游戏中本人统一把它设了1就不做考虑了。子弹类的操作方法有:设置移动、得到时间间隔、更新爆炸图片、调整子弹位置、初始化等,设置移动是设置速度和方向用的,得到时间间隔中设置各种子弹的时间间隔并返回。
2.4 人机界面设计
人机界面设计是接口设计的重要组成部分。对于交互式系统来说,人机界面设计和数据设计、体系结构设计及过程设计一样重要。人机界面的设计质量直接影响玩家对游戏的评价,从而影响游戏的竞争力,必须对人机界面给予足够的重视。
2.5 游戏运行中的设计
游戏运行后,最先进入的是游戏的菜单登录界面,之后是游戏对战等,一个可以吸引玩家的游戏,登录界面和游戏射击时的设计是非常重要的。良好的登录界面不仅要美观且要让玩家操作方便易懂,而游戏射击的好坏直接影响到整个游戏能不能成功,即使成功运行,效率的考虑也是非常重要的。
2.5.1 游戏登录设计
登录界面清晰而美观,非常人性化,登录主界面是以一张大图为背景,在背景图的上面设置有五个按钮,根据鼠标的移动和点击来触发对应的事件,当鼠标停留到任何一个图像按钮的位置时,为了以其他的几个按钮区分,对该按钮图片需要做一些颜色处理,出于简单设计的考虑,本人只对“开始游戏”和“退出游戏”两个图片按钮进行了实质性的事件编辑,其中“开始游戏”也就是进入了太空射击游戏的主界面,“退出游戏”就使得游戏窗口关闭,而其他的几个按钮:“游戏设置”,“关于”,“游戏帮助”就没有实质的事件响应了,点击它们画出图片而已。
2.5.2 游戏射击的设计
进入游戏后,主角飞机放在屏幕中间,编程时可以根据操作系统的时间设置,一段时间后,随机产生不同数量、不同类型、不同生命值的敌机,主角飞机和敌人的关系为一对多的关系,敌我双方均可相互进行射击,一方被击中时,并不会马上死去或消失,被击中者将减去对方子弹的对应威力,当被击中者是主角并且它的生命值小于或等于0,那么主角将会被重新更新,如果被击中者为敌机且其生命值小于0时,那么敌机消失死去,主角的杀敌值加1,除了射击攻击对方外,主角和敌机也会因为撞击而彼此的生命值相互受损,在设计此类撞击时考虑到精简的问题,游戏中一致把主角的生命值设置比任何单个敌机的生命值都要高,所以发生撞击后,敌机马上死去,但主角并不马上死去,只是减少一些生命值。
结语
太空射击游戏目前为止只能说是完成了基本设计,但要使游戏功能完整可靠,使整个系统灵活性强、可移植性强,就需要使用到其它许多相关知识和一些比较新的前沿的技术。
[关键词]太空射击游戏 碰撞检测
中图分类号:TP312 文献标识码:A 文章编号:1009-914X(2015)29-0322-01
1 引言
射击小游戏是一种非常吸引人的休闲小游戏,在云云的射击游戏之中,高手一定会选择雷电系列。太空射击游戏就是一款类似雷电以太空为背景的2D射击单机休闲游戏,这个游戏有子弹系统、敌机系统、碰撞系统、图像显示等各个模块,将来还可能加入背景渲染、图形菜单、声音等功能模块。尽管各个模块均有复杂的功能,利用面向对象,我可以把各个模块功能的内部实现封装在一个个类中,就像一些游戏引擎搬只提供外部接口。这样,就可以做到各个模块只进行必要的通讯,内部黑盒子独立运作,互不干扰。
2 游戏总体设计
在游戏的总体设计中主要是对游戏的任务和游戏的流程进行描述,了解要做什么和概述怎么去做,都要用到些什么技术和相关游戏架构的设计。
2.1 系统任务概述
游戏程序是一项精度要求很高的程序系统,因此其代码利用率很高。一个实时运行的最终作品,每秒都会运行成千上万行程序,绘图事件、键盘事件都会以极高的频率在后台等待响应,若有丝毫的差别都将很容易导致程序在运行不久后可能出现严重错误,甚至死循环。因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在设计中。
玩家飞机的运行可以通过键盘响应事件控制,但敌方则因为是自动运行,就需要有一定的智能性;敌人飞机的运行或移动方向也要进行相关的设置,已免游戏过于简单。对于双方发射的子弹应该赋予不同的速度和时间间隔,同时,程序应该设定敌人飞机的子弹不与敌人的飞机进行碰撞检测,已增加游戏的可玩性。敌我双方的飞机在前进时也需要考虑到是否碰撞到对方飞机,设计好爆炸效果,增加真实感。每一次刷新页面、每前进一步都需要进行相关的碰撞检测。
2.2 游戏流程图
游戏流程,运行游戏最先就是游戏的主菜单,菜单上点击“开始游戏”进入了太空射击对抗的主游戏界面,开始出现主角飞机在屏幕中央,马上敌人也陆陆续续的到来,这时主角飞机和敌人都将发出各自的攻击,当主角飞机和敌人发生碰撞或被敌机的子弹击中时就要减去相应的生命值,生命值小于0时,程序将自动对主角飞机重新赋予新生命,倘若主角没有受损,从另一个角度考虑是否杀敌了,如果消灭了敌机,主角飞机的杀敌数将加1,分数也会有所增加,当分数超过了级数的300倍时,级数将会上升,难度也将由于敌人的增加而增加。在游戏中的任何时候点击了Esc都会返回到主菜单,点击“退出游戏”,程序结束。
2.3 系统角色的设计
游戏设计中有各种角色的设计,角色的设计好坏影响游戏的复杂程度和游戏质量,本系统拥有的角色主要有玩家的飞机、敌机、子弹,它们之间的协调相互作用就组成了游戏。
2.3.1 玩家的飞机
主角飞机是游戏最为重要的部分,主角的显示要先加载图片,再进行显示,在飞行射击游戏中,主角飞机一般具有的属性有:生命值、飞行速度、飞行方向、分数、级数、武器、杀敌数和逻辑性的射击判断。飞行速度在游戏中可以给一个初值,飞行方向可以用键盘来进行操作,武器本人在游戏中设计至少三种,主角飞机的操作有:开火射击,更换新武器,各种动作,更新状态等。
2.3.2 敌机
敌机在游戏中总共设计三种敌人飞机,它们所具有的共同的属性设计为:生命、武器、子弹方向、移动方向、射击与否,当然,各种敌机的生命值等属性值是不同的。敌机需要具有一定的智能性,以便对玩家攻击,使游戏具有一定的可玩性。敌人可以在适当时候转向或者开炮火,同时,程序应该检测敌机是否飞出了界外。所以游戏中敌机的基本操作有:向玩家飞机开火,更新并调整敌机的位置,改变敌机的飞行方向等,敌机开火也要经过一定的时间间隔,否则玩家会被连续的子弹击中没法脱身。改变敌机的飞行方向,就是过了一段时间或者敌机快要跳出屏幕画面而采取如设置某个随机数来调整敌机的飞行方向,保证游戏的现实可玩性。
2.3.3 子弹
子弹分为玩家飞机子弹和敌机子弹,玩家子弹设计三种用于更换武器,这三种武器分别为机关炮、导弹、散弹枪,它们的威力和攻击方向均会有不同,对于一个完整的游戏来讲,应该根据关卡的不同而给予玩家不同的飞机,飞机性能的差别在于子弹的射程不同。由于本游戏仅设计简单,所以子弹速度设定的差别没有体现出来。还有就是敌机的子弹了,三种不同的敌机就至少应当有三种不同的敌机子弹。子弹和各类飞机碰撞时要做出检测判断,如果对象死亡,则要产生爆炸换入爆炸图片。
子弹类的设置属性初步设计有:类型、最近开火时间、角度、移动速度、时间间隔,类型指的是子弹的分类,加入最近开火时间的目的是为了判断是否在子弹时间间隔内又发射子弹,如果是,就不允许发射子弹,子弹本来还有攻击力这一属性,在游戏中本人统一把它设了1就不做考虑了。子弹类的操作方法有:设置移动、得到时间间隔、更新爆炸图片、调整子弹位置、初始化等,设置移动是设置速度和方向用的,得到时间间隔中设置各种子弹的时间间隔并返回。
2.4 人机界面设计
人机界面设计是接口设计的重要组成部分。对于交互式系统来说,人机界面设计和数据设计、体系结构设计及过程设计一样重要。人机界面的设计质量直接影响玩家对游戏的评价,从而影响游戏的竞争力,必须对人机界面给予足够的重视。
2.5 游戏运行中的设计
游戏运行后,最先进入的是游戏的菜单登录界面,之后是游戏对战等,一个可以吸引玩家的游戏,登录界面和游戏射击时的设计是非常重要的。良好的登录界面不仅要美观且要让玩家操作方便易懂,而游戏射击的好坏直接影响到整个游戏能不能成功,即使成功运行,效率的考虑也是非常重要的。
2.5.1 游戏登录设计
登录界面清晰而美观,非常人性化,登录主界面是以一张大图为背景,在背景图的上面设置有五个按钮,根据鼠标的移动和点击来触发对应的事件,当鼠标停留到任何一个图像按钮的位置时,为了以其他的几个按钮区分,对该按钮图片需要做一些颜色处理,出于简单设计的考虑,本人只对“开始游戏”和“退出游戏”两个图片按钮进行了实质性的事件编辑,其中“开始游戏”也就是进入了太空射击游戏的主界面,“退出游戏”就使得游戏窗口关闭,而其他的几个按钮:“游戏设置”,“关于”,“游戏帮助”就没有实质的事件响应了,点击它们画出图片而已。
2.5.2 游戏射击的设计
进入游戏后,主角飞机放在屏幕中间,编程时可以根据操作系统的时间设置,一段时间后,随机产生不同数量、不同类型、不同生命值的敌机,主角飞机和敌人的关系为一对多的关系,敌我双方均可相互进行射击,一方被击中时,并不会马上死去或消失,被击中者将减去对方子弹的对应威力,当被击中者是主角并且它的生命值小于或等于0,那么主角将会被重新更新,如果被击中者为敌机且其生命值小于0时,那么敌机消失死去,主角的杀敌值加1,除了射击攻击对方外,主角和敌机也会因为撞击而彼此的生命值相互受损,在设计此类撞击时考虑到精简的问题,游戏中一致把主角的生命值设置比任何单个敌机的生命值都要高,所以发生撞击后,敌机马上死去,但主角并不马上死去,只是减少一些生命值。
结语
太空射击游戏目前为止只能说是完成了基本设计,但要使游戏功能完整可靠,使整个系统灵活性强、可移植性强,就需要使用到其它许多相关知识和一些比较新的前沿的技术。