坦克大战详细设计说明书
10 C语言课程设计_坦克大战(提高篇)

C语言课程设计--坦克大战一、游戏介绍玩家坦克与敌方坦克在街道中进行巷战,玩家坦克被击中、玩家指挥部被击中或游戏时间到,一局游戏结束。
二、实验目的综合应用C语言知识和设计知识开发一款小游戏。
三、实验内容初始界面如下图。
按下空格键后游戏开始,“空格开始”消失,载入地图,并把玩家坦克设置在指挥部左侧。
游戏时间到,比如30秒,玩家坦克被敌方坦克摧毁,或者玩家指挥部被摧毁,一局游戏结束,游戏回到初始界面,并显示上一局的分数。
游戏区域为下图中最内部的黑色区域,左上角坐标[-26, -22],右下角坐标为[26, 22]。
墙为正方形,边长为4,坦克也是正方形,比墙略小一点。
玩家用WASD键控制坦克上、下、左、右运行,按J键开炮。
玩家坦克碰到墙就停下来,需要调转方向才能继续前进。
玩家坦克开炮,一炮就能摧毁一块墙,或者一辆敌方坦克。
玩家没摧毁一辆敌方坦克,加1分。
玩家指挥部被坦克或者炮弹(不管玩家还是敌方)碰上,都会被摧毁。
每隔几秒钟,比如3秒,就会产生一辆敌方坦克。
敌方坦克每隔一段时间,比如1秒,就自动开炮。
敌方坦克遇到墙就会停下来。
停下来的坦克,前方的墙如果被摧毁了,又能继续前进。
每隔几秒钟,比如2秒,敌方坦克就会顺时针变换一个方向前进。
四、实验准备本实验中可能用到的C 语言标准库函数和FunCode API Stdio.hMath.hString.hFunCode API原图的角度获得的旋转角度即为两张图片的五、程序初步设计如果程序规模比较小的时候,我们习惯一上手就写代码,边写边调整。
但是当程序越来越大,代码越来越多的时候,如果我们还用这种方式编程,程序写到一半的时候,你可能会恨不得重写一遍。
此,我们在写代码之前,先把程序功能细化一下,并初步设计好程序结构,包括数据结构和自定义函数。
有了比较清晰的思路以后,再开始开发程序。
在本项目中,我们要操作的对象有6个:玩家坦克、敌方坦克、玩家子弹、敌方子弹、墙、玩家指挥部。
坦克大战游戏策划书3篇

坦克大战游戏策划书3篇篇一《坦克大战游戏策划书》一、游戏概述1. 游戏名称:坦克大战2. 游戏类型:射击游戏3. 游戏背景:设定在一个虚构的战争世界,玩家将扮演坦克驾驶员,参与各种战斗任务。
4. 游戏目标:通过消灭敌人、摧毁敌方基地或完成特定目标来获得胜利。
二、游戏玩法1. 操作方式玩家使用键盘或手柄控制坦克的移动和射击。
方向键控制坦克的前后左右移动,射击键进行攻击。
2. 游戏地图地图设计多样化,包括平原、城市、森林等地形。
地图上分布着各种障碍物、敌方坦克和资源点。
3. 游戏模式单人模式:玩家独自对抗电脑控制的敌人。
多人模式:支持玩家之间进行对战或合作。
4. 游戏元素坦克种类:设计多种不同类型的坦克,具有不同的属性和技能。
武器系统:坦克配备多种武器,如主炮、副炮、导弹等,可升级和切换。
道具系统:地图上散布着各种道具,如补血包、加速道具、护盾等,可增强玩家的能力。
升级系统:通过消灭敌人或完成任务获得经验值,升级坦克的属性和解锁新技能。
三、游戏特色1. 丰富的游戏内容多种游戏模式,满足不同玩家的需求。
精心设计的地图和关卡,增加游戏的挑战性和趣味性。
2. 策略与技巧并重玩家需要根据地形和敌人的位置,选择合适的战术和武器。
合理运用道具和升级系统,提升坦克的战斗力。
3. 精美的画面与音效采用高品质的图形和音效,营造出紧张刺激的游戏氛围。
支持多种分辨率和画面特效,适应不同设备的需求。
4. 在线排行榜与成就系统设立在线排行榜,让玩家可以与其他玩家竞争。
设计丰富的成就系统,增加游戏的可玩性和重复性。
四、游戏开发计划1. 团队组建确定游戏开发团队的成员,包括策划、美术、程序等。
2. 开发进度制定详细的开发进度表,明确各个阶段的任务和完成时间。
3. 测试与修复进行内部测试和玩家测试,收集反馈意见,修复发现的问题。
4. 发布与推广确定游戏的发布平台和时间,制定相应的推广策略。
五、游戏盈利模式1. 游戏内购出售虚拟道具,如坦克、武器、皮肤等。
坦克大战游戏详细设计说明

目录1.引言 (2)1.1 编写目的 (2)1.2 项目背景 (2)1.3 定义 (2)1.4 参考资料 (2)2.总体设计 (3)2.1需求概述 (3)3.程序描述 (4)3.1 程序逻辑 (4)3.1.1 主类模块 (4)3.1.2 坦克类模块 (4)3.1.3 子弹类模块 (12)3.1.4 爆炸类模块 (14)3.1.5 墙类模块 (16)3.1.6 血块类模块 (16)3.3 存储分配 (17)3.4 限制条件 (18)3.5 测试要点 (18)1.引言随着社会的进步,现在人们工作的压力越来越大,休息的时候很少,为了让疲惫的心灵得以休息,开发了坦克大战的小游戏来让玩家轻松一会,该游戏操作十分简单,只要操作键盘上的方向键按住攻击键就可以玩该游戏,轻松享受玩游戏的喜悦,可操作性好,而且不会使玩家沉溺于该游戏,对玩家的学习和工作都起积极的作用。
1.1编写目的为明确软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档。
本文档供项目经理、设计人员、开发人员参考。
1.2项目背景a.项目名称:坦克大战游戏开发b.产品用户:对该游戏感兴趣的玩家c.项目和系统的关系:本项目旨在编写出一个操作简单但可玩性良好的小游戏来让玩家放松一下心情,对系统硬件配置要求低。
实现简单。
1.3定义持有对方的引用:在一个类里面有一个成员变量是另一个类的对象,这个对象相对于这个类来说就是持有了另一个类的引用,通过这个对象作成员变量可以引用对象这个类的成员变量和成员方法。
内部类:写在一个类内部的类是内部类,内部类封装在类的内部,不能被其他的外部类直接访问,起到保护作用,但要写的简短。
1.4参考资料《Java基础知识详解》《Java游戏开发》等。
2.总体设计2.1需求概述游戏包括的范围:本游戏包括主类、坦克类、子弹类、爆炸类、墙类、血块类。
要求游戏能有效、快速、安全、可靠和无误的完成上述操作。
并要求客户端的界面要简单明了、易于操作,服务器程序利于维护。
坦克大战详细设计说明书

RIA编程技术课程大作业11软工2班傅佳杰目录1绪论…………………………………………………………………………………1.1开发背景………………………………………………………………………1.2开发工具………………………………………………………………………2程序设计……………………………………………………………………………2.1主要设计思路……………………………………………………………………3程序简介………………………………………………………………………3.1程序一些类的介绍……………………………………………………………4程序运行与测试……………………………………………………………………4.1程序开始………………………………………………………………………4.2程序界面………………………………………………………………………4.3系统启动测试………………………………………………………………4.4子弹发射测试………………………………………………………………4.5玩家移动测试………………………………………………………………1绪论1.1开发背景随着信息社会的迅猛发展,人们对游戏的要求也越来越1.2开发工具记事本2程序设计2.1主要设计思路用Canvas进行图形或图像绘制;支持图形或图像移动;支持键盘控制;应实现功能基本完整的单机游戏系统。
3程序类的介绍3.1有关类的介绍Tank类1、Tank类的主要属性有:function Tank(x,y,direct,color){this.x=x;this.y=y;this.speed=1;this.isLive=true;this.direct=direct;this.color=color;1、drawTank ()方法drawTank()方法根据坦克的类型不同可以画出不同类型的坦克和不同方向的坦克2、fire()方法fire()方法的功能是实现打出一颗子弹,fire()方法调用了画坦克的颜色变量c ,画出与坦克一样颜色的子弹,以区别子弹是那一方发出来的。
坦克大战游戏策划书3篇

坦克大战游戏策划书3篇篇一坦克大战游戏策划书一、游戏概述游戏名称:坦克大战游戏类型:休闲竞技类游戏目标:玩家控制坦克在战场上与其他玩家或电脑控制的坦克进行战斗,通过摧毁敌方坦克来获取胜利。
游戏玩法:玩家通过操作坦克的移动、射击等动作,与其他坦克进行对抗。
游戏中会有各种道具和障碍物,增加游戏的趣味性和挑战性。
二、游戏角色1. 玩家坦克:由玩家控制,具有不同的属性和技能。
2. 敌方坦克:包括电脑控制的普通坦克和具有特殊能力的 BOSS 坦克。
三、游戏场景1. 战场:分为多个不同的地图,每个地图都有独特的地形和障碍物。
2. 基地:玩家和敌方的起始位置,需要保护好自己的基地不被摧毁。
四、游戏规则1. 玩家通过操作坦克在战场上移动和射击。
2. 摧毁敌方坦克可以获得分数和道具。
3. 玩家的坦克被摧毁后,可以在一定时间后复活。
4. 游戏时间结束时,分数高的一方获胜。
五、游戏道具1. 强化道具:可以提升坦克的攻击力、防御力等属性。
2. 特殊武器道具:如导弹、激光等,具有强大的攻击效果。
3. 恢复道具:可以恢复坦克的生命值。
六、游戏界面1. 游戏主界面:包括开始游戏、选择地图、查看排行榜等功能。
2. 游戏战斗界面:显示战场地图、玩家和敌方坦克的位置、生命值、弹药数量等信息。
七、游戏音效1. 背景音乐:营造紧张激烈的战斗氛围。
2. 射击音效:增强射击的真实感。
3. 爆炸音效:让玩家更直观地感受到战斗的激烈程度。
八、游戏开发计划1. 需求分析:[具体时间]2. 设计阶段:[具体时间]3. 开发阶段:[具体时间]4. 测试阶段:[具体时间]5. 上线阶段:[具体时间]九、游戏推广计划1. 在各大游戏平台进行推广。
2. 利用社交媒体进行宣传。
3. 举办线上和线下的游戏比赛。
十、游戏盈利模式1. 内购道具。
2. 广告收入。
篇二坦克大战游戏策划书一、游戏概述游戏名称:坦克大战游戏类型:休闲对战类游戏平台:多平台(移动端、PC 端等)游戏背景:设定在一个充满战争硝烟的世界,玩家将操控坦克在各种战场上进行激烈战斗。
JAVA语言写的坦克大战详细说明书

陕西国防学院《Java语言》课程期末实训题目坦克大战学院电子信息学院专业软件技术班别软件3132班学号3531323X姓名小智2015年3月6日一、课程题目坦克大战(Java版本)实现一个java版本的坦克大战游戏【功能提示】1.游戏要有图形用户界面,界面能够反映游戏所有的细节。
2.界面中要有坦克,墙,树林,河流。
3.界面中要有一个“家”,“家”被攻击中则输了游戏。
4.坦克分两种,敌方和我方。
5.墙也分为两种,可以穿透的普通墙,不可以穿透的铁墙。
6.树和河流均只有一种,树林坦克可以通过。
7.坦克可以发射子弹,敌我方的子弹属性一样。
8.我方子弹可以杀死敌方坦克,敌方子弹也可以杀死我方坦克,但需要多枪子弹才可以杀死。
9.敌方之间不可以杀死对方。
10.子弹击中坦克要有爆炸,但击中墙不能爆炸。
11.我方可以吃血包增加生命。
12.游戏可以暂停,重新开始,游戏帮助等功能。
具体如下图:13.二、题目分析与设计需求分析1.设计一个图形用户界面,将所有游戏的元素都能在此用于界面上表现出来,界面能够接受用户的操作,具有人机交互功能。
用户可以选择重新开始游戏,退出游戏,暂停游戏和查找游戏帮助。
2.界面中包含坦克,树,河流,阻挡墙和游戏用户所要保护的“家”。
3.坦克:坦克分为两种,敌方坦克和用户控制的坦克。
用户方和敌方坦克均可以发射子弹,可以改变路径的行走,且在行走过程中遇到墙等阻碍物和游戏边界时要改变方向,而不能一直顶着障碍物不放。
坦克之间不能穿越,碰撞到后自动调换方向。
4.树:界面中要包括树林,作为遮掩物体和修饰物体,以便增加游戏的元素,使得游戏更加贴切人性化。
树的数目不限,以游戏整体界面清晰美观来决定数目。
5.河流:界面中要包括河流,河流作用与树林相同,同样河流的数目不限,以游戏界面整体美观度来决定数目。
6.墙:墙体分为两种,普通的墙和铁墙,普通的墙在受到子弹袭击时会损坏,而铁墙可以阻碍子弹的穿越。
两方的坦克均不能穿越两种墙体,但都可以摧毁普通墙体。
坦克大战游戏程序课程设计

《程序设计应用基础》课程设计计划书坦克大战游戏1引言学习了C语言程序设计之后,我们粗略的掌握了程序设计的基本思路和要求,为了更加熟练的掌握这门计算机语言,我们选择编译一个经典小游戏——坦克大战。
通过课程设计提高我们的动手能力,把理论知识运用到实践当中。
在课程设计中,C语言的语法和逻辑严谨,对于初学者而言,有时忘记一个逗号或者分号整个程序便运行不了,经过了反复的调试,修改,最终形成可执行的程序。
在这个过程中,通过不断的练习,我们对C语言的掌握程度有明显的提高,同时,也锻炼了我们的头脑,使我们的思维更加科学严谨。
2设计方案2.1设计思路坦克大战游戏,一共两关。
不同的关卡,游戏地图、敌方坦克出现的种类不一样。
敌方坦克地图上最多存在4辆,击杀后会出现新坦克直至补足4个,当击杀坦克一定数值则敌方新坦克不会再增加。
击杀完所有坦克则胜利过关。
己方坦克也有复活次数,用完则失败。
另地图正下方有己方老家,若被敌方坦克攻破则游戏失败。
3程序设计与实施3.1程序的主要模块整个程序分为里表两大部分。
里部分由41*41的int地图数组组成,每个元素代表了该以该数组元素行列下标为地图坐标y,x那个单元的情况,不同的地图障碍物在该数组有不同的值,坦克在地图上占3*3个单元,在地图数组内相应坐标的3*3个元素内也对应特殊的值。
由地图数组值可以读出该坦克信息。
表部分则是根据里部分的地图数组通过gotoxy和printf函数在命令行界面打印出相应字符以构成游戏界面的。
程序中的每个函数操作都是通过里部分(地图数组)判定,然后对里部分(地图数组)操作,再由里部改变外部,由gotoxy和printf函数将可视化界面呈现给玩家。
也就是游戏主体函数内里表部分是一起操作的,不分开。
对于函数分类,程序又可分为三大类。
一类游戏辅助函数。
一个子弹系统,一个坦克系统。
子弹和坦克分别都是独立运作的系统,有少量信息交换。
3.2 主函数及其流程图主函数包括打印地图,实现游戏内置调节游戏速度的功能,判断坦克类型,判断敌我坦克是否存活,判断游戏胜负。
坦克大战游戏策划书3篇

坦克大战游戏策划书3篇篇一坦克大战游戏策划书一、游戏名称坦克大战二、游戏类型射击、策略三、游戏平台PC 端四、游戏背景在游戏中,玩家需要控制自己的坦克,在一个充满敌人和障碍物的战场上消灭所有敌人,保护自己的基地。
五、游戏目标1. 消灭所有敌人。
2. 保护自己的基地。
3. 在规定时间内获得最高分。
六、游戏玩法1. 玩家通过键盘控制坦克的移动和射击。
2. 坦克可以向四个方向移动,包括前进、后退、向左转和向右转。
3. 坦克可以向八个方向射击,包括正前方、正左方、正右方、左前方、左后方、右前方、右后方和后方。
4. 敌人会从不同的方向出现,并向玩家的基地前进。
5. 玩家需要消灭所有敌人,才能进入下一关。
6. 如果玩家的坦克被敌人的炮弹击中,或者撞到障碍物,或者基地被敌人摧毁,游戏结束。
7. 玩家可以通过消灭敌人获得金币,金币可以用来购买道具,如增加坦克的速度、攻击力、防御力等。
8. 玩家可以通过消灭敌人获得分数,分数越高,游戏结束时的奖励越高。
七、游戏关卡1. 游戏共有十个关卡,每个关卡的难度逐渐增加。
2. 每个关卡的地图都不同,包括不同的地形、障碍物和敌人的分布。
3. 每个关卡的敌人都会有不同的特点和攻击方式,玩家需要根据敌人的特点来制定策略。
八、游戏画面1. 游戏画面采用 2D 风格,以坦克和战场为主要元素。
2. 游戏画面色彩鲜艳,对比度高,易于玩家识别和区分敌我坦克。
3. 游戏画面中会有敌人的炮弹和玩家的坦克的炮弹的特效,增加游戏的紧张感和刺激感。
九、游戏音效1. 游戏音效包括坦克的移动声、射击声、爆炸声、敌人的脚步声等。
2. 游戏音效的音量和节奏会根据游戏的不同阶段进行调整,增加游戏的氛围和节奏感。
3. 游戏音效的设计要符合游戏的主题和风格,让玩家更容易沉浸在游戏中。
十、游戏操作提示1. 在游戏开始前,会有一段操作提示,告诉玩家如何控制坦克和射击。
2. 操作提示会在游戏过程中随时出现,提醒玩家如何应对不同的情况。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1绪论 (1)1.1开发背景………………………………………………………………………1.2开发思路………………………………………………………………………1.3开发工具………………………………………………………………………2程序设计……………………………………………………………………………2.1主要设计思路……………………………………………………………………2.2思路设计实现……………………………………………………………………3程序简介………………………………………………………………………3.1程序一些类的介绍……………………………………………………………4程序运行与测试……………………………………………………………………4.1程序开始………………………………………………………………………4.2程序界面………………………………………………………………………4.3系统启动测试………………………………………………………………4.4子弹发射测试………………………………………………………………4.5玩家移动测试………………………………………………………………4.6信息发送测试………………………………………………………………5程序有关代码………………………………………………………………………5.1………………………………………………………………………5.2………………………………………………………………………5.3………………………………………………………………………6………………………………………………………………………6.1………………………………………………………………………参考文献………………………………………………………………………1绪论1.1开发背景随着信息社会的迅猛发展,人们对游戏的要求也越来越高1.2开发思路该游戏的界面使用了JA V A awt界面显示技术实现,游戏主窗口类TankClient继承了Frame类,重写了paint方法,在该方法中绘出游戏背景,各种元件和控件等。
游戏的每个组成部分都被封装为一个Java类,例如坦克对象被封装在Tank类中,该类提供了构建坦克对象方法、坦克上下左右移动方法、fire发射炮弹方法、keyReleased按键松开事件处理方法和keyPressed按键按下事件处理方法。
炮弹类Missile,提供了移动方法;坦克攻击判定,坦克中保存一个isgood成员变量,判定是否是敌人坦克,在子弹飞行轨迹中判定是否有坦克,若有则判定击毁该坦克。
1.3开发工具该坦克大战游戏是在Eclipse 集成开发环境中开发的,它目标是实现一个单机版本的人机对战游戏程序,该程序界面比较美观,操作灵活流利。
具体实现了游戏界面布局设计、坦克图片绘制、子弹绘制、坦克移动、坦克对战,障碍墙绘制等功能。
坦克游戏结束的条件是,游戏中我方坦克守护的围墙区域被敌人击破,四面围墙被攻破则判定游戏结束。
本游戏中为了增加趣味性,对坦克做了人工智能处理,即随机生成坦克的下一步移动方向,随机发射炮弹等。
另外,在游戏地图上还增加了墙壁,分为普通墙壁和金属墙壁,普通墙壁一发炮弹即可击破。
游戏地图上还绘制了河流、森林等图片,进一步模拟真实的游戏场景,使得该游戏更富有趣味性。
本游戏程序直接在eclipse开发环境中运行,建议使用jdk1.6版本,在eclipse直接右击工程名,选择run as Java Application即可正常运行程序,使用键盘上的方向键和S按键发射炮弹。
2程序设计2.1主要设计思路2.2成粗设计的实现3.1有关类的介绍TankWar类:TankWar继承Frame类。
1、paint( )方法paint( ) 方法主要实现对坦克类和子弹类,障碍物类和爆炸类等画到窗口上。
坦克类又分为MyTank和EnwmyTank 两类。
对这两类用不同的颜色画到窗口上。
画子弹时通过传递坦克的颜色画出相应的子弹颜色。
子弹画坦克死亡则不再对其进行重画。
2、update( )方法。
update( ) 方法主要是为了解决,重画频率太快,paint( ) 方法还没有完成,重画坦克时出现的闪烁现象。
通过双缓冲技术将所有东西画在虚拟图片上,一次性显示出来解决闪烁现象。
3、内部类KeyMon键盘监听KeyMon继承KeyAdapter类。
通过KeyMon类的监听,用户可以通过键盘控制自己的坦克。
4、内部类MyTankWarThreadMyTankWarThread实现Runnable接口,通过MyTankWarThread实现对坦克的重画,实现坦克的移动。
5、showFrame( )方法showFrame( )方法主要是设置一个窗口及其各种参数。
Tank类Tank类是实现Runnable接口的一个抽象类1、Tank类的主要属性有:int x; //坦克的位置int y; //int oldx; //坦克上一步的坐标int oldy; //Dir dir; // Tank方向的成员变量int speed = 5;boolean isLive = true;2、Tank类提供各种的构造方法Tank(int x, int y)Tank(int x, int y, Dir dir)Tank(int x, int y, Dir dir, TankWar tw)根据不同的需要使用不同的构造方法。
3、drawTank ()方法drawTank()方法根据坦克的类型不同可以画出不同类型的坦克和不同方向的坦克。
敌人的坦克用BLUE画出来,自己的坦克用RED颜色画出来,以区分敌我。
4、fire()方法fire()方法的功能是实现打出一颗子弹,fire()方法调用了画坦克的颜色变量c ,画出与坦克一样颜色的子弹,以区别子弹是那一方发出来的。
5、isHitWall()方法该方法是用来判断Tank是否与障碍物发生碰撞public boolean isHitWall() {Wall w = null;for (int i = 0; i < tw.walls.size(); i++) {w = tw.walls.get(i);if (w.isHits(this.getRectangle())) {return true;}}return false;}6、getRectangle()方法该方法主要是用来检测是否发生了碰撞。
public Rectangle getRectangle() {return new Rectangle(x, y, TANK_WIDTH, TANK_HEIGHT);}7、add(int count, TankWar tw)方法该方法是用来添加敌人坦克的,当敌人坦克数量减少时,而此时敌人的count 又未小于0时添加相应数量的敌人坦克来增加游戏的可玩性。
MyTank类MyTank类继承Tank类1、locDir(KeyEvent e)方法通过键盘监听,对按键进行监听来实现用户可以通过W D S A四个方向键对坦克的控制2、keyReleased(KeyEvent e)方法该方法主要是为了防止连续发子弹的问题,只有放开SPACE按键才可以发弹,这样就增加了游戏的可玩性。
3、stay()方法该方法主要实现暂停的功能,这个是本游戏代码中的一个的亮点,通过线程来实现的public void stay() {int tc = Thread.activeCount();Thread[] threads = new Thread[tc];Thread.enumerate(threads);if (tw.flag) {for (int i = 0; i < threads.length; i++) {System.out.println(tc + ":suspend " + threads[i].getName());if (threads[i].getName().matches("^Thread-.*")) {threads[i].suspend();tw.flag = false;}}} else if (! tw.flag) {for (int i = 0; i < threads.length; i++) {System.out.println(tc + ":resume " + threads[i].getName());if (threads[i].getName().matches("^Thread-.*")) {threads[i].resume();tw.flag = true;}}}}4、move()方法该方法是实现坦克的移动,如果遇到障碍物或出界,则返回上一次的位置,通过(oldX , oldY)坐标记录坦克每一次移动的位置。
public void move() {if (dir == Dir.U) {oldy = y;y = y - speed;if (isHitWall()) {y = oldy;}} else if (dir == Dir.R) {oldx = x;x = x + speed;if (isHitWall()) {x = oldx;}} else if (dir == Dir.D) {oldy = y;y = y + speed;if (isHitWall()) {y = oldy;}} else if (dir == Dir.L) {oldx = x;x = x - speed;if (isHitWall()) {x = oldx;}}//判断坦克出界if (x > TankWar.GAME_WIDTH - TANK_WIDTH - 5) {x = TankWar.GAME_WIDTH - TANK_WIDTH - 5;}if (x < 5) {x = 5;}if (y > TankWar.GAME_HEIGHT - TANK_HEIGHT - 5) {y = TankWar.GAME_HEIGHT - TANK_HEIGHT - 5;}if (y < TANK_HEIGHT) {y = TANK_HEIGHT;}}5、drawTank()方法这个方法是实现坦克自动移动,玩家可以通过方向键改版方向,移动过程中可以发射子弹。
public void drawTank(Graphics g) {super.drawTank(g);if (isStay) {move();}}EneyTank类EnemyTank类继承Tank类1、moveTrace()方法该方法实现的是敌人坦克伪智能功能,这个是本坦克大战的一个亮点。