前言

 

前面的篇幅大多数都在跟大家描述一些如何锁定、瞄准、进攻对方的方式,但常言道,没有防守只会任人击打,所以本篇内容将告诉大家如何更好的躲避敌人或者战场的其他因素。

 

高级躲墙方法

 

其实躲开墙壁是一件很容易的事情,只要把目标坐标值限制在场地内就可以,即:

 

 

横轴坐标值小于场地宽且大于零;

 

 

纵向坐标值小于场地高且大于零。

 

 

如果你的机器人是随机运动的话,那么你只要把随机式设成:

 

1. nextX = Math.random() * ( getBattleFieldWidth() - 100 ) + 50 ;

2. nextY = Math.random() * ( getBattleFieldHeight() - 100 ) + 50 ;

 

 

或者:

 

1. nextX = Math.random() * ( getBattleFieldWidth() - 50 ) ;

2. nextY = Math.random() * ( getBattleFieldHeight() - 50 ) ;

3. if( nextX < 50 ){

4. nextX += 50;

5. }

6. if(nextY < 50){

7. nextY += 50;

8. }

高级躲避子弹方法

 

由于机器人只能知道其它机器人的距离、方位、方向、速度和能量等级,但子弹是不能被扫描到的,所以子弹的躲避只能靠取得对方能量的减少量来获知。当对方的能量下降范围在(

0.1~3

)的时候,我们就认为它发射了子弹,那么就采取行动(比如改变方向,改变路线等),从而达到躲开子弹的目的。当它再发现我的运动规律而发炮时我又改变行动,这样不断反复。

 

 

具体实现如下:

 

1. double changeInEnergy = previousEnergy-e.getEnergy();

2. if (changeInEnergy>0 && changeInEnergy<=3) {

3. movementDirection = -movementDirection; setAhead((e.getDistance()/4+25)*movementDirection);

4. }

 

其他要注意的就是:

 

1.

怎样保存敌方机器人的信息

 

2.

子弹的能量的控制(

bulletpower

 

3.

离敌人的远近控制(

getDistance

 

4.

撞到其他机器人的时候该怎么做

 

5.

被子弹击中又要怎么做等

 

 

这些当中,最好用的是

Math.random(),

最可怕的也是
Math.random()!

 

 

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

JAVA

吧!