坦克大战系列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吧!

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux+apache+mysql+php

linuxapachemysqlphp设置mysqll测试1网站注意&#xff1a;在安装或者测试的时候出现乱码的话&#xff0c;可以修改浏览器的编码一项将其改为适合的编码输入站点http://服务器地址/ecshop url会自动跳转到服务器地址/ecshop/install/index.php安装过程中会提示目录文件不可写&am…

模拟纳指stock的小例子

一个模拟纳指stock的小例子&#xff1a; #include <stdio.h> #include <stdlib.h>#define MAX_YEAR 100 #define ONE_YEAR_DAYS 240#define BEGIN_YUAN 10000 #define ONE_ADD_YUAN 4000 #define ONE_ADD_DAY 20 #define GOLD_FLOW…

android4.0.3 修改启动动画和开机声音

1. Linux 系统启动&#xff0c;出现Linux小企鹅画面(reboot)(Android 1.5及以上版本已经取消加载图片)&#xff1b;2. Android平台启动初始化&#xff0c;出现"A N D R I O D"文字字样画面&#xff1b;3. Android平台图形系统启动&#xff0c;出现含闪动的ANDROID字样…

函数式C代码

代码如下&#xff1a; #include <stdlib.h> #include <stdio.h> typedef char String[32]; typedef FILE* File;typedef struct _Employee {String name;int age;int salary;struct _Employee *next; } *Employee;typedef void (*Callback)(Employee);/* High Orde…

VMWare虚拟机NAT模式静态IP联网配置

使用静态IP&#xff0c;而不选用DHCP的主要原因是避免每次重启计算机后&#xff0c;虚拟机系统的IP发生变化&#xff0c;导致常常需要修改宿主机器远程连接虚拟机服务(例如Mysql) 环境 项目版本号VmwareVmware Workstation Pro 15UbuntuUbuntu 18.04.2 LTS关键配置 虚拟网络编辑…

ffmpeg调整缩放裁剪视频的基础知识(转)

源网址&#xff1a;ffmpeg调整缩放裁剪视频的基础知识 - yongfengnice - 博客园 1. resize and scale video 调整视频的大小和尺寸 1-1.调整视频大小(resize)是改变视频的宽度和高度。 使用-s参数实现&#xff0c;语法&#xff1a;ffmpeg -i input_file -s wxh output_fi…

学习C语言的工具

书籍&#xff1a;《C Primer Plus》 编译器&#xff1a;code::blocks 编辑器: gedit转载于:https://www.cnblogs.com/owenbeta/archive/2012/03/07/2384286.html

二手房买卖砍价最新攻略 帮你花少钱买好房

漫天要价&#xff0c;就地还钱&#xff0c;意思是说&#xff1a;讲价要狠&#xff0c;心软则败。很多刚需们忍不住要出手了&#xff0c;市场上的好房源也越来越多&#xff0c;如何淘到你我中意的房源&#xff0c;同时我们又不用多花冤枉钱?精心准备热乎出炉&#xff0c;二手房…

lastal

http://last.cbrc.jp/doc/lastal.html This program finds local alignments between query sequences, and reference sequences that have been prepared using lastdb 转载于:https://www.cnblogs.com/0820LL/p/11136767.html

伽罗华有限域的FEC

FEC算法_cloudfly_cn的博客-CSDN博客_fec算法 I 基于IP的语音和视频通话业务为了实时性&#xff0c;一般都是采用UDP进行传输&#xff0c;基站无线一般配置UM模式的RLC承载&#xff0c;因此丢包是不可避免的&#xff0c;在小区信号的边沿则丢包率会更高&#xff1b;为了通话的…

mlecms v2.2版权

inc\tools\smarty 下的Smarty.class.php文件。找到 187行左右 我们会发现原来的 $dopud $_template->libfile($dopud);已经变成了$_headers $this->listaops($_headers);我们按照之前版本的方法将其注释掉&#xff0c;刷新&#xff0c;果然没有了。到这里还不算完&#…

如何求矩阵的逆矩阵

如何求矩阵的逆矩阵 - 叮叮当当sunny - 博客园 求逆矩阵最有效的方法是初等变换法&#xff08;虽然还有别的方法&#xff09;。如果要求方阵 AA 的逆矩阵&#xff0c;标准的做法是&#xff1a; 将矩阵 AA 与单位矩阵 II 排成一个新的矩阵 (AI)(AI)将此新矩阵 (AI)(AI) 做初等…

一篇英文文档中找出频数最多的10个单词

"""一篇英文文档中找出频数最多的10个单词collections: Counter 提供计数器工具以支持方便和快速的计数 most_common(n) 返回n个最常见元素及其计数的列表&#xff0c;从最常见到最少。 如果省略nNone&#xff0c;则 most_c…

中断共享(硬件角度)

中断共享&#xff1a; 和别人讨论的时候&#xff0c;谈到了中断共享&#xff0c;下面记录下几种不同的情况&#xff1a;1、一个IP模块中只有一个中断引脚连接到中断控制器&#xff0c;该IP模块中只有一个部件可以产生中断请求&#xff1b;2、一个IP模块中只有一个中断引脚连…

web绿色环境搭建

开篇 需要的软件及他们各自的版本apache-tomcat-6.0.32(绿色版&#xff0c;能直接下载得到)java-jdk1.6.0_25/jre6(安装后制作的绿色版&#xff0c;不能直接下载得到)MyEclipse6.5(安装后制作的绿色版&#xff0c;不能直接下载得到)MySql_5.1.3(绿色版&#xff0c;直接下载得到…

Babel+vscode实现APICloud开发中兼容ES6及以上代码

本文出自APICloud官方论坛&#xff0c; 感谢论坛版主 penghuoyan 的分享。 使用APICloud开发时&#xff0c;考虑到兼容问题一直使用ES5开发&#xff0c;时间越久感觉越落后&#xff0c;整理了一个兼容ES6的开发环境&#xff0c;供大家参考。 步骤1&#xff1a; 安装Node开发环境…

sql完整性

转至&#xff1a;http://www.cnblogs.com/2007/archive/2007/08/24/868428.html更新数据库时&#xff0c;表中不能出现不符合完整性要求的记录&#xff0c;以保证为用户提供正确、有效的数据。实现该目的最直接的方法&#xff0c;是在编写数据库应用程序时&#xff0c;对每个更…

html小知识

字符文本中字符太多 一、正确&#xff1a; <a hrefShowFile.aspx?ID<%# DataBinder.Eval(Container.DataItem, "ID") %>>查看文件</a> 二、错误&#xff1a; <a href"ShowFile.aspx?ID<%# DataBinder.Eval(Container.DataItem, ID) %…

基本数据结构:树(tree)

参考博客 &#xff08;1&#xff09;基本数据结构&#xff1a;树&#xff08;tree&#xff09; - andyidea - 博客园 &#xff08;2&#xff09;《大话数据结构》 &#xff08;3&#xff09;《啊哈&#xff01;算法》 1、树的相关定义 &#xff08;1&#xff09;树&#xff1a;…

参数估计方法简介

1.参数估计和非参数估计 前面提到随机变量的分布不是很明确时&#xff0c;我们需要先对随机变量的分布进行估计。有一种情况是我们知道变量分布的模型&#xff0c;但是具体分布的参数未知&#xff0c;我们通过确定这些未知参数就可以实现对变量的估计&#xff0c;这种方式就是参…