Robocode教程4——Robocode的游戏物理

摘自:http://site.douban.com/widget/notes/7736245/note/210261658/

 

Robocode/游戏物理
现在我们来了解Robocode的一些物理参数。
坐标系统:Robocode采用了笛卡尔坐标系统,也就是我们最常用的左下角为(0,0)点。这与通常的java与c++编程有所区别。

方向约定:
【绝对方向系】:Robocode中不管机器人在哪个方向都是以静态战场屏幕为参照物的绝对角度(Heading),正上方为0度角。即是向北为0,向东为90,向南为180,向西为270。
【相对方向系】:相对方向是以机器人的动态heading角度为参照物的角度差,不再以整个静态屏幕为参照了。叫它相对是因为机器人的heading是随着机器人移动而不停的在改变,heading只是个相对物体。
【Heading】:是机器人方向与屏幕正上方的角度差,方向在0到360之间。
【Bearing】:是机器人的某个部件如雷达发现的目标与方向的角度差,顺时针为正角度在-180到180之间。
        具体如下图所示:

 


 
Heading和Bearing的概念非常重要,这是一切控制的基础,必须掌握好。


时间和距离:
        Robocode的基本时间单位是“ticks”,每个robo每ticks 运动一个单位。Robocode的距离单位是像素,但是应该注意的是Robocode里面的距离distance是Double类型的数据,所以移动1.2个像素是可以实现的,另外,为了适应屏幕,Robocode里面的一个像素是要比真正的一个像素要小一些。


其他运动物理:
      前进速度:坦克最大的速度(Velocity)为8,凼数getVelocity()迒回了坦克当前
的速度。 
      加/减速度:加速度为 1 像素(pixel)/帧frame ,减速度为 2 pixel/frame。 
      参考公式: 设s为距离,Vt为终速度,Vo为初速度,t为时间,a 为加速度: 
      位秱公式 s=Vo*t+a*t*t/2 
      速度公式 Vt =Vo +a*t 
      平均速度公式 v=(Vt + Vo)/2=s/t 
      加速度公式 a=(Vt - Vo)/t 
更多物理规则见《robocode游戏规则》

原文地址:https://www.cnblogs.com/KeenLeung/p/2554150.html