后期遇到问题以及解答.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
后期遇到问题以及解答

后期遇到问题以及解答 分类: 项目开发流程详解 2008-10-06 14:47 373人阅读 评论(0) 收藏 举报 1. 建立一个无返回值的lauchFrame()方法来完成画框架 框架 800*600 颜色 lightGray 浅灰色 不可以改变大小 初始化显示位置 调用Component里面的setLocation(x,y); 2. 通过paint(Graphics g)来画出圆。 调用g.fillOvar(x,x,width,height); 3. 通过双缓冲技术来实现坦克画面动起来不流畅的感觉 坦克动起来,采用线程技术(线程用内部类表示),每间隔50MS重画一次画面, 重画 采用repaint(); 调用update(Graphics g) 1. 画一个800,600的iamge 2. 在图片上面画一个跟主窗体一样大方形 3. 调用paint(Graphics g)来画坦克(也就是圆) 注意: 在IMAGE上面画方块的时候一定要和主体窗口一样大,要不回出现画一长条粗线的状况。 技巧: 把所有数字都用变量代替,修改起来方便 4. 定义接收键盘的内部类 KeyMonitor extends KeyAdapter 5. 定义坦克自己的类,并且定义自己接收键盘按下事件。 6. 如何让坦克朝八个方向走 1. 把每一个按下事件用一个BOOLEAN值记录下来,当按下是就把值设置为TRUE,否则FALSE; 2. 在定义一个枚举enum设置八个值记录下八个方向,再用switch来确定该往那里走。 3. 利用switch来确定enum中的哪个方向, 当按下的时候把值设置为true当键盘弹起是把值设为false; 7. 画出子弹,运用面向对象思维,定义一个子弹类, 通过坦克的方向来确定子弹的方向,定义一个move方法来接收移动参数。 定义一个容器保存子弹,按下CTRL时加入子弹,当子弹出界的时候就在容器里面移除删除。 8. 坦克被打中时消失。 给子弹和坦克定义一个Rectangle返回值的方法, 在子弹类里面检测两个方法是否有接触。 当接触了后就把坏坦克从坏坦克容器里面移除。 在坦克里面定义一个boolean值代表坦克是否活着,当坦克活着的时候值为true;当坦克死了之后值为false; 注意: 机器坦克在Rectangle返回值的方法里传入的是机器坦克容器, 主战坦克在Rectangle返回值的方法里传入的是主战坦克引用 9. 坦克死掉后子弹也死亡。 为子弹设置一个boolean值代表子弹的死活,当子弹活着时为true;子弹死了后值为false; 10. 坦克死掉后有爆炸产生,定义一个爆炸类在类。 难点, 爆炸需要在子弹与坦克相撞的地方发生, 在tankClient里面定义一个装爆炸的容器,采用ArrayList 和 LinkedList在这里的效果差不多。 在子弹类里面的getRect()方法里面调用爆炸类容器没相交一次就往里加一个爆炸,接着在tankClient里面画出来。位置就是坦克和子弹相交的地方。 11. 坦克 和子弹 不能跑出屏幕 当子弹跑出屏幕的时候让它消亡 当坦克跑出屏幕的时候要它呆在屏幕边缘不给出去, 坦克具体做法, 当坦克小于边缘坐标时让坦克等于边缘坐标,当坦克大于边缘坐标时,让它等于边缘坐标。 12. 机器坦克发射也发射子弹,并且子弹不会伤到自己方。 在创建子弹时指定好坏蛋,在子弹构造方法里面加入, 当坏子弹碰到坏坦克时在子弹里面的hitTanks(ListTank tank)里面加入一个判断,判断是否是友方发出的如果是,就不死亡,反之。 13。 出现问题 注意: 1.当坦克死亡之后,坦克还可以发射子弹。 在坦克里面的fire方法中加入 当坦克死亡时返回null,而不是继续往里加子弹 2. 当坦克死亡后,机器坦克打坦克死亡的地方时,还是会出现爆炸,这是由于在Missile类里面没有判断主战坦克死了以后该怎么处理,在判断语句里面加上一句当坦克死亡的时候不能产生爆炸。 14. 给当前游戏添加一堵不可穿越的墙壁, 墙也是一个对象,把墙单独设置成为一个类。 在墙里面也设置一个碰撞类, 在坦克类里面调用, 用两个变量记录前一个X,Y的值,当坦克碰到墙壁时,把坦克的X,Y值赋值为前一个X,Y的值。 随机生成墙壁:在墙壁里面建立一个方法,方法里面定

文档评论(0)

sy78219 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档