- 1、本文档共137页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
版本 1.4 步骤 功能 解决炮弹不消亡的问题 解决坦克出界的问题 加入控制炮弹生死的量bLive(Missle) 当炮弹已经死去就不需要对其重画 当炮弹飞出边界就死亡 当炮弹死亡就从容器中去除 TankClient 思考 如何让坦克向4个方向行走? 版本 0.8 功能 让主战坦克向8个方向行走 步骤 添加记录按键状态的布尔量 添加代表方向的量(使用枚举) 根据按键状态确定Tank方向 根据方向进行下一步的移动(move) 单独考虑坦克类 如果考虑更多的方需要涉及到Math类的运用 考虑可操控性 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;//默认应当是不动 新增坦克的成员变量 void move() {//新增方法确定移动的方向 switch(dir) { case L:……} 注意观察出现什么问题? 版本 0.9 功能 让主战坦克向8个方向行走 步骤 处理键抬起的消息 修改TankClient相关代码 在TankClient中使用Eclipse生成 public void keyReleased(KeyEvent e) { int key = e.getKeyCode(); switch(key) { case KeyEvent.VK_LEFT : bL = false; break; …………. } 键盘按下后没有修改回原属性,增加keyReleased事件 版本 1.0 添加子弹类 功能 步骤 添加Missile类 添加x,y,dir等属性以及常量 添加构造方法, draw方法等必要方法 根据不同方向,进行不同的运动 在TankClient中模拟一颗子弹 new一颗子弹出来 画出来 注意: 不一定一次写到位 进行多次试验 将步骤分解开来逐一进行调试 生成后修改 利用系统生成相关的代码,修改TankClient测试一下系统 Tank myTank = new Tank(50, 50);Missile m = new Missile(50, 50, Tank.Direction.R); ……public void paint(Graphics g) { m.draw(g); myTank.draw(g);} 炮弹是自动运行的? 版本 1.1 功能 根据主战坦克的方向和位置,打出子弹 步骤 增加对Ctrl键的按键处理 根据“坦克打出一发子弹”这句话,来确定Tank中的方法fire,其返回值为Missle 根据Tank方向和位置设定子弹的方向和位置并new出来,然后返回(fire方法的实现) 注意 掌握面向对象的思维方式来确定类应该具有的方法 分析按键事情的控制位置,在KeyMonitor中,利用代码导航功能(按着Ctrl,用鼠标点击) 增加对Ctrl键的监听功能 引入新的方法fire 炮弹是由谁控制的? 如何传递参数? 最初的炮弹是固定的,现在修改后,炮弹的最初处理中可能出现空值 代码比较长之后,使用outline定位代码位置 x,y w h 计算位置的方法 炮弹有什么问题? 版本 1.2 功能 为了解决坦克停下也能打出炮弹的问题—画出炮筒 步骤 Tank类增加新的属性ptDir 每次move后根据Tank新的方向确定炮筒的方向 将炮筒用直线的形式表现出来 x,y w h 计算画线的两个点坐标情况 还有什么问题? 版本 1.3 功能 打出多发炮弹 步骤 注意:泛型的使用 使用容器装炮弹 每当抬起Ctrl键就往容器中加入新的炮弹 逐一画出每一发炮弹 版本 0.3 x y Frame的左上角 x,y w h 功能 画出代表坦克的实心圆 考虑坦克的坐标为变量 掌握 如何重写paint方法 注意 不要改变原来的前景色 回顾 paint(Graphics g)方法,窗口重画时自动调用x轴、y轴的方向 public void paint(Graphics g) { Color c = g.getColor(); g.setColor(Color.RED); g.fillOval(50, 50, 30, 30); g.setColor(c); } 程序运行的结果 版本 0.4 让坦克运动起来 功能 步骤 将位置改变为变量 启动线程不断重画 思考 为什么使用线程重画,而不是每按下一个键进行一次重画? 线程重画更均匀,更能控制重画的速度。 按键重画不能解决子弹自动飞行的问题。 每次重画改变Tank位置 掌握:
您可能关注的文档
- 综合实践封皮.doc
- 永乐大典的流传及现存情况.pptx
- 2016年高中地理区域地理第2单元世界地理第5讲东亚-日本中亚课件方案.ppt
- 综合实践活动《民族团结一家亲》课件.ppt
- 2016年集体备课湘教版八年级上册3.3《中国的水资源》课件(共60张PPT)方案.ppt
- 2016年高考(新课标I)理综物理部分(带答案)方案.doc
- 2016年高中地理区域地理第2单元世界地理第1讲世界陆地和海洋课件方案.ppt
- 2016年高考(江苏卷)方案.doc
- 2016年高考一轮复习第一课生活在人民当家作主的国家1方案.ppt
- 2016年高考作文备考素材—“光明文艺评论”2016年1月上必威体育精装版最热时事集锦(十二)方案.doc
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
最近下载
- 2025年高考数学模拟卷(四)含答案及解析.pdf VIP
- 急性呼吸循环衰竭的早期识别与救治(共88张PPT)【88页】.pptx VIP
- 2023年河南省普通高校对口招生考试电子类专业课试卷.pdf VIP
- 院感及院感管理的基本概念.ppt VIP
- 维生素d3与骨骼健康课件.ppt
- 重点项目信息管理平台建设方案.docx
- 2025年高考数学模拟卷(三)含答案及解析.pdf VIP
- 河师大焦争鸣张万琴版线性代数答案解析.pdf VIP
- Unit4NaturalDisastersListeningandSpeaking课件高中英语人教版22.pptx
- 接受人生的荒谬是强大还是懦弱的表现?辩论赛 正方辩词一辩、二辩、三辩、四辩发言稿.docx
文档评论(0)