游戏中寻找学习JAVA的乐趣之坦克大战系列4-坦克的静态参数

游戏中寻找学习JAVA的乐趣之坦克大战系列4-坦克的静态参数

前言

本篇让大家更熟悉坦克中的各项指标参数,也便于更好的去设定坦克属性

为什么要了解参数

很多人不太明白,当自己撞到墙时,为什么生命点会下降?为什么发射子弹时生命点也会下降?为什么有时候自己没有被消灭而不能发射子弹了,为什么子弹打到敌人时总不那么精确?为什么自己突然在战斗中一动不动了?其实这一切都是Robocode中存在的参数在起作用。要想真正了解 Robocode,想成为Robocode机器人的顶级玩家,我想我们必须对这些参数及其相互作用力要精确的了解,并应用到我们的战争中来。

Robocode中的各种参数

静态的参数:屏幕高宽,坦克车的高宽,绝对方 向,相对方向等等;

动态的参数:速度,加速度,炮管冷却时间,能量,损伤,子弹速度,旋转速度等等。

静态参数

战场是一个拥有坐标系的平面场地,最左下角为坐标原点(0,0),宽为X坐标,高为Y坐标,而且还拥有一个绝对方向系,正上方为0度角,向右为90度角,向下为180度角,向左为270度角。坐标和角度都能通过API来得到。如下图:

坐标系

在战争中方向和坐标是最重要两个参数了。只要清楚了这两个参数。其他的都好解决。每一个行动中的机器人在屏幕中都有它自己的位置,也即坐标。我们可分别用函数getX(),getY()得到机器人精确的位置,再辅以距离就可定位到屏幕上的任何机器人。

机器人的高、宽、姓名

我们可分别用下面函数得到:getHeight,getWidth, getName机器人本身有关的静态参数。

方向系

绝对方向:战争中每一个部件都有自己的绝对方向。我们分别用下面的函数求得:getHeading(),getHeading()返回你想处理的部件如炮管和屏幕的绝对方向,它大于等于0 ,小于< 360。 getHeadingRadians()返回以弧度表示的绝对方向,它大于等于0 ,小于 2 * PI 2PI = 360° 1 弧度 = 180°/ PI

相对方向:相对方向是战争中以任一物为参照而求得的方向。它的值可用下面的函数得到:getBearing() 也即参照物的绝对方向减去你的绝对方向的值。它小于负180,大于等于180度。 getBearingRadians()的原理同上,它大于负Math.PI,小于等于Math.PI。

下一期会为大家带来Robocode所设定的动态参数

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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值