zoukankan      html  css  js  c++  java
  • 游戏中寻找学习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吧!

  • 相关阅读:
    ConcurrentHashMap源码分析
    HashMap源码与相关面试题
    字符串学习笔记(三)---- StringBuilder
    字符串学习笔记(二)---- StringBuffer
    Vue一些基本操作技巧
    PHP代码及命名规范
    Js返回顶部的方法
    linux下镜像网站的几种方法
    单例模式示例
    工厂模式和IOC练习
  • 原文地址:https://www.cnblogs.com/qfchen/p/10980517.html
Copyright © 2011-2022 走看看