• 游戏中寻找学习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吧!

  • 相关阅读:
    使用清华源进行pip install
    BERT和ULMFIT embedding比较文本分类结果
    Ubuntu16.04更新python3.5到python3.7
    base64方式显示控件
    在使用redis做缓存后,mybatis的延迟加载失效
    springboot:redis反序列化发生类型转换错误
    eclipse :代码自动补全不生效解决办法
    微信扫码支付:问题集锦
    微信扫码支付(4):统一下单
    微信扫码支付(3):获取验签秘钥
  • 原文地址:https://www.cnblogs.com/qfchen/p/10980517.html
Copyright © 2020-2023  润新知