前言

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

转载于:https://www.cnblogs.com/qfchen/p/11133031.html

坦克大战系列6-API常用函数说明2相关推荐

  1. MFC与坦克大战系列(奇迹冬瓜)---chapter2(photoshop与TransparentBlt---快速生成背景与透明位图处理)

    今天继续MFC与坦克大战系列.做程序是要有团队合作.毕竟大多数程序员不可能做到美工和程序都精通.但是只有一个人的时候.就需要快捷的生成比较看的过去的图片供游戏所需.就拿坦克大战这个游戏程序来说.刚开始 ...

  2. eclipse 导入项目_JAVA编程实战:坦克大战系列2-坦克如何在eclipse中编写

    游戏中寻找学习JAVA的乐趣之 坦克大战系列2-坦克如何在Eclipse中编写 前言 本篇主要对Robocode在eclipse中如何配置并编写. Eclipse中的配置 通过本身自带的编辑器去写代码 ...

  3. VC API常用函数简单例子大全(1-89)

    第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄 函数的定义:HWND WINAPI FindWindow(LPCSTR lpClassName ,LPCST ...

  4. VC API常用函数简单例子大全

    VC API常用函数简单例子大全 http://hi.baidu.com/tag/vc%20api%E5%87%BD%E6%95%B0/feeds 系统API查询 http://www.vbgood. ...

  5. VC API常用函数

    第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄, 这个函数的定义是这样的 HWND WINAPI FindWindow(LPCSTR lpClassName ...

  6. 坦克大战系列二:从零编写【坦克大战】

    目录 1. 我方坦克发射单颗子弹 2.敌方坦克发射子弹 3. 击中敌方坦克 4. 爆炸效果 5. 敌方坦克自由移动 6.移动范围问题 7. 我方坦克发射多颗子弹 8. 敌方发射的子弹消亡后可以再发射子 ...

  7. 坦克大战系列一:从零编写【坦克大战】

    目录 1. java绘图技术 1.1 画坦克 1.2 画乌龟 2. 移动图形 2.1 移动小球 2.2 移动坦克 2.3 Java事件处理机制 欢迎来到坦克大战 1. java绘图技术 JFrame: ...

  8. Appium——api常用函数

    appium常用函数介绍: 获取页面信息: 1. def get_current_activity(cls, driver): ''' 获取当前页面的activity :param driver: : ...

  9. 坦克大战代码_坦克大战系列文章-坦克大战简介

    前言 本篇主要对坦克大战Robocode做一个简单的介绍,对java最初的人工智能算法演练工具做一个了解 坦克大战简介 今天我们要谈的是java 最初的基于人工智能算法的仿真模拟坦克大战,全称Robo ...

最新文章

  1. c语言注释seg fault,segmentation fault求解
  2. net-tools和ifconfig
  3. Jsoup设置属性值
  4. 数字电路中的建立时间与保持时间
  5. 超详细反编译python打包的exe
  6. 基于springboot的疫情社区管理系统
  7. TIFF文件读取总结
  8. 485 九针头_RS232 RS422 RS-485 标准9针串口引脚定义
  9. Win10系统邮件添加QQ邮件账户
  10. 基于NB-IoT物联网人体红外防盗报警检测
  11. 教你一眼认出英语单词的意思
  12. 如何用python计算年龄_用Python写一个能算出自己年龄的小程序
  13. STM32F7上移植NES游戏
  14. 【干货】今日头条的新闻推荐算法原理
  15. 2022登高架设考试题及模拟考试
  16. SCSI/iSCSI及SAS、NAS、SAN的基本介绍
  17. JavaScript点击按钮开关灯案例
  18. LVGL---滚轮(lv_roller)
  19. Alien Skin Exposure X3 3.0.5.157 简体中文完美汉化版最新版下载
  20. 微信小程序 - 屏幕亮度调节

热门文章

  1. json返回值为null显示key值的设置
  2. Mysql 学习笔记2
  3. 表单元素对齐问题解决方案
  4. 迭代之嵌套的for循环
  5. 笔试面试收获(持续更新中)
  6. 从拿到班车手册.xls到搜索附近班车地点
  7. linux最基础的几个指令
  8. [C++]MySQL数据库操作实例
  9. 个人收集一些程序员面试题目(一) 一起分享
  10. [Error]SyntaxError: unindent does not match any outer indentation level