星空之翼游戏的设计与实现
- 格式:doc
- 大小:568.00 KB
- 文档页数:27
本科毕业设计(论文)题目名称: 基于DirectX的太空飞行射击游戏的设计与实现学院:计算机科学技术学院专业年级:计算机科学与技术(工)12级学生姓名:班级学号:指导教师:摘要飞行射击游戏是一类风靡全球的益智小游戏,多次被移植到PC端和移动端,曾几何时,它创造了一个无法企及的游戏巅峰,也曾影响力一代产业链。
如今,虽然它已经不复当年的辉煌,但作为一个时代的经典,它永远不会消失在历史的长河中,在现在的智能机时代,它依旧散发着无穷的生命力。
出现了《雷霆战机》《全民飞机大战》等优秀的飞行射击类游戏。
本课题是基于DirectX的飞行射击游戏,它是运行于Windows操作系统的一款2D游戏,以C++为开发语言,在Visual Studio 2008环境下使用DirectX软件开发包来开发的一款多媒体游戏。
通过调用DirectX API的显示部分、输入部分来开发太空飞行射击游戏,从而加强游戏的图像和声音效果,使看似简单的太空飞行射击游戏画面更具真实性和空间感。
在该游戏中的显示部分主要完成了游戏场景的载入和渲染;在交互部分完成了由键盘对游戏角色的操控,并通过显示器进行图形输出反馈;在游戏逻辑方面,对游戏的开始和结束的条件做出判断,完成碰撞检测、角色升级、伤害计算、以及enemy AI等。
本游戏通过调用DirectX API实现以上功能,基本实现了简单的2D游戏引擎功能.关键词:2D游戏;DirectX;场景渲染:碰撞检测AbstractFlight shooting game is a kind of puzzle game popular around the world, has been ported to the PC and mobile sides, long ago, it created a game can not match the peak, also influence the generation chain. Now, although it has no longer its former glory, but as a classic era, it will never disappear in the course of history, in the present era of intelligent machines, it still exudes boundless vitality. A "Thunder fighter" "Full name airplane Wars" and other excellent flight shooting game.This paper is based on DirectX flight shooting game, which is running on the Windows operating system a 2D game in C ++ as a development language, using the DirectX Software Development Kit to develop a multimedia game in Visual Studio 2008 environment. DirectX API by calling the display section, an input section to develop space flight shooting game, thereby strengthening the game's graphics and effects, so seemingly simple space flight shooting game screen more authenticity and sense of space. In this game, the main part of the display to and rendering game scenes; interactive section completed by the keyboard to control the game characters, and through the display graphics output feedback; in terms of game logic , conditions for the start and end of the game to make judgments, complete collision detection, character upgrades, damage calculation, and the enemy AI and so on. This game by calling the DirectX API to achieve the above functions, the basic realization of a simple 2D game engine.Key Words:2D game;DirectX;Scene rendering;Collision test目录第1章概述 (1)1.1 飞行射击游戏的开发背景 (1)1.2 2D太空飞行射击小游戏开发的目的和意义 (1)1.3 飞行射击游戏的发展及研究现状 (2)1.4 系统描述 (5)1.4.1 开发环境及技术介绍 (5)1.4.2 飞行射击游戏开发设想 (6)第2章方案论证 (7)2.1 可行性研究 (7)2.1.1 技术可行性 (7)2.1.2 经济可行性 (7)2.1.3 操作可行性 (7)2.1.4 法律可行性 (7)2.2 方案论证 (8)2.3 方案总结 (8)第3章需求分析 (9)3.1 功能行为需求描述 (9)3.1.1 太空飞行射击游戏用例建模 (9)3.1.2 活动图扩展 (15)3.1.3 功能模块划分 (17)3.2 性能需求 (18)3.3 运行需求 (18)3.4 设计约束 (18)3.4.1 硬件约束 (18)3.4.2 可移植性 (19)第4章概要设计 (20)4.1 系统总体设计 (20)4.1.1 游戏引擎结构设计 (20)4.1.2 逻辑结构设计 (21)4.2 功能模块设计 (22)4.2.1 系统模块架构 (22)4.2.2 系统体系结构建模 (22)4.3 关键算法 (23)4.3.1 碰撞检测算法 (23)4.4 本章小结 (26)第5章详细设计 (27)5.1 游戏类的实现 (27)5.1.1 DX (27)5.1.2 管理 (27)5.1.3 场景 (27)5.2 子系统描述 (27)5.2.1 DX模块 (28)5.2.2 碰撞检测模块 (30)5.2.3 粒子系统模块 (31)5.3 本章小结 (32)第6章软件测试及结果分析 (33)6.1 性能测试 (33)6.2 逻辑测试 (34)6.3 功能测试 (34)6.4 本章小结 (35)结论 (36)致谢 (37)参考文献 (38)附录 (39)第1章概述1.1 飞行射击游戏的开发背景当今这个娱乐的年代,电脑游戏已经成为我们生活中补课或缺的一部分了,从最小的手机上的贪吃蛇小游戏,一直到到魔兽世界等经典网络游戏,他们都给我们的生活带来了乐趣,让我们能在忙碌的日常生活当中得到充分的放松。
游戏场景设计游戏场景设计是打造一个吸引玩家的虚拟世界的重要环节之一。
一个好的游戏场景能够吸引玩家的注意并增强他们的游戏体验。
在游戏场景设计中,需要考虑的因素有很多,包括背景故事、地图设计、角色建模等。
本文将介绍两个游戏场景设计的案例。
案例一:太空探险在这个游戏场景设计中,玩家扮演一名太空探险家,探索未知的星系。
整个游戏场景的背景设定在未来的宇宙时代,玩家可以驾驶飞船在星系中自由穿梭。
游戏的地图设计是一个三维的星系图,玩家可以选择不同的行星或者恒星进行探索。
每个行星或者恒星都有不同的特点和资源,玩家可以在这些星球上进行各种任务和挑战,比如收集资源、与外星生物交流等。
游戏中的角色建模非常重要,玩家可以自定义自己的角色,并且可以解锁和购买各种特殊装备和飞船。
整个游戏场景的配乐和音效也需要考虑,可以根据不同的场景和情境选择不同的背景音乐和音效来增强玩家的沉浸感。
此外,游戏还可以设置一些剧情任务和隐藏任务,让玩家在探索星系的过程中逐步揭开整个宇宙的真相。
案例二:古代战争在这个游戏场景设计中,玩家可以回到古代的战争时期,扮演战争时代的将领或者士兵,与敌军展开激烈的战斗。
整个游戏场景的背景设定在一个拟真的古代战争世界,玩家可以选择不同的战场和战斗模式。
游戏的地图设计是一个三维的战场地图,玩家可以在地图上选择不同的阵营并选择不同的战略来完成任务。
比如,可以选择攻击敌军要塞、护送重要人物或者进行间谍活动等。
玩家可以通过打击敌军来获得经验和战利品,提升自己的等级和技能。
整个游戏场景的氛围设计也非常重要,可以通过设置逼真的战争场景、逼真的兵器和装备以及逼真的战斗音效来增强玩家的代入感。
此外,游戏还可以设置一些历史事件和任务,让玩家在战争的过程中了解并参与到古代历史中。
总结:游戏场景设计是游戏开发过程中不可或缺的一环,一个好的游戏场景能够提升玩家的游戏体验并吸引更多的玩家。
在设计游戏场景时,需要考虑背景故事、地图设计、角色建模、配乐和音效等方面。
基于Unity3D引擎的空中战机游戏设计与实现引言:随着技术的不息进步,游戏产业也变得越发发达。
而在游戏领域中,空中战机游戏一直以来备受玩家的喜爱。
本文将以Unity3D引擎为基础,设计与实现一款刺激、富有挑战性的空中战机游戏。
第一部分:游戏概述1.1 游戏背景空中战机游戏一直是游戏界的经典题材之一。
作为玩家,能够驾驶着暴虐的战机,在宽广的天空中穿行,与敌人展开激烈战斗,是一种极其刺激的游戏体验。
因此,我们通过使用Unity3D引擎来设计并实现一款空中战机游戏。
1.2 游戏目标玩家需要扮演一名空中战机飞行员,通过驾驶战机完成各种任务。
游戏的目标是通过操控战机,成功击败敌军,并完成关卡中的任务。
在这个过程中,玩家可以获得游戏币和阅历,提升自己的战机能力,解锁新的战机和武器。
第二部分:游戏设计2.1 游戏角色游戏中主要包括玩家角色、敌人角色和非玩家角色。
玩家角色是玩家扮演的战机飞行员,敌人角色是玩家需要击败的敌军战机,非玩家角色包括友军战机、敌军保卫设施等。
2.2 游戏地图游戏地图是战斗场景的载体,我们需要设计多个不同的地图。
通过对地图的不同布局,增加游戏的多样性。
地图中会有各种地形,例如山脉、海洋、城市等,不同地形会对玩家的战术选择产生影响。
2.3 游戏关卡游戏关卡应该分为多个难度等级,从简易到困难,逐渐提高游戏的挑战性。
每个关卡都会有不同的任务目标,例如摧毁敌军基地、保卫友军战机等。
完成任务可以额外获得嘉奖。
2.4 游戏机制战机的操控应该简易流畅,可以通过手柄、键盘或者手机的重力感应进行操作。
玩家可以使用不同的武器,例如导弹、机枪等来攻击敌军。
同时,游戏应该具备可进步性,玩家可以通过获得游戏币来解锁新的战机和武器,提升自己的战斗能力。
第三部分:游戏实现3.1 游戏引擎选择基于Unity3D引擎的可视化编辑器和强大的功能,我们选择使用Unity3D引擎进行游戏的实现。
Unity3D支持多平台发布,可以在PC、手机和平板等设备上运行。
基于Unity的太空大战游戏的设计与实现本文将介绍如何设计和实现基于Unity引擎的太空大战游戏。
太空大战游戏是一种受欢迎的游戏类型,玩家可以在虚拟的太空环境中进行战斗和探索。
游戏设计在设计太空大战游戏时,需要考虑以下几个方面:游戏背景设定游戏背景设定是太空大战游戏的基础。
可以选择设定在未来的太空时代,或者是一个类似于星球大战的宇宙背景。
游戏背景设定应该与游戏的主题和玩法相匹配。
玩家角色玩家角色是游戏中最重要的要素之一。
可以设计不同类型的太空飞船作为玩家的角色,每种飞船具有不同的特点和技能。
玩家能够自由控制飞船的移动和攻击,与敌人进行战斗。
敌人设计设计各种各样的敌人是提高游戏的乐趣和挑战性的关键。
可以考虑设计不同类型的敌人飞船,每个飞船都有不同的移动方式和攻击方式。
敌人的难度可以逐渐增加,使游戏更具挑战性。
关卡设计游戏的关卡设计决定了游戏的节奏和进度。
可以设计多个关卡,每个关卡中有不同的任务和目标。
关卡之间可以设置过渡场景和故事情节,增加游戏的连贯性和吸引力。
游戏界面和音效游戏界面和音效对于提升游戏的体验和吸引力非常重要。
可以设计简洁直观的界面,让玩家能够方便地控制飞船和进行游戏操作。
同时,使用生动的音效和背景音乐,增加游戏的氛围和乐趣。
游戏实现基于Unity引擎的太空大战游戏的实现可以按照以下步骤进行:1. 创建游戏场景:使用Unity编辑器创建一个太空环境的游戏场景。
2. 设计玩家角色:创建玩家角色的3D模型,并添加飞行和攻击的功能。
3. 设计敌人:创建多种敌人的3D模型,并为它们添加不同的移动和攻击方式。
4. 设计关卡:使用Unity的关卡编辑器设计多个关卡,并设置不同的任务和目标。
5. 加入游戏界面和音效:设计游戏界面,包括控制按钮和游戏信息显示等。
同时添加音效和背景音乐,提升游戏的体验和吸引力。
6. 进行游戏测试和优化:测试游戏的各个功能和关卡,修复可能存在的bug,并对游戏进行优化以提高性能和稳定性。
太空游戏策划书3篇篇一《太空游戏策划书》一、游戏名称《星空之旅》二、游戏类型模拟飞行、策略冒险三、游戏背景在未来的某一天,人类成功实现了太空探索的梦想,你将作为一名宇航员,参与到这场伟大的冒险中。
游戏将带你穿越星系,探索未知的星球,建立太空基地,与外星生物交流,展开一场惊心动魄的冒险之旅。
四、游戏目标1. 带领玩家体验真实的太空探索过程。
2. 让玩家了解太空科学知识。
3. 培养玩家的策略思维和团队合作能力。
五、游戏玩法1. 玩家将扮演一名宇航员,驾驶太空飞船,穿越星系,探索不同的星球。
2. 在太空中,玩家需要面对各种挑战,如陨石、辐射、外星生物等,同时要合理利用资源,保证飞船的安全和正常运行。
3. 玩家可以在太空中建立太空基地,通过研究科技、生产资源等方式,不断壮大自己的实力。
4. 与外星生物交流,了解他们的文化和需求,建立友好关系或展开贸易。
5. 完成各种任务,如探索新星球、寻找资源、保护地球等,获得奖励和荣誉。
六、游戏特色1. 逼真的太空环境模拟,让玩家身临其境。
2. 丰富的星球探索和任务系统,增加游戏的趣味性和挑战性。
3. 多样化的太空飞船和装备选择,满足玩家的个性化需求。
4. 实时策略战斗系统,让玩家在战斗中体验紧张刺激的感觉。
5. 多人合作模式,与其他玩家一起探索太空,共同完成任务。
七、游戏画面1. 采用高清画质,呈现逼真的太空场景和星球表面。
2. 设计精美的飞船和外星生物模型,增加游戏的视觉效果。
3. 运用特效技术,营造出震撼的太空战斗场面。
八、游戏音效1. 收录真实的太空环境音效,如星球的轰鸣声、飞船的引擎声等,增强游戏的沉浸感。
2. 搭配紧张刺激的背景音乐,让玩家在游戏中感受到太空探索的刺激与危险。
3. 为不同的场景和事件设计独特的音效,增加游戏的趣味性和情感共鸣。
九、游戏开发计划1. 确定游戏的基本框架和玩法,进行策划和设计。
2. 组建开发团队,包括程序、美术、音效等方面的专业人员。
太空主题活动搭建方案策划一、引言太空主题活动搭建是一项独特而有趣的活动策划,旨在为参与者提供一个身临其境的太空体验。
通过精心设计的活动内容和搭建的太空主题场景,活动参与者能够感受到太空的神秘和充满冒险的氛围。
本方案将介绍太空主题活动的策划和搭建方案,包括活动目标、活动内容、搭建场地和道具、活动流程和时间安排等方面的内容。
二、活动目标1. 提供一次独特而有趣的活动体验:通过搭建太空主题场景和精心设计的活动内容,让参与者在活动中感受到太空的神秘和冒险。
2. 增强参与者的团队合作意识和沟通能力:通过团队合作和协作的游戏和任务,让参与者学会互相合作,加强彼此之间的沟通和配合能力。
3. 激发参与者的创造力和想象力:通过各种创意的活动内容和道具,激发参与者的创造力和想象力,鼓励他们提出创新的解决方案。
4. 增进参与者对太空科学的了解和兴趣:通过太空科学知识的介绍和与活动内容的结合,增进参与者对太空科学的了解和兴趣,激发他们对科学的探索欲望。
三、活动内容1. 太空艇组装挑战:参与者将被分成小组,每个小组会收到一套太空艇组装的配套件。
小组需要合理分工,配合完成太空艇的组装任务。
太空艇的设计和组装将考验参与者的团队合作和沟通能力。
2. 太空任务探险游戏:参与者将被安排参与太空任务探险游戏,在仿真的太空场景中完成各种任务。
任务内容包括太空漫步、修复太空站、收集太空碎片等。
通过参与任务,参与者可以亲身体验太空的冒险和挑战。
3. 太空科学知识讲座和实验:为了增进参与者对太空科学的了解,我们将邀请专业的科学家给参与者带来太空科学知识讲座,让参与者了解太空中的有趣现象和科学原理。
此外,还将设置太空实验室供参与者亲自进行太空实验,增加他们的参与感和学习成果。
4. 太空主题晚会:活动的最后,将举办一场太空主题晚会,参与者可以穿着太空服装和面具,与其他参与者一起欢庆活动的成功。
晚会上将有音乐、舞蹈、太空科学展览等精彩节目,为参与者带来愉快和难忘的经历。
SHANGHAI UNIVERSITY毕业设计(论文)UNDERGRADUATE PROJECT (THESIS)题目:基于Unity的2D空战游戏的设计与开发学院上海电影学院专业影视艺术技术(数字媒体方向)学号学生姓名指导教师起讫日期目录摘要 (3)Abstract (4)第一章绪论 (5)1.1引言 (5)1.2Unity3D引擎 (5)1.2.1 Unity3D引擎简介 (5)1.2.2 Unity3D界面介绍 (6)1.3Unity3D现状分析 (8)1.4本次课题的研究意义及价值 (9)1.5本章小结 (10)第二章游戏设计 (11)2.1 游戏需求分析 (11)2.2 游戏机制概述 (11)2.3 游戏特色 (12)2.4 游戏场景、角色及交互设计 (12)2.4.1 游戏的场景设计 (12)2.4.2 游戏的角色设计 (12)2.4.3 游戏的交互设计 (13)2.5 游戏功能 (13)2.6本章小结 (13)第三章游戏功能实现 (14)3.1场景的搭建 (14)3.2 飞机的控制 (15)3.3 碰撞检测 (16)3.4 游戏规则实现 (18)3.5.用户图形界面 (19)3.5.1 NGUI介绍 (19)3.5.2 游戏场景中UI界面 (21)3.6 游戏音效 (21)3.7 本章小结 (22)第四章游戏展示 (23)4.1 游戏开始和结束界面 (23)4.2 游戏画面 (24)第五章展望与总结 (26)参考文献 (29)摘要在过去的几年中,中国游戏产业经历了一场深刻的变革。
Unity引擎凭借其高效的功能进入了人们的视野。
本文介绍的便是一个基于Unity3D引擎设计并实现的2D竖版射击闯关类游戏——《Space Shooter》。
该游戏基于Unity3D引擎,采用了大量用于2D游戏开发的技术。
本文将从Unity3D的特征等方面开始,逐步解析游戏设计的思路及设计过程,并具体介绍游戏主要功能的实现方式。
制作神舟飞船教案游戏教案标题:制作神舟飞船教案游戏教案目标:1. 让学生了解神舟飞船的历史和重要性。
2. 培养学生的创造力和团队合作能力。
3. 引导学生学习科学原理和技术应用。
适用年级:中学高年级(例如初中或高中)教案步骤:引入:1. 向学生介绍神舟飞船的历史和重要性,包括神舟系列飞船的发展和中国航天事业的成就。
2. 引导学生思考神舟飞船的制作过程中可能遇到的挑战和困难。
主体:步骤1: 团队分组1. 将学生分成小组,每个小组由3-4名学生组成。
2. 鼓励学生选择不同的角色,如设计师、工程师、宇航员等。
步骤2: 神舟飞船设计1. 要求每个小组根据自己的角色和想象力,设计一艘神舟飞船的模型。
2. 鼓励学生考虑飞船的外观、结构、功能等方面的设计。
步骤3: 材料准备1. 提供一些常见的手工制作材料,如纸板、塑料瓶、胶水、剪刀等。
2. 鼓励学生利用这些材料制作他们的神舟飞船模型。
步骤4: 制作过程1. 学生在小组内合作,按照设计的要求和步骤制作神舟飞船模型。
2. 鼓励学生在制作过程中相互交流、讨论和解决问题。
步骤5: 展示和评价1. 每个小组展示他们制作的神舟飞船模型,并解释他们的设计理念和创意。
2. 全班共同评价每个小组的模型,包括外观、创意、功能等方面的评价。
总结:1. 回顾学生在制作过程中遇到的挑战和解决问题的方法。
2. 引导学生思考神舟飞船制作与航天科学的关系,以及如何将所学的科学知识应用于实践中。
延伸活动:1. 鼓励学生进一步了解中国航天事业的最新发展,并与神舟飞船的制作进行对比和讨论。
2. 组织学生参观航天博物馆或进行与航天科学相关的实地考察。
教案评估:1. 观察学生在小组合作中的积极参与和交流情况。
2. 评价学生制作的神舟飞船模型的创意和质量。
3. 收集学生对于航天科学知识的理解和应用程度的反馈。
教案提示:1. 鼓励学生在设计和制作过程中展示创造力和独特的想法。
2. 提供必要的安全指导,确保学生在使用工具和材料时的安全。
制作航天小游戏教案教案标题:制作航天小游戏教案教案目标:1. 通过制作航天小游戏,培养学生的创造力和逻辑思维能力。
2. 提高学生的计算机编程和图形设计技能。
3. 培养学生的团队合作和解决问题的能力。
教案步骤:引入活动:1. 引入航天主题,介绍航天的重要性和应用领域。
2. 激发学生对航天的兴趣,引发他们对制作航天小游戏的热情。
活动一:游戏概念设计1. 分组让学生合作,共同讨论并确定游戏的主题和目标。
2. 引导学生思考游戏的规则、操作方式和关卡设计。
3. 激发学生的创造力,鼓励他们提出独特的游戏元素和特色。
活动二:编程技能培训1. 介绍学生常用的游戏制作软件或编程语言,如Scratch、Python等。
2. 提供基础编程知识的讲解,包括变量、条件语句、循环等。
3. 指导学生如何将游戏概念转化为实际的编程代码。
活动三:图形设计1. 介绍学生常用的图形设计软件,如Photoshop、GIMP等。
2. 指导学生制作游戏所需的图像素材,包括角色、背景、道具等。
3. 引导学生运用颜色、形状和布局等设计原则,使游戏界面更加美观和吸引人。
活动四:游戏制作与测试1. 学生根据游戏概念、编程代码和图像素材,开始制作自己的航天小游戏。
2. 指导学生在制作过程中解决遇到的问题和调试程序。
3. 鼓励学生进行游戏测试,并接受同伴的反馈和建议,不断改进游戏体验。
活动五:游戏展示和分享1. 学生展示自己制作的航天小游戏,并分享游戏背后的设计理念和创作心得。
2. 学生之间互相试玩彼此的游戏,并给予积极的评价和建议。
3. 鼓励学生将游戏分享给其他同学、老师或家长,让更多人体验他们的创作成果。
教案评估:1. 观察学生在活动中的参与程度和合作能力。
2. 评估学生在编程和图形设计方面的实际操作能力。
3. 收集学生制作的游戏和他们对游戏设计的解释,评估其创造力和逻辑思维能力。
教案扩展:1. 鼓励学生在航天小游戏的基础上进行创新和改进,添加新的功能和关卡。
毕业实训报告课题名称: Unity 游戏开发专业:移动开发班级:学号:学生姓名:指导教师:年月日中原工学院毕业实训任务书摘要摘要游戏,目前已经是最大众化的娱乐之一,而其中的3D游戏也是技术含量较高的项目之一。
Unity3D是一个3D/2D游戏开发工具和游戏引擎套件,其中包括了图形、音频、物理、网络等多方面的引擎支持,并且有一个非常强大的编辑器来整合这一切,非常适合于游戏开发。
本文主要是以Unity5.3.8为开发环境,设计并开发一款单机版的三维游戏——直升机大战,旨在介绍直升机战斗游戏的实现方法,并逐步介绍使用Unity3D开发3D游戏的方法和技巧。
通过这次游戏制作,使我体会到了,制作一个游戏所需要做的工作,包括前期的游戏策划,素材的制作,到后期的游戏的设计,代码实现等,最终形成一个完整的3D游戏,并通过Unity3D选择平台生成可执行文件。
但本次设计的直升机战斗游戏所做工作还不够完善,开始场景中菜单比较简单,游戏中武器只有一种,关卡也只有一个,这些都需要以后进一步设计.第1章项目分析1.1 Unity 及其组成的介绍本书主要讲解的是,如何使用 Unity 开发 2D 游戏。
但在开始讲解之前,最好先熟悉一下Unity 这个工具。
本章会首先介绍 Unity 的下载和安装,然后会介绍 Unity 界面的各组成部分,这些知识会在本书后面的章节频繁使用,所以不要掉以轻心。
1.2 Unity 概述Unity 现如今已是非常的流行,因此在开始学习 2D 游戏开发之前,本节就来简要说明下Unity,及其下载和安装方法。
1.Unity 简介 Unity 是一款跨平台的专业游戏引擎,可以使用它轻松的开发各种 2D 和 3D 游戏,然后部署到各种游戏平台上。
当然也包括这些主流游戏平台: Windows、 iOS、 Android、 Xbox 360、 PS3。
第2 章2.1 需求分析玩家:控制游戏中的战机,向敌机发出攻击;敌机:敌机不会发射子弹攻击玩家,boss敌机由程序控制自动向玩家飞机发出攻击子弹:玩家和boss 敌机都拥有自己的子弹,玩家的子弹可以用来攻击所有的敌机子弹礼包:玩家飞机得到子弹礼包后,玩家的飞机会在一段时间内有发射双排子弹功能炸弹礼包:玩家飞机得到子弹礼包后,玩家飞机如果使用炸弹可以清除屏幕上除boss外的所有敌机。
学校代码 10126 学号 00713097 分类号密级本科毕业论文学院、系计算机学院计算机科学系专业名称信息管理与信息系统年级 2007级学生姓名何应霞指导教师安春燕2011年6月19日星空之翼游戏的设计与实现摘要本毕业设计开发的《星空之翼》是一款纵版飞行射击类游戏。
游戏采用组件式架构。
整个游戏由主程序模块、游戏引擎模块、地图编辑器模块和声音引擎模块4个相对独立的模块组成,其中声音引擎采用的是一个开源声音引擎irrklang。
本毕业设计用到的技术有多线程编程、嵌入式数据库(SQLite)编程和XML。
《星空之翼》游戏采用C#语言编写,设计时采用模块化的设计思想,模块间相对独立,耦合度小,便于今后的并行开发。
实现时充分考虑了代码的重用性和功能的灵活性和可扩展性。
玩家可以通过地图编辑器制作自己的关卡,自定义敌人和游戏背景;游戏的程序和游戏数据分离,使用户可以很方便的修改游戏素材;同时通过替换其中的游戏引擎模块就可以方便的实现游戏升级。
关键词游戏引擎,模块化,多线程,XML,嵌入式数据库The Design and Implementation of “Star Wings”Abstract"Star Wings" is a vertical version of flight shooting game. We design the project with component-based architecture. The project consists of four relative dependent modules: main program module, the game engine module, the map editor module and sound engine module. The sound engine here uses an open source sound engine, named irrklang. The technologies involved in our project include: multi-thread programming, embedded database (SQLite) programming and XML.“Star Wings” is developed by C#. The whole project adopts modularizing design method, the modules are relative independent, coupling degree of the modules is relative low, it is feasible for parallel developing in the future. We full considered the code reusability and flexibility and expansibility of functions. Players can use map-editor to create custom levels, custom enemies and custom game background. The game logic separates from the data, by which players can change their favorite materials, like planes, without rewriting the codes. At the same time, game update can be done just by replacing the game engine module.Keywords game engine, modularity, multi-thread, XML, embedded database目录第一章概述 (1)1.1课题背景 (1)1.2背景知识 (2)1.2.1游戏引擎 (2)1.2.2多线程 (3)1.2.3嵌入式数据库SQLITE介绍 (4)1.2.4XML (4)1.2.5单例模式(SINGLETON) (4)1.2.6碰撞检测 (5)1.2.7游戏循环体 (5)1.2.8静态类 (6)1.3毕设意义 (6)第二章游戏的总体分析与设计 (7)2.1设计构想 (7)2.1.1游戏定位 (7)2.1.2游戏需求 (7)2.1.3游戏扩展 (8)2.2模块划分 (8)2.3开发工具 (8)第三章游戏的详细设计 (9)3.1游戏引擎模块 (9)3.2地图编辑器模块 (11)3.3主程序模块 (13)3.4游戏主循环 (16)3.5碰撞检测 (16)3.6地图格式与精灵图片处理 (18)3.7声音引擎 (18)3.8模块间的关系 (19)结论 (20)毕业设计总结 (20)未来的工作 (20)致谢 (21)声明 (22)参考文献 (23)第一章概述在信息技术高速发展的今天,电子游戏已经深入人们的日常生活,成为老少皆宜的娱乐方式。
人类爱玩的天性是驱动电脑游戏硬件和软件技术不断向前发展的根本动力之一。
电脑发展经历了半个多世纪,电子游戏也产生了半个多世纪,各种各样的游戏出现在历史的舞台上,一个新游戏在展现完自己辉煌一刻后,又被新的游戏推进尘封在历史的角落里。
新游戏像雨后春笋般涌现,随着游戏技术的不断发展,游戏的容量越来越大,使用的技术越来越复杂,但游戏开发最基本的技术是相同的,本设计通过C#开发一款纵版飞行射击类游戏,来研究游戏程序的架构,试图编写一个能够代表飞行射击类游戏的通用软件,可以完全改变游戏的内容,而不用重复开发,游戏的架构能够很好的支持游戏的不断地修正和改变。
游戏开发向来都是C和C++的天下,是因为C 和C++是直接编译派系,在操作系统上运行很快。
而java和C#是中间编译派系,运行速度慢,但是可以方便平台移植。
随着计算机硬件技术的快速发展,因运算速度导致的差距不断减小,java和C#也可以开发一些游戏,毫不疑问未来java和C#会在游戏开发市场占有一席之位,根据TIOBE开发语言排行榜2011年5月的排名来看最新的前五名分别是Java、C、C++、C#、PHP,其中java同比增长了0.2%,C#同比增长了2.75%,而C降低了2.02%,C++降低了1.23%,其中C#更是取得新的历史高点,C#语言从2000年6月发布以来占有率不断缓慢上升,作为微软全力推行的语言,C#的占有率相信会不断缓慢上升,他来源于C和C++,同时借鉴了Visual Basic、Java、Delphi的特性。
微软为C#推出了XNA和Xbox360游戏引擎,相信用C#开发的游戏会不但涌现。
1.1 课题背景《星空之翼》属于射击类游戏,这里所说的射击类,并非是类似《CS》的模拟射击(枪战),而是指纯的飞机射击,由玩家控制各种飞行物(主要是飞机)完成任务或过关的游戏。
具体属于科幻飞行模拟游戏(Science-Simulation Game)。
游戏的内容为非现实的科幻的,游戏视觉版面为纵版。
其中最经典的是《雷电》, 因操作简单,节奏明快,受到了广大玩家的欢迎,可以说是老少皆宜的游戏了。
《雷电》在电子游戏中有这相当数量的变种,有着庞大的爱好者,在3D游戏网页游戏流行的今天,《雷电》还是被不断的变种,最新的变种是《雷电OL》和《QQ雷电》。
最初的《雷电》有个缺点是只有固定的关卡,游戏玩家无法进行真正意义上DIY(Do It Yourself) ,如果玩家通关后,对该游戏的热情就会大大降低。
尽管官方提供了地图编辑器,那个地图编辑器只能采用默认提供的精灵控件。
网络上有大量的《雷电》变种游戏的源代码,其中主要是用C语言和C++语言编写的,少量的是用VB语言和Java语言编写的,用C#语言编写的源代码几乎没有,唯一找到一个是北风网网友编写《勇者斗恶龙》源码,《勇者斗恶龙》游戏仅仅是一个Demo,可以这么说连Demo都不是,太过于简易。
《星空之翼》游戏采用C#语言编写,使用面向对象和模块化的编程思想。
玩家可以通过地图编辑器制作自己的关卡,游戏的程序和游戏数据分离,通过替换其中的模块组件就可以实现游戏的升级,《星空之翼》还提供了默认的关卡,默认的游戏剧情小说。
《星空之翼》结合默认的游戏剧情和高度自定义地图地图编辑器,不但给玩家娱乐享受,还可以充分发挥玩家的主动性,玩家可以编写出比默认游戏剧情更好的游戏。
此次毕业设计通过对《星空之翼》游戏的设计与实现,深入学习游戏的内部架构,模块化的编程思想,应用程序可扩展性,多线程编程,嵌入式数据库和XML的使用。
1.2背景知识1.2.1 游戏引擎游戏引擎是执行游戏中公有任务的程序代码,以前的游戏的容量很小,大都以兆(M)计,每款游戏开发都是从头编写代码,期间存在着大量的重复劳动,耗时耗力。
随着技术的发展,开发人员总结出一些规律,在同类题材的游戏中,有大量的相似的代码可以重复使用。
为了减少游戏的开发周期和开发费用,慢慢将这些通用的代码进行模块化,方便重用,简化游戏的开发过程。
游戏引擎根据代码的组织方式分为不同的游戏引擎架构,游戏引擎架构是游戏引擎的骨架,常见的三种引擎架构方法为:(1) 基类根形式构架。
基类根形式构架是以基本的几个抽象服务提供接口类为基础,并以接口与实现相分离为原则,来进行引擎实现,提供的实现类在引擎内部创建,而将接口供给用户使用。
这种构架模式的优点是结构清晰,实现灵活,可以适应比较大的变化,适合于做一些较大且有跨平台需求的引擎,但是该架构依赖于基本的抽象类的继承关系,导致引擎内部类继承了无用的功能而变得虚大,况且接口的通用性使得实现的效率不高,导致整体效率偏低。
(2) 结构化构架。
结构化构架采用的方法是将游戏引擎内部的模块以结构化的形式组合,并以API的形式提供接口,这种构架模式的优点是效率高,接口简单清晰,适合于做一些速度要求比较高的引擎,但是缺点是其模块之间耦合度高,不易修改。
(3) 组件形式构架。
组件形式构架是把不同功能的模块做成互相独立的系统,模块内部可以使用任何构架方式,只需要提供相应的接口即可。
引擎以模块管理器为核心,支持插件形式组件增加方式,可以将新增的功能组件以插件的形式来插入系统工作,这种构架方式极其灵活,且模块内效率比较高,所以某些大型商用游戏引擎采用这种方式,但这种方式设计比较困难,实现比较复杂,需要大量的开发经验。
1.2.2 多线程由于游戏的特殊性,游戏对实时性,操作性,画面质量有较高的要求特别是实时性,如果一个游戏不能实时处理,那么基本可以断定一个游戏失败了。