坦克大战游戏总结.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文档。上传文档
查看更多
坦克大战游戏总结

坦克大战游戏总结 一.如何实现坦克遇到一堵墙时坦克不能继续向前,且子弹遇到墙时不能打穿墙 实现步骤如下: 1.新建一个Wall类 (1)Wall中有坐标x,y(成员变量), (2)静态常量长和宽WIDTH,HEIGHT(画出外界矩形的长和宽) (3)获得外界矩形的方法getRec()(用于在子弹,坦克和墙相撞也就是他们的外界矩形相交) (4)定义一个画出wall的方法piant()(主要是在窗体类中利用wall类的对象调用paint方法就将wall画如窗体中去了) 2.在子弹类中添加撞墙的方法hitWall(Wall wall) (1)具体方法如下: public void hitWall(Wall wall){ if(this.getRec().intersects(wall.getRect())this.isLive()){ //设置子弹为死了 this.setFlag(true); } } 在定义该方法之前首先应该先在子弹类中定义获得子弹的外接矩形的方法具体方法如下: public Rectangle getRec(){ return new Rectangle(x,y,WIDTH,HEIGHT);//其中x,y为子弹的坐标 } 子弹撞墙的方法中主要是利用了矩形类中的intersects方法(该方法主要是判断矩形是否相交,如果矩形相交则将子弹的生死状态设置为死,即当子弹撞墙时,子弹消失 3.在坦克类中添加撞墙的方法hitWall(Wall wall) (1)具体方法如下: public void hitWall(Wall wall){ if(this.getRec().intersects(wall.getRect())this.isLive()){ x=ox; y=oy; } }//其中的ox,oy用于保存坦克上一步的坐标 首先应该定义两个变量用于保存坦克上一步的坐标,在move方法首先将坦克的坐标保存在ox,oy中,当坦克和墙相撞即坦克的外接矩形墙的外界矩形相交,则将坦克的坐标设置为上一次设置的坐标 (2)在添加撞墙方法之前首先应该添加一个获得坦克的外界矩形的方法public Rectangle getRec() 4.在窗体类新建Wall类的对象作为窗体类的成员变量,并在窗体类的paint方法中利用Wall的对象来调用paint方法来将墙画入到窗体中去,再窗体类的paint方法中调用子弹对象的paint方法处调用子弹撞墙的方法hitWall(Wall wall),和在调用坦克对象的paint方法处调用坦克撞墙的方法hitWall(Wall wall) 二.如何制作坦克不能互相穿越 (1)在坦克类中定义一个坦克装坦克的方法hitTank(Tank tank)具体方法如下: public boolean hitTank(Tank tank){ //当两辆坦克相撞时,就将坦克的坐标设置为上一步的坐标,必须保证两辆坦克是活的,且坦克不能使本身相撞 if(this.getRec().intersects(tank.getRec())this.livetank.livethis!=tank){ this.x=ox; this.y=oy; return true; } return false; } //定义装多辆坦克的方法 public boolean hitTanks(ListTank etankList){ for(int i=0;ietankList.size();i++){ //用当前坦克去撞坦克集合中的坦克 this.hitTank(etankList.get(i)); } return false; } (2)在窗体类中的paint方法中的话坦克方法中调用坦克装坦克的方法,在我方坦克调用如下:tank.hitTanks(etankList);在敌方坦克调用如下: etankList.get(i).hitTank(tank);(敌方坦克撞我方坦克)etankList.get(i).hitTanks(etankList);(敌方坦克撞敌方坦克) 三.如何制作敌方坦克的子弹打中敌方坦克,敌方坦克不消失,打中我方坦克我方坦克消失,我方坦克打中敌方坦克敌方坦克,敌方坦克消失 (1)在子弹类中定义一个打中

文档评论(0)

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

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

1亿VIP精品文档

相关文档