前言
前面的篇幅大多数都在跟大家描述一些如何锁定、瞄准、进攻对方的方式,但常言道,没有防守只会任人击打,所以本篇内容将告诉大家如何更好的躲避敌人或者战场的其他因素。
高级躲墙方法
其实躲开墙壁是一件很容易的事情,只要把目标坐标值限制在场地内就可以,即:
横轴坐标值小于场地宽且大于零;
纵向坐标值小于场地高且大于零。
如果你的机器人是随机运动的话,那么你只要把随机式设成:
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
吧!
浙公网安备 33010602011771号