坦克大战课程设计论文

合集下载

辽宁工业大学JAVA课程设计坦克大战

辽宁工业大学JAVA课程设计坦克大战

辽宁工业大学《Java语言程序设计》课程设计(论文)题目:坦克游戏院(系):软件学院专业班级:软件工程133班学号:学生姓名:指导教师:翟宝峰参考网址 : 教师职称:副教授起止时间:2014.6.9——2014.6.20课程设计(论文)任务及评语院(系):软件学院教研室:软件教研室目录第1章课程设计目的与要求 (1)1.1设计目的 (1)1.2实验环境 (1)1.3预备知识 (1)1.4设计要求 (1)第2章课程设计内容 (2)2.1 课题描述 (2)2.2 系统设计 (3)2.2.1功能分析 (3)2.2.2面向对象设计 (4)2.2.2类成员描述 (5)2.3程序实现 (6)2.3.1源码分析 (6)2.3.2运行结果 (13)第3章总结 (15)参考文献 (16)第1章课程设计目的与要求1.1设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。

通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程《JAVA语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。

(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。

(3)利用所学知识,开发小型应用系统,掌握运用JAVA语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。

(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。

(5)掌握面向对象程序设计的方法。

(6)熟练掌握JAVA语言的基本语法,灵活运用各种数据类型。

(7)进一步掌握在集成环境下如何调试程序和修改程序。

1.2实验环境硬件要求能运行Windows 操作系统的微机系统。

JAVA语言应用程序开发软件使用:VJAVA 系统,或其他JAVA语言应用程序开发软件。

java坦克大战毕业设计论文

java坦克大战毕业设计论文

基于J2SE的网络版坦克大战游戏设计摘要[摘要]:J2SE (Java 2 Standard Edition)就是Java2的标准版,主要用于桌面应用软件的编程,是伴随着计算机技术的飞速发展而诞生的一项新的开发技术。

随着个人电脑的日益普及、Java 功能在个人电脑上的实现,Java应用程序产生的单机增值服务逐渐体现出其影响力,对丰富人们的生活内容、愉悦身心、开发智力等起着不可忽视的作用。

该论文通过总结和分析JA V A 游戏的开发流程和代码框架的设计,开发了一款基于J2SE架构的游戏——坦克大战。

本设计采用面向对象的设计模式,对游戏中的所有物体赋予对象的概念和属性。

运行程序后允许用户选择执行选项菜单。

在开始游戏后,启动服务器和客户端,对背景的所有物体进行绘图。

在主程序运行的线程中,画面刷新将以一定的频率采用双缓冲技术对屏幕重绘,实时反映整个游戏的进行状态。

用户控制的坦克运行在主线程中,随屏幕刷新的频率而移动。

坦克将在游戏开始时进行初始化,然后将坦克绘制在地图的上层。

本设计主要实现的功能是让坦克能向八个方向移动,并且打出炮弹,子弹击中敌人坦克,子弹和敌人坦克同时消失,产生爆炸,CPU坦克能智能的移动并且打出炮弹。

能够支持网络对战和单机对战两种模式。

Java良好的跨平台特性在软件的开发中显示出了巨大的威力,“一次编写,随处运行”,java 系统可以运行在不同的操作系统和硬件上。

随着linux的持续增长以及MacOSX完全支持java技术,跨平台的特性变得越来越有分量。

由于免费、跨平台、java语言本身技术先进,在高校中,java已经成为许多学科研究、课程和计算的首选语言,用java做上机作业,一般都是鼓励的。

据我所知,北大、清华许多院系的研究生入学考试都可以用java语言答题。

实际上,用java来完成这些工作,大多数情况下要比用C或其他语言简洁得多,你可以把注意力集中在算法等核心部分,从而获得更高分数。

基于java的游戏坦克大战论文

基于java的游戏坦克大战论文

目录摘要 (I)ABSTRACT (II)第一章绪论 (1)1.1课题研究的背景 (1)1.2课题研究的任务 (1)第二章系统分析 (2)2.1课题的可行性分析 (2)2.2需求分析 (2)第三章系统总体设计 (3)3.1游戏总体流程设计 (3)3.2游戏界面设计 (4)第四章游戏详细设计 (6)4.1各个类的实现 (6)4.2程序的详细设计 (7)第五章测试 (9)5.1软件测试说明 (9)5.1.1 软件测试的目标 (9)5.1.2 软件测试的原则 (9)5.2测试计划 (10)5.2.1 进行通过测试 (10)5.2.2 进行有效类测试 (10)5.3测试用例 (10)总结 (10)参考文献 (11)致 (12)附录一坦克大战中的类 (15)附录二坦克大战程序 (31)毕业设计(论文)原创性声明和使用授权说明原创性声明本人重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了意。

作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部容。

作者签名:日期:学位论文原创性声明本人重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

坦克大战设计

坦克大战设计

湖北大学J A V A课程设计论文题目坦克大战游戏姓名张诚学号 ****************姓名柳谦学号 ****************专业年级计算机科学与技术1401 指导教师王雷春职称副教授2016年 5月目录绪论 (4)1背景 (4)2课程设计目标及目的 (5)2.1课程设计的目标 (5)2.2课程设计的目的 (5)2.3可行性分析 (5)2.3.1技术可行性 (5)2.3.2经济可行性分析 (6)3概要设计 (6)4详细设计 (7)4.1项目与类的结构图 (7)4.2 各类实现的功能概要 (7)4.2.1 barrier包 (7)4.2.2 lightButton包 (7)4.2.3 Tankwar包 (7)4.2.4 mapediter包 (8)4.3 主要类的的UML图及主要成员变量和函数说明 (8)4.3.1 Barrier类 (8)4.3.2 LightButton类 (11)4.3.3 Mapediter类 (13)4.3.4 Main类 (15)4.3.5 Boom类 (18)4.3.6 Item类 (18)4.3.7 Missle类 (21)4.3.8 PanelShow类 (25)4.3.9 Tank类 (26)4.3.10 TankWar 类 (33)5运行结果 (40)6总结 (47)7参考文献 (47)8附录 (48)坦克大战摘要坦克大战是一款最初由日本南梦宫Namco游戏公司1985年在任天堂FC平台上,推出的一款多方位平面射击游戏。

一经推出,人气十分高涨,然后又陆续推出了GB,PC等版本,玩法也大大扩充,由最初的单人2D过关演变到如今的多人3D联网对战游戏,我们小时候应该都体验过,之前C#课程中已经了解过有关信息,如今就想同样以Java为载体编写一款坦克大战。

本课题展示了如何使用Java编写出能够实际运行的单人版坦克大战游戏。

课题介绍了项目的功能、类的设计和逻辑难点等重要点。

JAVA坦克大战课程设计

JAVA坦克大战课程设计

JAVA坦克大战课程设计实验报告专业班级:计算机学号:201110000姓名:指导老师:JAVA坦克大战课程设计一、课程设计目的Java坦克大战程序设计的课程程序设计是我们学习完Java语言程序设计课程后,进行的一次全面的综合设计,其目的是加深对理论教学内容的理解和掌握,使学生综合运用.学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下基础。

二、课程设计的预备知识和实验环境熟悉Java语言以及eclipse开发工具,实验环境为JDK1.6。

三、课程设计的主要内容坦克大战游戏是在eclipse环境下编程的游戏,其中包括对主坦克的编写、坦克的初始位置的编写、坦克移动方向的编写、坦克的速度的编写、坦克子弹速度的编写、敌对坦克子弹速度的编写、敌对坦克的编写等等。

游戏主要实现的功能有:1.能够四处移动2.能够打击敌人3.敌人能够移动4.能够模拟爆炸5.能够产生障碍6.能够增长生命四、程序具体设计1.版本0.1~0.2实现的主要功能:产生一个不能修改大小的窗体,并实现关闭窗体的事件处理。

源代码如下:2.版本0.3~0.5实现的主要功能:画出代表坦克的同心圆;让坦克运动起来;使用双缓冲来消除坦克移动时的闪烁现象;利用代码重构将以后可能需要多处修改的量定义为常量,例如窗体的宽度和高度(常量名一般为大写)主要代码如下: public class TankClient extends Frame {int x = 50, y = 50;public void paint(Graphics g) {Color c = g.getColor();g.setColor(Color.RED);g.fillOval(x, y, 30, 30);g.setColor(c);y += 5;}使用paint 方法来画出坦克,并将坦克的位置设置成变量来实现坦克的移动。

p ublic void lauchFrame() {this.setLocation(400, 300);this.setSize(800, 600);this.setTitle("TankWar");this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}this.setResizable(false);this.setBackground(Color.GREEN);setVisible(true);new Thread(new PaintThread()).start();}public static void main(String[] args) {TankClient tc = new TankClient();uchFrame();}private class PaintThread implements Runnable {public void run() {while(true) {repaint();try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}}}}使用update来实现双缓冲结局移动时的闪烁问题public void update(Graphics g) {if(offScreenImage == null) {offScreenImage = this.createImage(GAME_WIDTH, GAME_HEIGHT);}Graphics gOffScreen = offScreenImage.getGraphics();Color c = gOffScreen.getColor();gOffScreen.setColor(Color.GREEN);gOffScreen.fillRect(0, 0, GAME_WIDTH, GAME_HEIGHT);gOffScreen.setColor(c);paint(gOffScreen);g.drawImage(offScreenImage, 0, 0, null);}在lauchFrame方法中启动线程,来实现坦克的移动,并加入sleep方法使移动出现延时。

基于Java的坦克大战游戏的设计与实现毕业设计论文

基于Java的坦克大战游戏的设计与实现毕业设计论文

基于Java的坦克大战游戏的设计与实现摘要:随着人们对生活质量的要求一天比一天高,为了让人们更好地开掘自身的智慧,游戏就此进入了大众的视野,在人们的生活中有着重要的位置,已然变得必不可少。

游戏产业推动高新技术不断升级,极大地促进了经济的增长,推动了“第四产业”的经济腾飞。

坦克大战游戏是童年时期经常玩的经典游戏,我们对它都十分了解。

游戏通过分析JA V A游戏开发和代码设计,用Eclipse软件开发了坦克大战游戏,运用接口技术,使一个类能够实现多个接口,使用套接字Socket 来完成client端和server端的连接。

玩家通过连接访问进入游戏,通过操纵坦克来守卫基地,玩家还可以获得超级武器来提升坦克的属性,摧毁全部敌方坦克来取得胜利,操作非常简单,还具有非常高的普遍率,适合所有人群玩。

该游戏既满足了人们的个性化需求,也让玩家在游戏过程中丢掉烦恼,尽情地释放压力。

关键词:Java 坦克大战游戏SocketThe Design and Implementation of The Java Based Tank War GameAbstract:As people demand higher quality of life every day, in order to make people better dig their own wisdom, the game into the public vision, in people's lives have a vital position, has become an indispensable part. The game industry to promote the upgrading of high-tech, which greatly promoted the economic growth, and promote the "fourth industry" economic take-off. Tank war game is often played in childhood, but also the classic game. Game through the analysis of JA V A game development and code design, with Eclipse software developed a tank war game, the use of interface technology, so that a class can achieve multiple interfaces, the use of socket Socket to complete client and server side of the connection. Players access the game through the connection, through the manipulation of tanks to guard the base, the eradication of all enemy tanks to win, players can also get super weapons to enhance the properties of the tank, the operation is very simple, suitable for people of all ages to play. The game not only meets the individual needs of people, but also allows players to lose trouble in the course of the game, enjoy the pressure to release.Key words: Java; Tank war game; SocketII目录1.引言 (1)2.系统分析 (1)2.1需求和技术分析 (1)2.2功能分析 (2)3.总体设计 (2)3.1总体功能 (2)3.2坦克大战总体流程图 (4)4.详细设计 (5)4.1面板功能设计 (5)4.2子弹功能设计 (8)4.3坦克功能设计 (9)4.4服务器设计 (10)4.5客户端设计 (13)5. 游戏测试 (15)5.1测试方法 (15)5.2系统测试 (15)5.3测试分析和小结 (17)6.结论 (18)参考文献 (18)1.引言随着社会和时代的进步,来自各个方面的压力让人没精打采,为了分解人们的压力,休养那变得疲顿的头脑和劳累的身心,特设计了坦克大战小游戏,游戏操作非常容易,只要将手指放在键盘上敲击相关的游戏键就可以玩,在玩游戏的过程中能够体验现实生活中没有的快乐,既有利于身心健康,又不会影响工作和学习。

Flash游戏制作——坦克大战毕业论文

Flash游戏制作——坦克大战毕业论文

毕业设计(论文)课题名称:Flash游戏制作——坦克大战学院:软件学院专业:信息工程班级:081131二零一二年四月摘要flash游戏是一种新兴起的游戏形式,以游戏简单,操作方便,绿色,无需安装,文件体积小等优点现在渐渐被广大网友喜爱。

由于flash游戏主要应用于一些趣味化的、小型的游戏之上,以完全发挥它基于矢量图的优势。

flash游戏因为Flash CS 3和ActionScript 3。

0的原因,在近年发展迅速,许多年青人投身其中,并在整个flash行业中发挥重要作用。

flash player占据了90%互联网用户的浏览器,所以发的发展空间还十分巨大,前途不可估量。

制作游戏的初衷是因为在当今人们的工作很繁琐枯燥,在闲暇时能玩玩一些小游戏来放松自己。

本游戏运用了Flash基本知识与精巧的算法还原了90年代的经典游戏——坦克大战,由于是Flash游戏,在进网页浏览时要尽可能的减少游戏加载速度和提高游戏运行速度,所以游戏模型采取了最简单的矢量图绘制而成,放弃了色彩比较丰富的位图,整个游戏作品仅22KB大小,与静态网页的大小相差无几,完全满足一般网络带宽的加载需求。

游戏算法方面采用了面向对象程序设计,面向对象的编程引进了类的概念,在本文中重点介绍了类的使用方法。

游戏中每一个游戏元素都采用不同的类进行了封装,代码采用最新Flash CS 4。

0中的ActionScript3。

0,在AS3。

0中每个类的脚本代码都用一个独立的*。

as文件保存,在游戏中每一个元素都是一个独立的类,比如子弹类实现了子弹检测是否击中敌人的功能、玩家控制的坦克类实现了玩家坦克上下左右移动和射击的功能、敌军坦克类实现敌人自主移动和射击的简单人工智能功能等等,这些都体现了类的封装概念,让设计者更加轻松、读者更加易懂。

关键词: flash;碰撞;射击;移动目录第1章绪论 (1)1。

1 Flash软件简介 (1)1。

2 Flash的特点 (1)1。

基于某java坦克大战课程设计

基于某java坦克大战课程设计

摘要面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,它吸取了结构化程序设计的精华,以更接近人们通常思维的方式来处理问题,是一种全新的软件开发技术。

作为一种新的的编程语言,Java很大程度推广了面向对象的思想。

随着计算机技术的发展,Java的强大展现出它不可替代的作用。

Java的功能不仅体现在它网络方面的应用,对于应用程序设计、游戏设计等Java都能满足需求。

本文针对Java 的具体应用,设计了一个小游戏。

根据游戏的规则,用户将可以和计算机进行简单对战。

程序实现了友好的用户交互界面,让用户能很好地对游戏进行操作。

关键字:JAVA GUI 游戏ABSTRACTThe Object-Oriented Method is a method which apllies the Object-Oriented Design to the process of the software exploiture and directs the ploy of development. It extracts the prime of the Structured Design for Computer Programmers, deals matters with afolksy fashion, which is considered to be a grand new software-develop technique.As a new programming language, Java spread the Object-Oriented Design in a certain degree. With the development of the technique of computer, the insurmountable function of JAVA is exhibited for its’ mightiness. Not only applies in network, JAVA also can fulfill the requirement of the Application-Design and Game-Design.In this paper, to use the idiographic application of JAVA , I design a game called . Following the regular of the game, user can play a simple revalry with computer. This programme actualizes a folksy GUI mode, which will make user master game easily.Keywords: JAVA GUI Game目录一、背景与意义.................................................. - 1-二、坦克大战小游戏应用程序 (2)三、坦克大战小游戏系统的设计 (2)3.1系统需求分析 (2)3.2系统开发及运行环境 (2)3.3系统主要功能要求 (3)3.4坦克大战系统总体结构 (3)3.5系统数据流图 (4)四、设计原理及方案 (4)五、系统具体实现 (6)六、详细设计过程与算法实现 (8)七、程序运行结果截图 (16)八、总结 (20)九、参考文献 (21)一、背景与意义1背景游戏是全球最大的娱乐经济项目之一,已经被命名为“第九艺术”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

坦克大战游戏设计1.课程设计的目的随着手机的日益普及,java功能在移动设备上的实现及java 应用程序产生的影响力,对丰富人们的生活内容,提供便捷的咨询起着不可忽视的作用。

本项目介绍了坦克大战的基本构建方法、java的相关技术及本程序的结构分析和具体功能的实现。

游戏是在Eclipse3.2环境下编程。

本项目重点运用了图形化用户界面GUI,Thread多线程的有关知识,其中涉及了绘图工具的运用,事件处理操作以及图形的碰撞检测等知识点。

通过此课程设计,使学生巩固所学知识、培养学生动手能力,了解Java的面向对象的体系结构。

学生用Java语言设计一个完整的应用程序,综合应用所学知识完成软件的分析、设计、调试和总结,提高学生对Java语言的综合应用能力和解决问题的能力。

2.设计方案论证2.1设计思路本项目介绍了坦克大战的基本构建方法、java的相关技术及本程序的结构分析和具体功能的实现。

游戏是在Eclipse3.2环境下编程。

一、游戏基本元素:坦克,炮管,子弹,墙壁,地雷二、它的主要功能:(1)能够朝四个方向移动:上、下、左、右键。

(2) 按下鼠标左键发射普通子弹;按下鼠标右键发射散弹;子弹爆炸的效果,普通子弹和炮弹的效果(3)敌人能够移动(4)能够模拟爆炸(5)能够产生障碍(6)能够增长生命玩家控制主坦克(上方有血条的)的移动以及炮弹的发射。

若玩家将敌方坦克全部打掉则玩家胜;若期间由玩家控制的主坦克被打掉则视为玩家失败。

游戏中只有普通墙作为障碍物,玩家无法穿越它们并且普通子弹不能将墙打穿;但是玩家可以用炮弹将普通墙打掉。

桃心可以将坦克的血加满。

2.2简要的设计流程:键盘监听器2.2设计方法2.2.1构建游戏主类在主类中构造一个主Frame框架,设置它的大小和位置,并将其显示。

在主类中编写一段代码,构造一个窗口。

并添加窗口关闭的处理事件,将窗口设置成打小不可变。

主要代码如下:this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});this.setResizable(false);2.2.2构建坦克类Tank构造主窗口中所需要的Tank类,并将坦克加到窗口中,实现坦克的四个方向的移动创建一个坦克类,用画图工具构造出简单的图形代表坦克,并将坦克加入到主窗口当中。

主要代码如下:abstract class Tank{boolean init=false; //第一次画时将图片载入内存static final Toolkit TLK=Toolkit.getDefaultToolkit(); //用来将图片读入Image数组public static Image[] turretImg={TLK.getImage(Tank.class.getClassLoader().getResource("I mage/Tank/turret1.png")),TLK.getImage(Tank.class.getClassLoader().getResource("I mage/Tank/turret2.png"))};BufferedImage bTurretImg=null;Graphics2D g2=null;AffineTransform trans=new AffineTransform();public static final int SHOTSCOUNT=5; //同时可发射的子弹数int shotsCount=0; //已经发射的子弹数public static final int TANKSPEED=5; //Tank移动速度public static final int TANKWIDTH=36; //Tank的尺寸public static final int TANKHEIGHT=38;public static enum TANK_DIR {U,D,L,R,STOP};TANK_DIR tankDir; //Tank主体的方向TANK_DIR moveDir; //Tank的运动方向boolean camp; //Tank的阵营boolean isNPC; //是否是有电脑控制的机器人Tankboolean isLive=true; //Tank是否存活int x,y; //Tank主体的中心点坐标int oldx,oldy; //存储Tank前一步的坐标int turretDirx, turretDiry; //大炮端点的坐标public static final int TURRETLENGTH=30; //炮筒的长度double oldAngel=0;double nowAngel;double turnAngel;TankClient tc=null; //主界面类的引用Bomb tankBomb=null;HitPoint tankHitPoint; //Tank的生命值static Random rn=new Random(); //随机数发生器让坦克朝四个方向运动起来,在主类TankClient中启用多线程机制,让系统不断的进行重画。

class RepaintThread implements Runnable //画面重画线程{public void run(){while(repaintFlag){try{repaint();ut.move(); //Tank定时移动Shot tcShots=null;for(int i=0;i<shotsList.size();i++) //界面上的子弹定时移动{tcShots=shotsList.get(i);tcShots.move();}Thread.sleep(33);} catch (InterruptedException e){e.printStackTrace();System.exit(-1);}}}}class RobotTanksThread implements Runnable //机器人Tank 的行动线程{TankClient tc;public RobotTanksThread(TankClient tc){this.tc=tc;}public void run(){Tank tcTanks=null;int count=-1;while(repaintFlag){if(0==count) //电脑Tank全灭后重新加几辆{//RobotTank.add(1,false,RobotTank.RTANKTYPE.BOSS,tc) ;RobotTank.add(2,false,RobotTank.RTANKTYPE.SPE,tc);}try{count=0;for(int i=0;i<tanksList.size();i++){tcTanks=tanksList.get(i);if(!tcTanks.camp) { count++; }if(!tcTanks.isNPC||!tcTanks.isLive) { continue; } //不控制玩家的Tank((RobotTank)tcTanks).autoAction(); //自主行动}Thread.sleep(38);} catch (InterruptedException e){e.printStackTrace();System.exit(-1);}}}}根据坦克类修改TankClient主类,在主类中注册事件监听器,并调用Tank类中的方法:class TankMoveLis extends KeyAdapter //玩家Tank按键监听者{public void keyPressed(KeyEvent e){if(ut.isLive){ut.keyDispose(e.getKeyCode(),true);}}public void keyReleased(KeyEvent e){if(ut.isLive){ut.keyDispose(e.getKeyCode(),false);}else{if(e.getKeyCode()==KeyEvent.VK_F2){ut.rebirth(); //复活}}}}class MouseMoveLis extends MouseMotionAdapter //鼠标移动监听者{public void mouseMoved(MouseEvent e){if(ut.isLive){mousePoint=e.getPoint();ut.setTurretDir(mousePoint); //根据鼠标位置更新炮筒方向}}}在Tank类当中添加的按键方法,代码如下public void keyDispose(int Key,boolean b) //对用户按键的处理{if(b) //有键按下{switch(Key){case KeyEvent.VK_UP:case KeyEvent.VK_W:{keyList.remove(TANK_DIR.U);keyList.add(TANK_DIR.U);}break;case KeyEvent.VK_DOWN:case KeyEvent.VK_S:{keyList.remove(TANK_DIR.D);keyList.add(TANK_DIR.D);}break;case KeyEvent.VK_LEFT:case KeyEvent.VK_A:{keyList.remove(TANK_DIR.L);keyList.add(TANK_DIR.L);}break;case KeyEvent.VK_RIGHT:case KeyEvent.VK_D:{keyList.remove(TANK_DIR.R);keyList.add(TANK_DIR.R);}break;case KeyEvent.VK_SPACE:{this.superFire();}break;default:break;}}else //有键抬起{switch(Key){case KeyEvent.VK_UP:caseKeyEvent.VK_W:{ keyList.remove(TANK_DIR.U); }break;case KeyEvent.VK_DOWN:caseKeyEvent.VK_S:{ keyList.remove(TANK_DIR.D); }break;case KeyEvent.VK_LEFT:caseKeyEvent.VK_A:{ keyList.remove(TANK_DIR.L); }break;case KeyEvent.VK_RIGHT:caseKeyEvent.VK_D:{ keyList.remove(TANK_DIR.R); }break;default:break;}}if(keyList.size()==0) { keyList.add(TANK_DIR.STOP); }super.setMoveDir(keyList.get(keyList.size()-1));}2.2.3添加炮弹Shot类在Shot类当中添加x,y,dir等属性以及常量。

相关文档
最新文档