小小千想和您聊一聊

当前位置: 首页> 技术分享> 坦克大战系列3-坦克组成部分

坦克大战系列3-坦克组成部分

  前言

  本篇让大家更详细的了解坦克的结构。

  坦克组成部分

  Robocode中的Robot分为三部分:Body、Gun和Radar

  Body – 坦克的主体部分,枪和雷达都是装在Body上面的。Body主要是控制坦克的移动(前进、后退、左转、右转)。

  Gun – 安装在Body上面,用来发射子弹打击敌人,可以左右旋转调整炮筒的瞄准方向。

  Radar – 安装在Gun上,用来在移动中搜索敌人的位置。雷达可以左右旋转,扫描敌人。

  坦克的编写

  利用这三个部分,我们来实现以下功能:

  反复执行以下 动作

  £ 坦克前进100px

  £ 坦克后退100px

  £ 坦克右转90度

  £ 坦克左转60度

  £ 坦克炮管右转60度

  £ 雷达右转30度

£	import robocode.Robot;  
£	  
£	public class MyFirstTank extends Robot {  
£	  
£	    @Override  
£	    public void run() {  
£	        while(true){  
£	            ahead(100);  
£	            back(100);  
£	            turnRight(90);  
£	            turnLeft(60);  
£	            turnGunRight(60);  
£	            turnRadarRight(30);  
£	        }  
£	    }  
£	      
£	}  


  通过以上函数大家是不是一下子发现了很多关于Robocode内部的函数,而且这些函数是什么作用看函数名便一目了然,那么接下来,你试试能不能实现以下功能需求吧,作为咱们学习的练习呦。

  练习:

  编写一个坦克,在战场上以五角星的轨迹运行。先沿着红色AB线前进,然后沿着绿色BD前进,转向沿着蓝色DE前进,转向沿着黄色EC前进,转向沿着紫色CA前进。周而复始

  通过上面的案例及练习,我们发现了虽然没有移动炮与雷达,但是我们发现在移动车身的过程中,炮与雷达也跟着一起移动了,这显然不符合日常生活中我们所遇到的坦克,那么如何让三部分独立呢?

  同样的为了设计坦克更加灵活自如的运动,发明者当然会设定一些函数帮助咱们实现上面所说的问题。

  雷达、炮、车身三者独立

  £ 使坦克车身与炮管脱离关系

  setAdjustGunForRobotTurn(true)

  £ 使坦克雷达与炮管脱离关系

  setAdjustRadarForGunTurn(true)

  £ 使坦克车身与雷达脱离关系

  setAdjustRadarForRobotTurn(true)

  以上便是我们对于坦克组成部分的一些讲解,下一节将会对Robocode中更为复杂的参数为大家做详细的分析,敬请期待吧!

  好啦,本期内容就到这里喽,我是不会玩游戏却非得写游戏的陈老师,一起来学习JAVA吧!

  附五角星坦克实现代码:

1.	package com.qf.tank;  
2.	  
3.	import robocode.Robot;  
4.	  
5.	public class StarTank extends Robot {  
6.	  
7.	    @Override  
8.	    public void run() {  
9.	        //五角星运动轨迹  
10.	        //将坦克转向与X轴平行  
11.	        turnRight(90-getHeading());  
12.	        ahead(100);  
13.	        while(true){  
14.	            turnRight(144);  
15.	            ahead(100);  
16.	        }  
17.	    }  
18.	      
19.	} 


上一篇:HTML5工具初识之网页编辑器

下一篇:SpringBoot必须掌握的几个注解

QQ技术交流群

千锋Java开发官方①群
811099962

加入群聊