坦克大战 实验报告
Funcode暑期实训报告模板
2016—2017学年第3学期《程序设计实训》实践报告题目:“坦克大战”实践报告机房名称微101时间 2017年 7月11日至7月14日开课系室计算机应用技术系团队名称 BZL指导教师杨邵辉2017年 7 月 15 日间已完,游戏停止,重新显示“空格开始“字样。
2、按W、S、A、D键,控制坦克上下左右运动。
定义MoveMyTank 函数,按下W键,设置玩家坦克向上的速度;按下A键,设置向左速度;按下S键,设置向下的速度,按下D键,设置向右速度。
松开键盘,坦克速度为0。
同时设置玩家坦克朝向iDir。
3、游戏开始后,右上角实时显示剩余时间。
一局游戏开始后,在WinMain函数中的主循环里,通过dSetTextValue把(int)g_fGameTime的数值显示在名为“time”的文字精灵里,从而实时显示剩余时间(显示整秒的时间)。
4、当超过60秒,游戏结束,重新显示“空格开始”字样,游戏时间设为0,坦克回到初始位置。
一局游戏进行中,每循环一次,g_fGameTime减去一次刷屏的时间。
当g_fGameTime≤0,说明一局游戏时间已完,游戏停止,重新显示“空格开始”字样。
同时,g_batart状态要改为0,否则下一局就不能正确判断游戏开始或结束。
3.2.2 玩家坦克在街道运行1、一局游戏开始时载入地图。
利用数组的值来载入地图,值为0,说明此处为空;值为1,说明此处有墙。
游戏开始后载入地图,但只能载入一次。
2、一局游戏结束后删除地图。
3、玩家坦克碰到墙的话,不能继续前行。
设置玩家坦克的碰撞属性,并专门定义一个函数处理玩家坦克发生碰撞后,玩家坦克的响应。
3.2.3 玩家坦克射击1、玩家按下j键,坦克发送炮弹;自定义一个函数,OnFire用于完成坦克发射子弹功能。
玩家坦克发射子弹,和敌方坦克发射子弹功能基本一样,我们可以写在一个函数里。
首先,需要把发射子弹的坦克名称传进来,这样,我们才能获取坦克的朝向和位置;其次,需要区别是我方坦克发射的子弹,还是敌方坦克发射的子弹。
拓展项目——坦克大战(共5则)
拓展项目——坦克大战(共5则)第一篇:拓展项目——坦克大战坦克大战明阳天下拓展项目简介团队的所有成员在规定的时间和规则的约束下,进行角色分配后,蒙上双眼依次进入模拟战场,在躲避地雷的同时用炮弹尽可能的击中对手,最终战场剩余人数最多的小组获胜。
项目规则1、每队队员同时蒙眼进入雷区,听由场外队员指挥捡炮弹,中途如有触碰地雷,该队员视为中弹身亡,由下一名队员顶替;2、场内队员蒙眼听从场外队员的指挥,捡起炮弹,击中对方队员身体任意部位,即可淘汰对方队员继续存活;3、场外队员只能在限定的区域内活动,不可触发到其他组的区域;4、最后场外留有人数最多组获胜。
项目目标有效沟通,战略与决策,在特殊的情况下如何和其他学员进行有效沟通;团队的力量如何发挥才能体现最大的力量;怎样才能是更合理的指挥方式;默契程度和信任度的考验。
北京明阳天下拓展培训机构是国内体验培训领域的“黄埔军校”。
在体验式培训、户外教育理论、专项主题研究、软件实操开发等软件设施方面已走在行业前列;而硬件拓展设备、拓展器材、拓展设施设计建造和大型独资实操基地等硬件设施方面同样领先全国。
强大的课程研发队伍,与国际接轨的先进培训理念,完善的硬件设备,优越的服务意识,明阳天下拓展始终秉承“专业致胜,效果为王”的理念,为成千上万的客户打造专业化、高标准的拓展培训方案。
第二篇:坦克大战大报告大作业题目:坦克大战程序一、需求分析功能需求坦克大战其中包括对主战坦克的编写、坦克的初始位置的编写、坦克的移动方向的编写、坦克的速度的编写、坦克的子弹速度的编写、敌军的子弹速度的编写、设置游戏难度的编写、子弹的编写、敌军坦克的编写、构造函数的编写,初始化敌军坦克的位置和状态的编写、键盘控制坦克的移动的编写、发弹的编写、判断是否被击中的编写、判断是否击中敌军的编写等。
通过上下左右键进行对坦克的移动,通过F键发射子弹,其它坦克可以随机移动。
构造主窗口中所需要的类,并将坦克加到窗口中,实现坦克的四个方向的移动并创建炮弹类,并让屏幕中的坦克能发射炮弹,让坦克可以朝对方信息统计功能,在游戏界面左上角,显示当前屏幕子弹数。
funcodeC++课程设计报告_坦克大战
课程设计一坦克大战一、游戏介绍相信大部分同学都玩过或看过“坦克大战”这款经典游戏。
现在,就由我们自己动手来开发它。
只要大家具备了C++语言和面向对象的基础知识,然后按照实验指南的指导一步一步进行下去,相信我们每个同学都能把这款经典游戏做出来。
二、实验目标综合运用C++及其面向对象的知识开发一款小游戏。
三、实验内容在一个战场上,玩家控制坦克,消灭敌方坦克,并防止敌方坦克摧毁我方基地。
游戏的具体要求如下:1、游戏有一个初始页面,如下图。
2、按下任意键开始游戏,玩家控制坦克在战场上穿梭,碰到墙时,不能通过。
3、敌方坦克自由移动,每隔2秒改变一个方向,每隔3秒发射一发子弹。
4、敌方坦克每隔5秒出现一辆,从屏幕上方的左、中、右三个位置依次出现。
5、当玩家被消灭或者我方基地被摧毁或者游戏时间大于30秒的时候,游戏结束。
游戏开始前上海锐格软件有限公司1进入游戏四、游戏的整体框架五、实验指南实验准备打开FunCode,创建一个新的C++项目。
注意:项目名称必须为英文和数字,且不能有空格。
点击“项目”→“导入地图模板”,从对话框中选取名称为TankWar的模板导入。
导入成功后,界面如下:实验一游戏开始【实验内容】1、设置游戏标题2、按空格键,提示图片消失,游戏进入开始状态.【实验运行结果】2上海锐格软件有限公司3游戏开始前按下空格键后【实验思路】按下空格键是键盘按下事件,可在CSystem::OnKeyDown 函数中编写响应代码。
为了保证程序结构的清晰、一致,更好的办法是在CGameMain 类中添加一个相应的键盘按下事件处理函数,然后在CSystem::OnMouseClick 函数中进行调用。
g_GameMain 是CGameMain 类的对象,它是全局变量,在程序运行时最先被创建。
【实验指导】1、C++程序的执行入口是主函数。
FunCode 的主函数名称叫WinMain ,写在Main.cpp文件中。
CSystem::SetWindowTitle 是设置程序运行窗口标题的函数,修改如下: CSystem::SetWindowTitle("坦克大战");2、参考CSystem::OnKeyDown 函数,为CGameMain 类创建一个OnKeyDown 函数。
坦克大战实验报告总结
坦克大战实验报告总结坦克大战实验报告总结实验报告总结是对坦克大战实验进行全面回顾和总结的部分。
在这个实验中,我们设计了一个多人在线坦克对战游戏,并对其进行了测试和评估。
首先,我们通过分析游戏的玩法和功能需求,确定了实验的目标和要求。
我们的目标是创建一个具有协同和竞争性元素的多人在线游戏,通过实验测试其稳定性、可玩性和用户体验。
在实验中,我们使用了Unity引擎和C#编程语言来开发游戏。
我们设计了一个简单的地图,玩家可以在其中驾驶坦克进行对战。
我们为坦克添加了各种功能,例如移动、射击和受伤机制,以增加游戏的策略性和挑战性。
为了评估游戏的性能和用户体验,我们进行了一系列测试。
我们首先进行了功能测试,确保游戏的各项功能正常运行。
然后,我们进行了性能测试,测试游戏在不同网络环境下的延迟和帧率。
最后,我们进行了用户体验测试,收集玩家对游戏的反馈和建议。
通过实验,我们得出了以下结论:1. 游戏的核心功能运行正常,并且具有一定的可玩性和挑战性。
2. 在低延迟的网络环境下,游戏的表现良好,但在高延迟的网络环境下会出现一些延迟和卡顿的问题。
3. 玩家对游戏的操作和画面质量表示满意,但希望增加更多的地图和游戏模式来增加游戏的可玩性。
基于这些结论,我们对游戏进行了改进和优化。
我们减少了游戏的网络通信量,以降低延迟和提高游戏的流畅度。
我们还增加了更多的地图和游戏模式,以增加游戏的可玩性。
综上所述,通过本次实验,我们成功地设计并开发了一个多人在线坦克对战游戏,并对其进行了评估和改进。
我们的实验结果表明,游戏具有良好的可玩性和用户体验,但还有一些地方需要进一步优化。
我们相信,在未来的工作中,我们可以进一步改进游戏,使其更加完善和出色。
户外游戏案例分析《坦克大战》
坦克大战2022.5幼儿园给孩子们准备了木质的枪以后户外自主游戏孩子们对打仗游戏非常喜欢,其中“坦克大战”游戏更是男孩子们的喜爱。
户外自主游戏材料的丰富,使孩子们的游戏玩法也多了起来。
一、搭建一个房子户外自主游戏孩子们玩着打仗游戏,每人手里拿着一把枪,在操场上跑来跑去的,我说:你们这样跑来跑去不怕被打死了?这个时候李沐泽和张宇航小朋友想起来想盖一个房子,李沐泽说:有了房子才能保护自己,坏人打不到我们,他俩先用了两个体操垫搭建房子,但这个房子总是立不住,这个时候我问他们:为什么你们的房子总是倒呢?李沐泽说:因为没有当住的东西,我说:那你们再想想还用什么材料可以利用一下呢?他们在操场上观察了半天,李沐泽突然发现了滚筒,他说:老师滚筒可以挡住体操垫,我说:那你可以试试,然后李沐泽和张宇航过去搬过来几个滚筒挡在体操垫后面,这回体操垫真的不倒了,他们又把两个滚筒放在一起,上面又放了一个体操垫当房顶,很快就盖起了一个房子,这个时候好几个小朋友看见了他们的房子,手里拿着枪又跑过来进房子里,开始了他们的打仗游戏。
图片1 搭建房子图片2 滚筒也可以保护自己教师的思考:今天的户外活动几个小朋友一开始只是没有目标的拿着木头枪来回跑,于是我就顺嘴引导了一下,你们这样跑来跑去不怕被打死了?孩子们自发的想到了要搭建一个房子,用来保护自己,幼儿想到了用体操垫盖房子保护自己,但光用体操垫总是立不住,但是幼儿没有放弃,又寻找其他的材料,用滚筒和体操垫组合起来搭建房子,这回真的成功了,最后还盖了个房顶,从这简单的搭建一个房子能看出来幼儿用材料的组合,用滚筒来当辅助支撑,表现除了积极主动、遇到问题自己想办法解决,发散创造性的思维品质、再一次体验了主动学习主动探究的完整过程,并出现了更多合作行为,发展了交往技能。
二、搭建初步的坦克户外自主游戏时孩子们连续玩了好几天打仗游戏,今天早晨做计划时候钟梓辰小朋友说:老师我要今天搭一个坦克,这样子弹也打不进来,我说好啊,你这个主意很不错,我问他那你用什么材料呀?他说:我要用安吉箱和轮胎,我说行,那你一会出去搭建一个坦克吧。
[讲解]坦克大战游戏
摘要坦克大战游戏是一款经典益智冒险游戏,在当代仍然受到广大青少年朋友的喜爱和欢迎。
本系统是基于Java语言,在JDK1.6的开发环境下使用MyEclise 软件来设计与实现的,此游戏具有很高的人工智能化,优美的图形界面支持在windows平台上运行。
通过坦克大战的游戏与实现可以让我们更好地掌握和学习面向对象的编程思想,以及学习、了解游戏的一般开发过程,为以后更好地融入企业、公司的项目开发做一个简单的铺垫。
本论文主要介绍了坦克大战游戏的系统分析、概要设计、需求分析、逻辑结构、详细设计、功能测试等一般游戏开发过程,该款坦克大战游戏能很好的将自己所学的知识应用到游戏的设计与实现,并且此款游戏在实际的游戏操作过程中能按照自己的设计要求来实现各种功能以及游戏安全平稳的运行。
此款坦克大战游戏具有完美的人机交互画面,能够实现人与电脑大战,游戏的剧情设计的也非常简单,就是游戏玩家在保护好自己“基地”前提下,消灭所有的敌方坦克游戏玩家胜利。
如果游戏玩家被消灭或者“基地”被敌方攻破则玩家失败游戏结束。
本游戏使用JAVA语言开发的编写的,具有很好的人机交互界面。
通过使用MyEclipse开发工具是一个十分优秀的用于开发JAV A的软件,来实现坦克大战这款经典的益智冒险小游戏。
让人们在休闲时可以享受到游戏带来的快乐与愉悦,让人们疲惫的心得以在玩游戏中得到释放。
关键词:坦克大战、JA V A语言、MyEclipse开发软件、服务器和客户端AbstractBattle City game is a classic puzzle adventure game , in the contemporary youth is still loved by the majority of my friends and welcome. The system is based on the Java language , using MyEclise software development environment under JDK1.6 design and implementation , this game has a high artificial intelligence , beautiful graphical interface supports running on windows platform. Battle City game and realized by allowing us to better understand and learn object-oriented programming ideas , and learn to understand the game development process in general , for the future to better integrate into the enterprise , the company's project development to make a simple bedding. This paper introduces the casual game systems analysis, design , requirements analysis, logical structure , detailed design , functional testing and other general game development process , Which sees the game can be a very good knowledge of what they are learning is applied to the game design and implementation, and this game in the actual operation of the process of game design can according to their own requirements to achieve a variety of functions and the game safe and stable operation. This section casual game with a perfect interactive screen , to achieve human-computer war game story design is also very simple, is gamers themselves under the protection of a good "base" premise , destroy all the enemy tanks gamers victory. If gamers were eliminated or "base" is the enemy players failed to break the game ends .This game is developed using JAVA language written , with good interactive interface . By using MyEclipse development tool is a very good software for the development of JAV A to achieve tankedaizhan this classic puzzle adventure game . So that people can enjoy the game in leisure time to bring happiness and joy , so tired of people playing the game experience to get released.Keywords : Battle City , JA VA language , MyEclipse development software, server and client第一章引言1.1本课题游戏开发的目的随着我国经济快速发展人们生活水平提高计算机得到了快速的普及以及对电子游戏的的快速发展,作为发展中的中国游戏玩家每年都高速增长,不仅是城市的居民休闲时玩电子游戏随着经济的发展我国广大农村的的居民也把电子游戏选作放松、娱乐的主要休闲方式之一;电子游戏有它独特优势因为它不需要玩家专门购买游戏器材,也不需要准备宽阔的游戏场地,只需要一台完整地电脑配有鼠标和键盘,它可以是人们在工作和学习时使用的计算机,并不需要另行配置,这和传统其他休闲游戏相比即省钱又省事。
坦克大战 毕业设计报告
本科毕业设计(论文)题目基于jsp的坦克大战游戏的设计与实现学院名称信息学院专业班级计科(高职)10-1学生姓名郭建建导师姓名贾瑞祥二○一四年五月二十八日齐鲁工业大学本科毕业设计(论文)原创性声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导教师的指导下独立研究、撰写的成果。
设计(论文)中引用他人的文献、数据、图件、资料,均已在设计(论文)中加以说明,除此之外,本设计(论文)不含任何其他个人或集体已经发表或撰写的成果作品。
对本文研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示了谢意。
本声明的法律结果由本人承担。
毕业设计(论文)作者签名:年月日齐鲁工业大学关于毕业设计(论文)使用授权的说明本毕业设计(论文)作者完全了解学校有关保留、使用毕业设计(论文)的规定,即:学校有权保留、送交设计(论文)的复印件,允许设计(论文)被查阅和借阅,学校可以公布设计(论文)的全部或部分内容,可以采用影印、扫描等复制手段保存本设计(论文)。
指导教师签名:毕业设计(论文)作者签名:年月日年月日目录摘要 (3)ABSTRACT (IV)第一章绪论 (5)1.1 课题背景和意义 (5)1.2国内外游戏发展状况 (5)1.2.1与欧美对比 (5)1.2.2 与韩国对比 (5)1.2.3 与日本对比 (5)1.2.4 我国国内的发展状况 (6)1.3章节安排 (7)第二章开发技术概述 (8)2.1 系统运行环境 (8)2.2 JA V A语言的特点 (8)2.3 关于JSP (9)2.4本章小结 (10)第三章游戏设计的原理及技术 (11)3.1游戏概述 (11)3.1.1游戏概念 (11)3.1.2游戏类型 (11)3.1.3游戏的市场与需求 (12)3.2游戏设计相关技术 (12)3.2.2 OPENGL (12)第四章系统设计 (14)4.1系统需求分析 (14)4.2 系统总体设计 ................................................ 错误!未定义书签。
课程设计报告--坦克大战
目录一.问题定义 (1)1. 项目名称 (1)2. 项目目标 (1)3. 选题背景 (1)二.可行性研究 (1)1.技术可行性 (1)2. 经济可行性 (1)3. 操作可行性 (1)三.需求分析 (2)1. 游戏内容需求 (2)2. 游戏规则 (3)四.游戏设计 (3)1. 类的设计 (3)2. 游戏流程 (4)1. 主流程 (4)2. 游戏初始化 (5)3. 游戏运行 (6)3. 游戏序列图 (14)游戏初始化 (14)键盘按下事件 (15)游戏运行 (15)玩家坦克处理 (16)电脑坦克处理 (17)炮弹碰撞处理 (19)坦克碰撞处理 (19)游戏结束 (20)五.游戏代码 (21)CGameMain类 (21)CTankPlayer类 (32)CTankEnemy类 (36)CBullet类 (42)CWeapon类 (49)六.实验总结 (53)一.问题定义1.项目名称坦克大战2.项目目标综合运用C++及其面向对象的知识开发一款小游戏。
3.选题背景相信大部分同学都玩过或看过“坦克大战”这款经典游戏。
现在,就由我自己动手来开发它。
因为之前的学习,我具备了C++语言和面向对象的基础知识,在这个基础上按照实验指南的指导一步一步进行下去,把这款经典游戏做出来。
巩固之前所学知识也学习新的知识。
二.可行性研究1.技术可行性本游戏采用 FunCode和Visual C++6.0进行开发,基于Windows xp和Windows7操作系统。
Funcode软件提供了大量基础类库,可以快速方便地构造出游戏软件。
之前课程学习过C++,具有一定的C++语言开发基础,对面向程序设计有一定了解。
2.经济可行性此次课程设计由我一人完成,只需装有Funcode及Visual C++的电脑一台,无资金需求;且制作出来的游戏软件并不打算发行,也无后期资金需求,经济完全可行。
3.操作可行性本游戏只需用W、A、S、D来移动,用J键进行攻击,操作十分简单,界面友好,符合用户操作习惯。
坦克大战
《面向对象的编程技术》课程设计实验报告专业班级:计算机科学与技术114班姓名:翟晓军学号:119074133设计时间:2012.12.8——2012.12.20课题名称:坦克大战课程主题与目的:(1)参考(《PC游戏编程(窥门篇)》谭文洪著)中的“坦克大战”(TankWar工程),并对其进行完善、扩充,程序要能看出专业水平和商业化产品的效果。
(2)要求:修改案例中“子弹可以穿透石头墙”的错误;增加上帝模式(无敌);修改一种敌军坦克,使之威力更大(要求坦克画面采用学生自己的头像)(需要重新编译资源包;之所以“改”而不是“增”,是因为同学们无法修改地图编辑器,另一个办法是在程序运行后动态加入);回答“坦克大战”指导书.doc(或pdf) 和TankWar剖析.doc(或pdf)中带有蓝色《….?》标记的问题。
(3)在中国,电子游戏曾一度被大家斥为“电子海洛因”。
然而电子游戏在青年学生中大受欢迎却又是一个不争的事实。
正如水能载舟,亦能覆舟一样,任何事物都有其两面性。
与其千方百计地封堵,还不如让同学们从技术的角度来研究它,这样既可以掌握复杂系统的设计技巧,也可以破除对电子游戏的神秘感。
我相信,一个人如果自己能制作游戏,如果能清楚地知道那个绚丽多彩的虚拟世界背后无非就是一些类、变量、函数的话,他就不可能再沉迷于打游戏———与一堆对象、内存变量和函数较劲。
同时,从技术上讲,游戏程序的开发异常复杂,能充分体现面向对象的拟人化思想和面向对象设计技巧。
通过游戏程序的制作,可以帮助学生真正掌握面向对象程序设计的精髓。
主要技术:C++中类的继承、派生以及多态的使用 程序开发环境:Microsoft Visual C++6.0,WIN7等游戏的整体设计:TobjectTSpriteTobstacleTExplodeTBonusTEnemytankTPlayertank TBulletTWorldTLinkTLinkNode运行界面展示:指导书问题解答:1、g_world.Move();//《不马上返回菜单,而是继续动,去掉此行怎样?》答:敌人坦克也保持不动2、static DWORD dwTick ;//《定时器用法。
坦克大战实验报告摘要
一、实验背景与目的在本次程序设计实训中,我们小组以经典90版坦克大战为原型,设计并实现了一款名为“坦克大战”的游戏。
本实验旨在通过实践,加深对程序设计基础知识的理解,提高编程能力,并锻炼团队协作和项目管理的经验。
通过本次实验,我们希望实现以下目标:1. 熟练运用C++等编程语言进行游戏开发。
2. 学习并应用游戏引擎和相关技术,如碰撞检测、图形渲染等。
3. 培养团队协作和项目管理能力。
二、作品概述本次实验作品名为“坦克大战”,是一款改编自经典90版坦克大战的游戏。
玩家通过控制坦克在街道上进行巷战,摧毁敌方坦克以保卫主基地。
游戏规则如下:1. 玩家坦克被击中或与敌方坦克相撞、玩家指挥部被敌方子弹摧毁时游戏结束。
2. 敌我双方子弹均可摧毁基地。
3. 每隔3秒钟出现一辆敌方坦克。
4. 游戏最大时长为100秒。
三、创新点1. 自定义精灵与属性:在游戏中,我们自定义并命名了树林和钢板精灵。
树林属性设置为不接受碰撞,可以自由穿梭;钢板属性设置为接受任何碰撞,但不做任何处理(即子弹和坦克均不能摧毁钢板)。
2. 特殊声效:为坦克发炮、击中目标和坦克移动等动作添加了特殊声效,使游戏更具沉浸感。
四、功能设计1. 玩家控制:玩家通过键盘操作控制坦克移动、射击等动作。
2. 敌方坦克生成:每隔3秒钟,游戏场景中会自动生成一辆敌方坦克。
3. 碰撞检测:游戏实现了敌我坦克碰撞和子弹与基地的碰撞检测,确保游戏规则的有效执行。
4. 图形渲染:游戏采用了图形渲染技术,使坦克、子弹、基地等元素在屏幕上呈现出来。
5. 得分与生命值:游戏设置了得分和生命值系统,玩家需要尽量摧毁敌方坦克,同时保证自己坦克的生命值。
五、实验过程与成果1. 前期准备:我们小组在实验前进行了充分的前期准备,包括查阅相关资料、学习编程语言和游戏开发技术等。
2. 分工协作:在实验过程中,我们根据个人特长和兴趣进行了分工,确保每个成员都能发挥自己的优势。
3. 编程实现:我们运用C++等编程语言,结合游戏引擎和相关技术,实现了坦克大战游戏的基本功能。
《java桌面开发项目实训》实训报告之坦克大战
广东工贸职业技术学院java桌面应用系统开发学期项目实训报告课程实训题目java版坦克大战专业计算机软件班级学号1313344姓名洪朝亮指导教师鲁庆完成时间2014/6/16----2014/7/4一、课程实训任务书及成绩评定二、课程实训进度计划三、课程实训所需要软件、硬件等资源说明◆Windows 7及以上操作系统;◆JDK1.6及以上版本、eclipse或者myEclipse等软件。
四、可参考的资料、文献1) 教材《Java语言实用教程》,杨晓燕主编,清华大学出版社,2009.042) 上课讲解演示的代码、所给的一些资料、ppt3)图书馆、网上相关内容五、实训内容及代码详细说明(请从此处开始写)1.1、初始化界面:import java.awt.*;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.io.File;import java.io.IOException;import java.util.Vector;import javax.imageio.ImageIO;import javax.swing.*;public class TankGame7 extends JFrame { MyPanel mp = null;public static void main(String[] args) { TankGame7 demo1 = new TankGame7();}public TankGame7() {mp = new MyPanel();mp.setBackground(Color.black);// 启动mp线程Thread t = new Thread(mp);t.start();// 将mp添加到窗体上this.add(mp);// 注册事件监听this.addKeyListener(mp);this.setSize(400, 300);this.setTitle("13软件班案例");// 关闭jvmthis.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}}1.2、在界面上绘制出敌我坦克,自己坦克1辆,敌人坦克不少于5辆。
java坦克大战实训总结
java坦克大战实训总结
本次 java 坦克大战实训让我收获颇丰,简单总结如下:
一、了解了游戏设计的基本流程
在实训中,我通过分析需求,设计游戏逻辑,编写代码实现游戏逻辑,制作游戏素材等环节,了解了游戏开发的整个流程。
二、提高了编程能力
在实训中,我巩固了 java 和面向对象编程的基础知识,并通过编写坦克在地图上的运动、射击等功能代码,增强了自己的编程能力。
三、锻炼了沟通协作能力
在与组内成员的沟通中,我学会了向他人清晰地表达自己的想法,并且听取不同意见和建议,不断改进和完善自己的设计方案。
在实现代码时,我与组内成员紧密协作,分工合作,力争在规定的时间内完成实训任务。
四、了解了团队协作开发中的版本控制
在团队协作开发中,版本控制是一项非常重要的工作。
在实训中,我们采用了GitHub 来管理版本。
通过使用各种 Git 命令,我掌握了代码的远程上传和下载、版本合并等操作,提高了我的团队协作开发能力。
总的来说,这次实训让我更深入地了解了 java 编程以及坦克大战游戏的设计流程。
同时,它也是一个很好的锻炼自己编程能力和团队协作能力的机会,让我更加自信和熟练地应对未来的工作和生活。
坦克大战实验报告
坦克大战实验报告班级:1205 姓名:许广龙学号:121010182一、系统简介使用JAVA编写一个人机游戏,有开始启动面板(Stage 1),并有闪烁效果。
在开始面板中有游戏(G)和帮助(H)两个菜单。
其中游戏(G)菜单中有开始游戏(N)、退出游戏(E)、保存游戏(S)、继续游戏(C)选项;帮助(H)菜单中有关于坦克如何操作的提示信息。
玩家有1辆坦克(有3条命),电脑有6辆坦克,我的坦克可以通过键盘控制进行移动和发射子弹,敌人坦克可自由运动并自动发射子弹。
敌人坦克相互之间不能重叠,敌人坦克与我的坦克不能重叠,我的坦克与敌人坦克不能重叠。
当子弹击中坦克时坦克死亡,并显示爆炸效果。
当我的坦克生命为0时游戏结束(显示GAMEOVER),当敌方的所有坦克死亡时游戏结束(显示VICTORY)。
二、需求分析设计一个图形用户界面,将所有游戏的元素都能在此用于界面上表现出来,界面能够接受用户的操作,具有人机交互功能。
用户可以选择开始游戏(N),退出游戏(E),保存游戏(S),继续游戏(C),游戏帮助(H)。
界面中包含我的坦克和敌人坦克以及坦克发出的子弹和爆炸后的效果。
坦克:坦克分为两种,敌人坦克和我的坦克。
我的坦克和敌人坦克均可以发射子弹,可以改变路径行走,且在行走过程中碰到边界或碰到其它坦克会自动换方向,坦克之间不能相互穿越。
子弹:子弹可以由敌方坦克和我的坦克发射,且发射出去的子弹可以直线移动,直到碰到其它坦克或超越边界就消失。
坦克受到一颗子弹攻击便死亡,死亡后坦克消失。
爆炸:当子弹射击到坦克身上时,要产生爆炸效果。
方向:坦克和子弹都有方向,可以选择上下左右四个方向,且子弹的方向从属于坦克的方向。
具体功能:1、坦克可以上下左右移动2、坦克可以发子弹(可以连发,最多5发子弹)3、当坦克中弹时,坦克消失,并显示爆炸效果。
4、我的坦克被击中后显示爆炸效果5、防止敌人坦克重叠运动、我的坦克与敌人坦克重叠运动、敌人坦克与我的坦克重叠运动6、玩游戏时可以保存游戏和继续游戏7、记录玩家的成绩三、系统设计程序流程图:总体框架:项目名:TankGame1主类文件:MyFrame.java坦克父类文件:Tank.java坦克子类(我的坦克):MyTank.java坦克子类(敌人坦克):EnemyTank.java我的面板:MyPanel.java子弹类:Shot.java开始面板:MyStartPanel.java记录类:Recorder.java爆炸类:Bomb.java四、详细设计(一) 、画坦克1、Tank类class Tank{int x,y;//坦克的位置int direct;//坦克的方向int color;//坦克的颜色,值为0时为的我的坦克,为1时为敌人的坦克int speed;public Tank(int x, int y) {this.x = x;this.y = y;}setter与getter方法(代码略)public void moveUp(){//向上移动,y坐标值减,方向值为0y-=speed;this.setDirect(0);}public void moveDown(){//向下移动,y坐标值增,方向值为2y+=speed;this.setDirect(0);}public void moveRight(){//向右移动,x坐标值增,方向值为1x+=speed;this.setDirect(0);}public void moveLeft(){//向左移动,x坐标值减,方向值为3x-=speed;this.setDirect(0);}}2、我的坦克类MyTankclass MyTank extends Tank{public MyTank(int x, int y) {super(x, y);}}3、主类MyFramepublic class MyFrame extends JFrame{MyPanel mp=null;public static void main(String[] args) {MyFrame tankGame1=new MyFrame();MyFrame.setVisible(true);}public MyFrame() {mp=new MyPanel();this.add(mp);this.setBounds(200,200,600,500);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}4、在MyFrame.java中创建MyPanel类class MyPanel extends JPanel{MyTank mytank=null;public MyPanel(){mytank=new MyTank(200,200);//创建我的坦克并设置其初始位置}//重载MyPanel类的paint函数以实现画坦克public void paint(Graphics g)//窗口大小改变或重绘窗口时,执行repaint()时会自动调用{super.paint(g);g.fillRect(0,0,600,500);this.drawTank(mytank.getX(),mytank.getY(),mytank.getDirect(),mytank.getColor(), 5, g); }//在MyPanel画坦克的函数,参数包括坦克的位置、方向、类型(用于设置颜色)、画笔:public void drawTank(int x, int y, int direct, int color, int size,Graphics g) {switch (color) {case 0://我的坦克的颜色g.setColor(Color.cyan);break;case 1:g.setColor(Color.yellow);break;case 2://敌人坦克的颜色g.setColor(Color.green);break;}switch (direct) {case 0:g.fill3DRect(x, y, size, 6 * size, false);g.fill3DRect(x + 3 * size, y, size, 6 * size, false);g.fill3DRect(x + size, y + size, 2 * size, 4 * size, false);g.fillOval(x + size, y + 2 * size, 2 * size, 2 * size);g.drawLine(x + 2 * size, y, x + 2 * size, y + 3 * size);break;case 3:g.fill3DRect(x, y, 6 * size, size, false);g.fill3DRect(x, y + 3 * size, 6 * size, size, false);g.fill3DRect(x + size, y + size, 4 * size, 2 * size, false);g.fillOval(x + 2 * size, y + size, 2 * size, 2 * size);g.drawLine(x, y + 2 * size, x + 3 * size, y + 2 * size);break;case 1:g.fill3DRect(x, y, 6 * size, size, false);g.fill3DRect(x, y + 3 * size, 6 * size, size, false);g.fill3DRect(x + size, y + size, 4 * size, 2 * size, false);g.fillOval(x + 2 * size, y + size, 2 * size, 2 * size);g.drawLine(x + 6 * size, y + 2 * size, x + 3 * size, y + 2 * size);break;case 2:g.fill3DRect(x, y, size, 6 * size, false);g.fill3DRect(x + 3 * size, y, size, 6 * size, false);g.fill3DRect(x + size, y + size, 2 * size, 4 * size, false);g.fillOval(x + size, y + 2 * size, 2 * size, 2 * size);g.drawLine(x + 2 * size, y + 6 * size, x + 2 * size, y + 3 * size);break;}}(二)、移动坦克(事件监听)在主类注册键盘事件监听,在MyPanel类中实现事件监听。
坦克大战报告
JAVA程序开发课程设计课程大作业专业:软件工程班级:14软工2学号: ***********名:***项目名称:坦克大战一、需求分析:1.基本功能:(1)我方坦克能上下移动(2)敌方坦克能自由移动(3)我方坦克能开火(4)敌方坦克能自由开火(5)子弹打中我方,会减血,我方打中敌方,敌死。
敌打敌不会受伤(6)有血条,主界面2.扩展功能(1)用图形来表示坦克和炮弹(2)用图形来表示中子弹后的爆炸效果(3)地图上存在金属墙,我方坦克和子弹不能穿过(4)地图上存在曹村,我方和敌方坦克能够自由穿过,子弹也一样(5)地图上会随机出现加血包(6)我方坦克遇到加血包,会增加生命(7)游戏开始时,会启动背景音乐(8)我方坦克死亡时,提示游戏结束二、系统设计:1. BgMusic(1)主要功能:添加背景音乐TankMap类通过调用该类,并读取BgMusic包下面的背景音乐文件(2)成员属性:1)filename,用于记录读取到的文件名,并处理2)nBytesRead,这是缓存,用于读取音乐文件,缓存下来(3)成员方法:1)run,播放背景音乐2)构造方法BgMusic,将读取到的文件名,存储到成员属性filename中2. Blood(1)主要功能:地图中添加血包(2)成员属性:1)x,y,width,height,血包的位置以及宽高2)rpos_x,rpos_y,用于记录血包移动后的位置3)tm,调用TankMap类,并在地图中放血包4)live,血包的存活,被坦克吃了就消失5) blood,用于记录血包的存活6)step,血包的步长7)stepMove,血包走过总的步长(3)成员方法:1)Blood,构造方法,将血包放到地图中2)draw,画血包3)move,血包的移动4)getRect,获取血包的位置3. Tank(1)主要功能:地图中添加我方坦克(2)成员属性:1)WIDTH,HEIGHT,xspeed,yspeed,坦克的宽高和x,y上的移动速度2)x,y,direction,我方坦克出现的初始位置和初始状态3)tm,调用TankMap类,并在地图中放坦克4)isLive,我方坦克是否存活5) isgood,坦克属于哪一方6)life,我方坦克的初始生命值7)step,使用Blood类,血包随机出现8)upimage,rightimage,downimage,leftimage,oldimage,存放坦克图片(3)成员方法:1)draw,绘制坦克2)move,根据移动方向,移动坦克,不允许坦克移除地图3)checkDirection,确定用户单击的方向键,修正坦克即将移动方向4)fire,发射子弹5)getRec,返回坦克当前位置,便于判断是否与敌方坦克或子弹重叠6)stay,坦克撞墙的处理7)eat,我方坦克吃血包4.EnemyTank(1)主要功能:地图中添加敌方坦克(2)成员属性:1)WIDTH,HEIGHT,xspeed,yspeed,坦克的宽高和x,y上的移动速度2)x,y,direction,我方坦克出现的初始位置和初始状态3)tm,调用TankMap类,并在地图中放坦克4)islive,我方坦克是否存活5)enemytank,存放坦克图片(3)成员方法:1)draw,绘制坦克2)move,根据移动方向,移动坦克,不允许坦克移除地图3)fire,发射子弹4.Explor(1)主要功能:子弹打中坦克,发生爆炸效果(2)成员属性:1)x,y,坦克出现的位置2)tm,调用TankMap类,并在地图中放爆炸3)islive,我方坦克是否存活(3)成员方法:1)draw,绘制爆炸2)Explor,爆炸的构造方法5.Help(1)主要功能:给用户游戏帮助(2)成员属性:1)help,将帮助的文字存放在字符串中(3)成员方法:1)getHelpDialog,调用帮助6.Shell(1)主要功能:设计子弹(2)成员属性:1)WIDTH,HEIGHT,xspeed,yspeed,子弹的宽高和x,y上的移动速度2)x,y,direction,子弹出现的位置和方向3)tm,调用TankMap类,并在地图中放子弹4)isLive,子弹是否打中坦克5)isgood,是否是我方6)Image,加载子弹图片(3)成员方法:1)draw,绘制子弹2)move,根据移动方向,移动坦克,得到子弹的移动3)getRec,获取坦克的位置4)hitTanks,子弹打坦克5)hitWalls,子弹打墙7.Wall(1)主要功能:给地图添加墙(2)成员属性:1)x,y,w,h,墙的位置和宽度高度2)tc,地图(3)成员方法:1)draw,画墙2)getRect,获取墙的位置8.TankMap(1)主要功能:地图(2)成员属性:1)MAPWIDTH,MAPHEIGHT,地图的宽高2)t,我方坦克3)bufferImage,缓冲,用于解决闪屏4)forestimage,草丛5)shells,EnemyTank,Blood,Explors泛型6)enemyCount,敌方坦克数量7)w1,w2,不可穿过的墙(3)成员方法:1)init,初始化地图2)paint,画血包,地图,坦克等3)addBloods,加血4)update,解决闪屏三、功能实现:1.功能1:我方,敌方坦克上下移动并开火(1)操作说明游戏启动时,按上下左右键可以是我方坦克移动,按F键可以开火(2)关键代码//绘制坦克public void draw(Graphics g){//根据不同方向加载不同图片,读取的时候需要处理异常try{switch(direction){case STOP:case UP:upimage=ImageIO.read(new File("src/images/up.gif"));oldimage=upimage;g.drawImage(upimage, x, y, null);break;case RIGHT:rightimage=ImageIO.read(new File("src/images/right.gif"));oldimage=rightimage;g.drawImage(rightimage, x, y, null);break;case DOWN:downimage=ImageIO.read(new File("src/images/down.gif"));oldimage=downimage;g.drawImage(downimage, x, y, null);break;case LEFT:leftimage=ImageIO.read(new File("src/images/left.gif"));oldimage=leftimage;g.drawImage(leftimage, x, y, null);break;}}catch (IOException e) {};g.drawImage(oldimage, x, y, null);move(direction);}//根据移动方向,移动坦克,不允许坦克移出地图public void move(Direction d){/*** 记录坦克原来的位置,撞墙可以回到原位置*/oldX=x;//记录坦克原来的位置,撞墙可以回到原位置oldY=y;if(d == Direction.STOP){}else if(d == Direction.UP){y-=yspeed;if(y<=HEIGHT)y=HEIGHT;}else if(d==Direction.RIGHT){x+=xspeed;if(x>=800-WIDTH)x=800-WIDTH;}else if(d==Direction.DOWN){y+=yspeed;if(y>=600-HEIGHT)y=600-HEIGHT;}else if(d==Direction.LEFT){x-=xspeed;}2.功能2:我方开火,敌方会爆炸,然后死亡。
坦克大战系统《Java程序开发实训》综合实训报告
《Java程序开发实训》综合实训报告题目:坦克大战系统**:**学号:**********班级:10软件(2)班一、系统实现的主要功能及运行结果截图选择的语言的原因游戏本身是一种娱乐方式,带给人无尽的乐趣,而且游戏行业的发展也将是带动周边行业的发展。
同样对做出游戏的人的要求也会越来越高一满足游戏爱好者的要求。
本次期末设计就是设计一种娱乐性较强的小游戏坦克大战,说到大战其实是不敢当的。
但游戏基本拥有可玩性。
java语言是一种跨平台,适合与分布计算环境的面向对象编程语言,java主要用在web开发,手机游戏及一些平台游戏的开发,他有很好的跨平台性。
所以本次的设计坦克游戏选择的是java。
系统软件的软件环境1.网络服务器操作系统:Window是 XP以上2.开发工具:Eclipse3运行环境:J2sdk4.编程语言:java语言。
人机对战模式功能1.能够发射子弹打击敌人2.敌人能够移动3.能够模拟爆炸4.能够产生障碍5能够增长生命6.能够使用超级子弹坦克可以发射子弹玩家坦克被击中血量减少。
被击中的坦克发生爆炸并且吃血块可以加血量。
玩家坦克可以从把方向发射超级子弹自己的TankHealth为<=0时,。
说明玩家坦克已死亡。
游戏结束本系统的坦克大战是基于java语言设计的开发,具有较高的人工智能和相对的图形处理。
游戏可一人作战每次电脑方有10辆坦克,此一举消灭全部的敌方坦克为目的。
在这过程中坦克有机会得到血块来添加自己的生命值。
从而变得强大。
也利用wall来形成阻击敌人。
游戏拥有开挂的功能。
可以穿过墙体来攻击敌方坦克。
还给玩家坦克置了超级炮弹。
从八个方向同时射出炮弹来摧毁敌方坦克。
主要功能简单罗列如下:1.屏幕左上方显示游戏的状态,当玩家方坦克全数为0是游戏结束2.敌方坦克只在空地上行走,不可通过Wall3.游戏打坏敌方坦克后,可随机位置随机出现血块奖励。
坦克经过该位置可获得相应的生命值加成。
4.玩家坦克的游戏资格和电脑坦克不同。
坦克大战设计报告
手机版疯狂坦克游戏设计与开发摘要Java良好的跨平台特性在移动平台的开发中显示出了巨大的威力。
Java语言面向对象的优势也使得开发游戏变得非常容易。
随着手机的日益普及、Java功能在移动设备上的实现,Java应用程序产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。
本论文着眼于J2ME技术的应用,开发一款可商用的手机游戏程序——坦克大战。
本程序的界面和运作方式继承于日本任天堂公司在20世纪80年代开发的Battle City游戏,将老少皆宜的经典作品移植到手机上来,为更流行的硬件平台提供应用软件。
本论文介绍了任天堂红白机的软硬件特性、J2ME的相关技术及本程序的结构分析和具体功能的实现。
关键词:J2ME,手机游戏,Java,坦克大战目录1 绪论 (3)1.1开发背景 (3)1.2 开发工具 (3)1.3 开发意义 (3)2 需求分析 (6)2.1功能需求分析 (6)2.2界面需求分析 (6)3 总体设计 (7)3.1主要功能 (7)3.2 程序流程 (8)4 详细设计和具体实现 (9)4.1游戏进入前的选择 (9)4.2主游戏逻辑及其涉及到的若干类 (10)4.3坦克的共同行为 (13)4.4玩家坦克的功能属性 (14)4.5敌人坦克的功能属性 (15)4.6子弹的运行和控制 (19)4.7记分系统 (21)5.测试与实现 (22)6 程序的总结和展望 (23)1 绪论1.1开发背景在信息社会中,手机及其他无线设备越来越多的走进普通百姓的工作和生活,随着信息网络化的不断进展,手机及其他无线设备上网络势在必行。
但是传统手机存在以下弊端:1. 传统手机出厂时均由硬件厂商固化程序,程序不能增加、删除,有了错误也不能更新、修改,若要增加新功能必须另换一部手机。
2. 传统手机访问互联网是通过WAP(Wireless Application Protocal),所有网络资源必须接通网络才能在线访问,非常耗时、费用亦很高。
坦克大战 项目总结
1.1 项目背景和开发意义
对开发者的意义:由于坦克大战具有较强数学性、
逻辑性等,同时又富有趣味性,开发起来乐趣无穷。因 此,经常用来当做开发题材。并且该项目设计到网络, 更能锻炼开发者的数据封包,规划等能力;
卓越教育安卓课程第二阶段项目:
基于java SE 高级的坦克大战: • 复习Java 编程基础 • 熟练使用GUI • 熟练使用多线程 • 熟练使用IO流 • 熟练使用网络开发 • 锻炼逻辑思维能力 • 掌握MVC的开发模式 • 学会bug的定位,查找,纠正
我方坦克:
1.4、坦克介绍
奖励一架坦克 让坦克无敌8秒
1.5、道具介绍
让基地周围产生铁,有效时间8秒 加强坦克,2颗加快速度,3颗可打铁 让地图上所有坦克爆炸
让敌方坦克暂停8秒
目录
项目总体介绍 项目详细介绍 项目亮点 项目心得体会
2.1 MVC框架实现
发送给服务端
动作
控制器
游戏 界面
(监听器 或者引 用)
环境:window xp系统 工具:Eclipse+Jdk1.6
1.2 开发环境
用户初连始接化上服来务器 用户离开游戏
1.3、服务器界面介绍
admin
*****
1.3、客户端界面介绍
1.3、客户端界面介绍
1.3、客户端界面介绍
1.3、客户端界面介绍
敌方坦克---重型坦克: 敌方坦克---轻型坦克: 敌方坦克---道具坦克:
3.1 项目亮点----匹配房间
实现方法:创建一个类继承
当游戏过程中,其中一个玩 arrayList,然后添加2个属性:是
家退出游戏后。此时,若游戏结束, 则再连接到该端口的玩家自动匹配
局域网坦克大战课程设计报告
实训项目报告书项目名称局域网坦克大战年级班级2010级计101-4班项目完成人实训时间:2011 年12月12日至2011 年12月31 日填表说明一、本表由项目完成人填写,一式一份;二、实训结束前将填好的文稿打印后交实训指导教师进行鉴定和评定成绩,确认后的文档交院校存档保存;三、此表电子文档及学生项目实训的作品须打包存档,压缩文件包以学生学号命名,以班为单位收集,刻录光盘交院校存档;一、项目背景、目的及可行性分析引言随着时代的进步、社会的发展,网络已成为人们生活中不可或缺的一部分,工作学习之余,利用游戏等放松娱乐一下…….1、课题背景随着游戏产业的迅速发展,新游戏一个接一个的不断出现,游戏的类型也是多种多样,如竞技类、对战类、合作类、角色扮演类等等。
如果读者是学生的话也许会注意到,宿舍里玩的合作类小型游戏大多是两个人在一台机器上,如果想不在一台机器上,则可能需要上网寻求第三方服务器的支持。
2、局域网坦克大战的目的随着计算机的普及以及对电子游戏的认识,电子游戏已被越来越多的人选作放松、娱乐的休闲方式;电子游戏既不需要专门购买游戏器材,也不需要宽阔的游戏场地,只需要一台能独立完成任务的计算机即可,它可以是人们工作、学习时用的计算机,并不需要另行配置,这比起传统休闲游戏即省钱又省事。
局域网游戏更是可以将现实空间中零散的计算机,组织起来,使其在逻辑空间中集中起来,使游戏的组织、开展变得轻松。
如此轻松而又安逸的休闲方式,使得越来越多的人尝试,甚至已经将电子游戏作为主要休闲方式,既然有如此多的人使用,那其中必然存在巨大的商机,即使人们不愿意为一个小小的休闲游戏花费金钱,但在游戏中添加广告、游戏相关服务也包藏了巨大的财富;当然电子游戏的制作如今已是空前的火爆,大大小小的游戏公司横空出世,都想在电子游戏制作这个行业里占据一席之地,而一款成功的电子游戏需要精心的策划、分析、设计,只有这样才能获得游戏中包藏的财富,以及做出一款真正能够让玩家娱乐、放松的游戏,而不是骗取玩家钱财的工具。
坦克大战(终极)
网络游戏开发-Direct-X开发报告题目:坦克大战姓名:谌庆央学号: 110804002班级: 11数媒指导教师:许德鹏完成日期: 2014.06.11目录第一章需求分析1.1 需求分析第二章游戏设计方案2.1 设计原因2.2 游戏特色及晚点2.3 游戏概述2.4 游戏风格2.5 聊天系统第三章游戏开发平台构建3.1 开发硬件3.2 开发平台第四章项目设计4.1系统需求分析4.2系统功能设计第五章游戏网络情况5.1 网络稳定性5.2 网络运行情况5.3 跨平台性第六章调试运行与分析6.1 运行界面6.2 游戏界面第七章总结7.1 总结7.2 系统不足之处参考文献第一章需求分析1.1 需求分析坦克大战中有我方坦克和敌方坦克,我方坦克有一个,敌方坦克一个或多个看连接人数的多少。
坦克可以移动,也可以发射子弹。
我方坦克可以通过上下左右键来控制方向,敌方坦克通过对手控制改变方向。
在游戏窗体中有障碍物,在遇到其他障碍物时,我方坦克停止移动,并通过操纵改变方向再移动。
坦克有一定数值的生命值,当与敌方坦克或敌方子弹相撞时,生命值减少,当生命值是零时,敌方胜利,游戏结束,当敌方坦克被击中,血量降为零时我方胜利,游戏结束。
敌方坦克的生命值跟我方坦克的生命值一样,当敌方坦克与我方坦克或者我方子弹相遇就消失,同时我方子弹也消失,并产生爆炸。
当我方坦克把敌方坦克消灭完后,我方胜利,游戏结束。
游戏过程中可以通过捡拾战斗场地的金币,炮弹,加血等奖励来补充自己的弹药库。
敌我一直战斗直到有一方战败游戏结束。
第二章游戏设计方案2.1 设计原因1)根据原红白机的《坦克大战》分析现行的类似游戏改编2)独特的对抗性吸引更多的玩家体验乐趣3)简单的操作性使本游戏更适合休闲娱乐4)丰富道具,坦克同样可以吸引大型游戏的玩家5)游戏针对人群是25岁及以下的玩家,但是游戏的简单和快速性使它同样适合工作间隙的休闲娱乐2.2 游戏特色及玩点1)游戏以卡通搞笑风格让玩家轻松游戏2)对抗性强,让玩家充分体验网络对抗的刺激感觉3)操作简单,通过键盘就可以完成游戏的所有基本操作4)游戏的多种道具不但有实用性还尽量提供玩家酷的感觉,满足玩家的成就感2.3 游戏概述1)游戏是以坦克为主角的多人网络对抗游戏2)玩家可以可以双人对战进行3)游戏在一个选定的场景中进行2.4 游戏风格1)游戏以2D画面表现比较逼真2)在主体风格下,游戏体现多种场景3)场景中主要表现的是俯视图效果2.5 聊天系统1)玩家可以在大厅和游戏中进行聊天第三章游戏开发平台构建3.1硬件:windows7,window8,windows XP3.2软件:Visual C++6.0,在其基础之上的MFC第四章项目设计4.1 系统需求分析4.1.1 在单人操作模式下实现的功能1)能够发射子弹2)能够模拟爆炸3)能够产生障碍4)能够增长生命4.1.2 在网络对战模式下实现的功能在人机对战模式中实现功能基础上,增加以下功能实现网络对战功能:1)添加网络功能,使两台或者多台不同计算机的玩家通过一定的网络连接,加入到游戏中;2)能够自主分组并选择角色,填写自己的游戏信息,各个玩家之间实现网络对战功能,并且同是一方的坦克不能相互攻击;4.2 系统功能设计4.2.1 坦克大战总体功能设计坦克大战游戏主要实现玩家参加游戏的整个流程,用户登陆游戏客户端选择游戏模式,可分为单机模式和网络对战模式,选择单机模式可以直接进入游戏状态;选择网络对战模式,在启动服务器后,玩家需要选择自己的角色,用户名和ID等玩家相关资料,成功后使用其账号进行登录游戏(只有成功登录的玩家才能参与网络对战游戏功能);登陆玩家就可以通过控制键盘操作,加入对战游戏。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科实验报告
课程名称:Java语言程序设计
实验项目:TankWar
实验地点:致远楼B403
专业班级:软件工程1219 学号:2012005496 学生姓名:柴丁方
指导教师:任少斌
2014年 1 月7 日
import java.awt.*;
import java.awt.event.*;
public class TankWarClient extends Frame {
//构造游戏开始的界面
public void KaiShiJieMian() {
this.setLocation(400,200); //游戏窗口的左上点在屏幕的位置
this.setSize(800, 600);//游戏窗口的尺寸
//使按窗口的“X”时,可以关闭程序
较上一次实验添加的代码段为:
public void paint (Graphics g) {
Color c = g.getColor();//color类是 java。
awt 中的,因此可以直接 color c
g.setColor(Color.green);// 类 java.awt.Graphics 中的方法,将此图形上下文的当前颜色设置为指定颜色。
g.fillOval(50, 50, 30, 30);//int x, int y,int width,int height,分别为坐标与椭圆的长宽
g.setColor(c);
}
变更2:
较上一次实验添加的代码段为:
1.更改如下代码段中的“常量值”为“x”“y”,使所填充的椭圆位置可以随值改变,为静态的图形动起来打下了基础。
static int x=50,y=50;
实验四:从版本0.4到版本0.41
变更1:
变更2:
较上一次实验添加的代码段为:
1.
public class TankWarClient extends Frame {
Image offScreenImage = null;}//先把内存的offScreenImage清空
较上一次实验添加的代码段为:1.TankWarClient类中:
2.
3.
较上一次实验修改的代码段为:
public class Tank {
public static final int XSPEED = 5;
public static final int YSPEED = 5;
private int x, y;
private boolean bL=false, bU=false, bR=false, bD = false;
enum Direction {L, LU, U, RU, R, RD, D, LD, STOP};
private Direction dir = Direction.STOP;
//此处为构造函数。
并且将x,y定义为Tank出现的位置
public Tank(int x, int y) {
Tank类中的修改:
较上一次实验修改的代码段为:
在TankWarClient中添加了
//释放:处理键抬起的消息
public void keyReleased(KeyEvent e) { myTank.keyReleased(e);
}
public class TankWarClient extends Frame { public static final int GAME_WIDTH=800;
public static final int GAME_HEIGTH=600;
Tank myTank = new Tank(50,50,this);
(该截图可以体现:运动方向可以斜向,即为8方向;子弹可以向发射)
实验十二:从版本1.1到版本1.2
较上一次实验修改的代码段为:
1.switch(ptDir) {
case L:
(从该截图可以看到新添加的炮管,炮管能够做到随坦克运动方向移动,当坦克静止时仍可以向炮管指示的方向开炮)
(从该截图可以看到第二发炮弹的发射已经不会影响第一颗炮弹的重画,窗口左上角也多了对开火次数的统计)
(成为窗口内的子弹数目)
(以上即为运行效果)
综上此次比对主要完善的内容是:加入区别敌我的量good
(如图蓝色坦克被击中后,自行消失)。