坦克大战系列6-API常用函数说明1

前言

本篇主要介绍RobocodeAPI中的各种常见函数的说明,便于使用函数时有更清晰的思路。

运动函数

ahead 前进

public void ahead(double distance)

马上将你的机器人向前移动以 distance 指定的多少个像素

函数特点:

这个函数会马上执行,并且直到完成了任务才返回,比如,当距离已前进完时。

当机器人撞到墙时,动作也是完成了,意味着此时机器人将不再向前进。当你的机器人撞到其它的机器人时,如果你是头部撞到其它的机器人时动作也就完成。记住正数和负数都可以作为距离的值,当距离为负值时表示机器人向后退距离的绝对值个像素。

比如:

向前移动100像素,ahead(100)

向后移动50个像素,ahead(-50)

 

back 后退

效果及作用刚好和ahead相反,

参数获取函数

getBattleFieldWidth()和getBattleFieldHeight()

获取战场高度和宽度函数

返回值为以像素为单位表示的当前战场的宽度

getHeading()

获取自身方向函数

返回机器人面对的方向,用角度表示。返回值的范围是 0到 360之间(不含360)。

在机器人软件中的坐标系就像一个罗盘,0表示正北,90表示正东,180表示正南,270表示正西。

getGunHeading()和getRadarHeading()

获取坦克枪管和雷达的方向,原理等同于getHeading()

getWidth()和getHeight()

返回机器人自己的宽度和高度,单位为像素。

getName()

获取机器人名称

getX()和getY()

获取机器人横纵坐标。

(0,0)坐标在战场的左下角。(向右为X正向,向上为Y正向)

转向函数

turnLeft和turnRight()

public void turnLeft(double degrees)

public void turnRight(double degrees)

马上将机器人向左(右)转以 degrees 指写的度数,这个指令马上被调用,直到做完才会返回。比如,当角度已经转完时就会返回,正数和负数都可以作为参数,是负数意味着会向相反方向转,转动角度的大小是一样的

turnGunLeft(),turnGunRight(),turnRadarLeft(),turnRadarRight()

向左或者向右转动枪管或雷达,原理同turnLeft(),turnRight().

开火函数

fire

public void fire(double power)

power是开火时的能量,也即子弹的能量

指定的子弹力量会从你的机器人的能量里带走。因此,你设定的的子弹的能量越大,发射时会从你的机器人里带走的能量也越多.

当子弹击中其它机器人时,会使那个机器人的能量损害(4*power)。如果设定的能量值大于1,还会使对方增加 2*(power-1)的损害。当你的机器人击中其它机器人时,你会获得(3*power)的收益。你可以调用Rules.getBulletDamage(double)来知道一个指定的子弹能量能造成对方多大的损害.

请注意,当枪太热了的时候它就不能射击,意味此时getGunHeat()返回值大于0。

当子弹击中一个机器人,墙,或者另一粒子弹时,分别会产生BulletHitEvent事件,BulletMissedEvent事件,BulletHitBulletEvent事件。

下一篇将对事件函数做相应的讲解,欢迎来扰。

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

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

游戏分里外两个部分组成,里部分(用户不可见) 通过里部分执行判断,地图数组更改,和各种值的改变。更改完里部分再根据相应变化更改表部分。(用户可视部分)表部分的打印通过gotoxy去到相应坐标再printf打印出字符,通过文本函数改变文字字体颜色与文字背景颜色与字符组合实现图形界面。 程序通过 计数器+循环判断 的思想,类似单核cpu的多线程实现(单线程在不同程序/函数间来回执行)省去了多线程。(具体过程在功能设计与描述有详细描述) 另AI实现与加强依赖于rand随机函数的运用,进一步强化AI,增加游戏乐趣 功能方面,游戏参考于80年代任天堂红白机(FC/FamilyComputer)上的游戏坦克大战(Battle City),包括地图,游戏模式等等(当时的游戏直接烧在电路板上)。所以游戏平衡方面已经有了很好的参考,无需再花大量时间测试平衡性。 但诸如地图中的树林元素,随机道具等没有实现。但较之原版,该游戏由C/C++编写PC运行,由字符界面实现游戏画面。原版一辆坦克的子弹未消失之前不能发射第二颗。导致子弹打击远处CD长,近处CD短。该游戏每个子弹都有相同CD,子弹未消失只要CD达到即可发射第二颗,第三颗…增加了真实性,相较于原版是个改进。且考虑到PC性能不一内置了游戏速度调整。玩家可根据PC性能调整至合适的速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值