绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
坦克大战系列6-API常用函数说明2
2019-07-04 16:06:07

前言

本篇主要介绍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吧!

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Spring Boot
创建时间:2020-06-22 17:22:00
SpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • duanhao
    栈主

小栈成员

查看更多
  • ?
  • zander
  • 凉茶cooltea
戳我,来吐槽~