深圳Java培训:游戏中寻找学习JAVA的乐趣

深圳Java培训:游戏中寻找学习JAVA的乐趣
游戏中寻找学习JAVA的乐趣之坦克大战系列6-API常用函数说明2
在这里插入图片描述
前言
本篇主要介绍RobocodeAPI中的各种事件函数的说明,便于使用函数时有更清晰的思路。
子弹事件函数
onBulletHit()
当击中对方时
public void onBulletHit(BulletHitEvent event)
当你的子弹击中对方时就会调用这个方法。如果你想在子弹击中对方时作处理的话,你应当重写这个方法
例如:
public void onBulletHit(BulletHitEvent event) {
out.println("I hit " + event.getName() + “!”);
}
onBulletHitBullet()
当子弹击中子弹
public void onBulletHitBullet(BulletHitBulletEvent event)
当你的子弹击中别人的子弹时这个方法会被调用。如果你想在此时作一些处理,你应当重写这个方法。
例如:
public void onBulletHitBullet(BulletHitBulletEvent event) {
out.println("I hit a bullet fired by " + event.getBullet().getName() + “!”);
}

onBulletMissed
当子弹未打中对方时调用
也就是说,此时你的子弹打到墙了。如果你想在此时做一些处理,你应当重写这个方法。
例如:
public void onBulletHit(BulletMissedEvent event) {
out.println(“Drat, I missed.”);
}

onHitByBullet
当自身被子弹打中时
当你的机器人被子弹击中时这个方法会被调用。如果你想在此时做一些处理,你应当重写这个方法。
例如:
public void onHitByBullet(HitByBulletEvent event) {
out.println(event.getRobotName() + " hit me!");
}
其他事件函数
onHitRobot
当你的机器人撞到别的机器人时,这个方法就会被调用。如果你想在此时做一些处理,你应当重写这个方法
例如:
public void onHitRobot(HitRobotEvent event) {
if (event.getBearing() > -90 && event.getBearing() <= 90) {
back(100);
} else {
ahead(100);
}
}
或者更高级一些:
public void onHitRobot(HitRobotEvent event) {
if (event.getBearing() > -90 && event.getBearing() <= 90) {
setBack(100);
} else {
setAhead(100);
}
}

onHitWall
当你的机器人撞到墙时这个事件会发生。如果你想在些时做一些处理,你应当重写这个方法。
在顶上的墙是0度,在右边的是90度,在左边的是270度,。当是这个事件也和你的面向有关,所以:turnRight (event.getBearing())调用会让你的机器人向墙垂直走
例如:
public void onHitWall(HitWallEvent event) {
out.println(“Ouch, I hit a wall bearing " + event.getBearing() + " degrees.”);
}

onScannedRobot
当你的机器人发现了其它机器人时这个方法会被调用,也就是此时你的雷达扫描到了其它的机器人。如果你想在些时做一些处理,你应当重写这个方法。
注意:几乎所有机器人都应当重写这个方法!
当有机器人进入你的雷达的范围时这个方法会被自动调用
例如:
public void onScannedRobot(ScannedRobotEvent event) {

  if (event.getDistance() < 100) {  
      fire(3);  
  } else {  
      fire(1);  
  }  

}
提示:
如果枪和雷达是对齐的(并且上一时刻也是对齐的),并且这个事件是同时发生的,并且在你调用fire() 之前没有做其它任何动作,fire()会直接向那个机器人开火。
本质上说,这意味着如你扫描到了一个机器人,并且它不动,那么就会击中它。
高级机器人不会以这个方式被帮助,它们想去检查这个事件看fire()能否击中。(也就是说,你在旋转你的枪,但当你得到这个事件的消息时,你的枪与机器人偏离了5度)。
至于战术策略如何写就看程序员了

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值