坦克大战——坦克类

一. 团队课程设计博客链接

二.个人负责模块和任务说明

模块:坦克类(玩家坦克类+电脑坦克类),代码整合

三.代码的提交记录截图

四.负责模块和任务详细说明

玩家坦克继承VisibleImage类,电脑坦克类继承自玩家坦克类,UML如下:

1.玩家坦克类

构造方法:

设置坐标位置(坦克出生的位置),坦克的图片,坦克的类型(玩家还是电脑),面板(可将坦克放置于当前面板中),代码截图如下:

移动方向:(上下左右)

左移思路:若当前方向不是左移,则将图片更改为左移图片,并且更新方向为左。

若经过碰撞检测发现不会产生碰撞,则改变坐标,并且要判断坐标是否在边界。

其他方向同理,代码截图如下:

碰撞检测:(墙与电脑坦克)

思路:获取当前坐标周围一定范围内的矩形边框,同时获取当前面板内的所有墙体对象,将其存放于数组中。将获得的矩形范围与所有墙体互相匹配,若符合则说明会产生碰撞。注意草地例外。

坦克碰撞检测同理,注意要将自己除外,并且要查看当前坦克是否存活,代码截图如下:

获得子弹:

根据上下左右的方向判断坦克头的位置,即子弹发射的方向的预设,以保证之后子弹朝预设方向移动(子弹的移动在子弹类里)

攻击方法:获得子弹,将子弹添加至面板(因为子弹有四个方向),启动攻击冷却线程。

触碰边界方法:根据屏幕与主窗体之间的大小关系,进而判断坦克是否移动到边界。

冷却线程:

使用sleep()方法,经过休眠之后,要注意改变线程的状态,将其改为可攻击。

其余setter,getter方法则不进行详细描述。

2.电脑坦克类

构造方法:继承自父类玩家坦克类,设置好初始方向,攻击冷却时间

移动方向:在父类的基础上,改变了父类的手动产生新方向,而是随机产生新方向,并且在该方向的移动时间是设置好的,检测是否达到边界同理:

碰撞检测,攻击方法的思路都与玩家坦克类相似,不同之处在于,玩家坦克类的方向是人为改动的,而电脑坦克类的方向是随机产生的,故要重写父类的这两个方法。

攻击方法:只有4%的概率产生攻击,用随机数实现

五.课程设计感想

本次课设遇到的问题:

1. 由于本次课设是小组分工,所有组员要多进行交流,产生的问题要合力解决。

2. 在进行多关卡的设置时,我们对关卡的跳转处理不好,在游戏结束时,仍能够进入到下一关,经过排查,我们发现是因为level的值未及时调整,导致即时游戏失败,也能进入到下一关。

3. 对图片的路径产生了疑问,之后利用枚举将路径存储于字符串,方便之后的使用。

4. 在游戏时,我们发现每打死一个坦克,都会出现异常,最后发现是我们爆炸的图片没有处理好。

收获:

1. 学会了如何以团队的方式完成一个代码的整合。

2. 对Java有了更深层次的理解,对面向对象设计有了深刻的了解,Java与c语言不同,c语言是面向过程的编程,而JAVA编程思想是面向对象的编程,即要有万物皆对象的设计思想,要理解对象之间的关系,要了解一个对象有什么样的属性和什么样的方法。

java坦克大战互相碰撞_Java课程设计——坦克大战相关推荐

  1. java坦克大战总体功能设计_java课程设计——坦克大战

    ##一.团队课程设计博客链接: ##二.个人负责模块或任务说明: ###模块:GUI设计(游戏面板,登录面板,主窗体,显示关卡面板) ##三.自己的代码提交记录截图 ##四.自己负责模块或任务详细说明 ...

  2. java飞机大战流程图_JAVA课程设计-飞机大战

    JAVA课程设计-飞机大战 1.团队名称.团队成员介绍 1.1 团队名称:做个飞机哦 1.2团队成员介绍: 余俊良(组长):编写博客.游戏主界面设计与实现.英雄机与子弹类的实现.场景设计 林祥涛:游戏 ...

  3. java编写类骑士游历_java课程设计骑士游历程序的开发

    java课程设计骑士游历程序的开发 JAVA程序设计 课程设计报告 课 题: 骑士游历程序的开发 姓 名: 学 号: 同组姓名: 专业班级: 指导教师: 设计时间: 2013.06.10 评阅意见: ...

  4. java黑白棋原码_JAVA课程设计黑白棋源代码

    JAVA课程设计黑白棋源代码 JAVA课程设计黑白棋源代码|java课程设计|数据库课程设计|计算机课程设计|精品课程网站设计 import java.awt.*; import javax.swin ...

  5. Java课设对对碰_JAVA课程设计题目

    序号题目要求 1简单的计算器程序1.该程序加.减.乘.除等运算 2.界面实现 2文件加密.解密软件通过软件界面选择打开一个文本文件,使用移位密码对文件内容进行加密并保存,或者针对移位密码加密的文本文件 ...

  6. Java课设对对碰_JAVA课程设计

    word 文档 可自由复制编辑 一.课程设计目的 本课程设计的目标就是要达到理论与实际应用相结合, 提高学生组织数据及 编写大型程序的能力,并培养基本的.良好的程序设计技能以及合作能力. 设计中要求综 ...

  7. java中的纸牌游戏_JAVA课程设计纸牌游戏

    <JAVA课程设计纸牌游戏>由会员分享,可在线阅读,更多相关<JAVA课程设计纸牌游戏(16页珍藏版)>请在人人文库网上搜索. 1.一.问题分析和任务定义1.题目:纸牌游戏:编 ...

  8. java 员工类算工资_JAVA课程设计——员工工资管理(类的继承)

    JAVA课程设计--员工工资管理 import java.util.Scanner; class Employee{ private String name; privateint birthmont ...

  9. java实现聊天功能心得_Java课程设计总结 - 在线聊天室(个人)

    一.团队博客及项目地址 二.本人负责的部分 整个系统的框架设计,流程设计. MySQL数据库设计及使用. 服务端面向对象设计,代码编写. 云服务器环境搭建及使用. 黄色框为我负责的部分 三.提交记录 ...

最新文章

  1. Blender从头开始装配和动画制作低多边形风格的FPS手臂
  2. 被IP代理网站屏蔽了,真是跪了
  3. Swift3.0语言教程获取字符串编码与哈希地址
  4. yyyyMMddHHmmss转变为日期格式
  5. C++对象模型探索 / 子类的内存布局
  6. linux获取read值,read命令读取用户输入
  7. 掘金-Markdown 编辑器使用手册
  8. lodop 小票排版_lodop+art-template实现web端漂亮的小票样式打印
  9. [Java基础]自动装箱和拆箱
  10. ROS学习笔记3(创建一个ROS Package)
  11. MySQL配置大小写敏感报错_mysql表名大小写敏感 - xbuding: watch and learn! - OSCHINA - 中文开源技术交流社区...
  12. 同时支持mp4/ogg/webm/flv格式的视频播放
  13. 常用Keytool 命令
  14. 多按键多界面二维数组表驱动设计
  15. 用java编写简单的仓库管理_仓库管理系统+可视化界面java编写
  16. 微信公众号手机端无法打开,但是微信官方调试工具和电脑端可以打开
  17. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.cy.jty.mapper
  18. 使用virt-manager管理虚拟机
  19. “猫爪杯”遭国人疯抢,“大白兔冰淇淋”在美国大火
  20. 施巍松老师组20-21年工作

热门文章

  1. mysql i o瓶颈_性能瓶颈--DISK(I/O)
  2. javaweb设计简易购物车
  3. AttributeError: 'dict' object has no attribute 'iteritems'
  4. 请问面试官?一次很有意思的调查活动
  5. Java入门学习(五)——IDEA开发工具的使用
  6. 泰医计算机课需要交作业吗,大一计算机课程作业
  7. 随机变量函数的分布求法和转换思想
  8. java 可变参数方法不支持多个可变参数以及多种类型的替代方法
  9. CH4INRULZ从渗透到提权
  10. 【微信小程序】调用腾讯地图获取当前城市定位