美文网首页
JAVA编程实战:坦克大战系列3-坦克组成部分

JAVA编程实战:坦克大战系列3-坦克组成部分

作者: 千锋陈老师 | 来源:发表于2019-05-14 17:33 被阅读0次

    游戏中寻找学习JAVA的乐趣之

    坦克大战系列3-坦克组成部分

    前言

    本篇让大家更详细的了解坦克的结构。

    坦克组成部分

    Robocode中的Robot分为三部分:Body、Gun和Radar

    Body – 坦克的主体部分,枪和雷达都是装在Body上面的。Body主要是控制坦克的移动(前进、后退、左转、右转)。

    Gun – 安装在Body上面,用来发射子弹打击敌人,可以左右旋转调整炮筒的瞄准方向。

    Radar – 安装在Gun上,用来在移动中搜索敌人的位置。雷达可以左右旋转,扫描敌人。

    坦克的编写

    利用这三个部分,我们来实现以下功能:

    反复执行以下 动作

    坦克前进100px

    坦克后退100px

    坦克右转90度

    坦克左转60度

    坦克炮管右转60度

    雷达右转30度

    import robocode.Robot;

    public class MyFirstTank extends Robot {

    @Override

    public void run() {

    while(true){

    ahead(100);

    back(100);

    turnRight(90);

    turnLeft(60);

    turnGunRight(60);

    turnRadarRight(30);

    }

    }

    }

    通过以上函数大家是不是一下子发现了很多关于Robocode内部的函数,而且这些函数是什么作用看函数名便一目了然,那么接下来,你试试能不能实现以下功能需求吧,作为咱们学习的练习呦。

    练习:

    编写一个坦克,在战场上以五角星的轨迹运行。先沿着红色AB线前进,然后沿着绿色BD前进,转向沿着蓝色DE前进,转向沿着黄色EC前进,转向沿着紫色CA前进。周而复始

    通过上面的案例及练习,我们发现了虽然没有移动炮与雷达,但是我们发现在移动车身的过程中,炮与雷达也跟着一起移动了,这显然不符合日常生活中我们所遇到的坦克,那么如何让三部分独立呢?

    同样的为了设计坦克更加灵活自如的运动,发明者当然会设定一些函数帮助咱们实现上面所说的问题。

    雷达、炮、车身三者独立

    使坦克车身与炮管脱离关系

    setAdjustGunForRobotTurn(true)

    使坦克雷达与炮管脱离关系

    setAdjustRadarForGunTurn(true)

    使坦克车身与雷达脱离关系setAdjustRadarForRobotTurn(true)

    以上便是我们对于坦克组成部分的一些讲解,下一节将会对Robocode中更为复杂的参数为大家做详细的分析,敬请期待吧!

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

    附五角星坦克实现代码:

    package com.qf.tank;

    import robocode.Robot;

    public class StarTank extends Robot {

    @Override

    public void run() {

    //五角星运动轨迹

    //将坦克转向与X轴平行

    turnRight(90-getHeading());

    ahead(100);

    while(true){

    turnRight(144);

    ahead(100);

    }

    }

    }

    相关文章

      网友评论

          本文标题:JAVA编程实战:坦克大战系列3-坦克组成部分

          本文链接:https://www.haomeiwen.com/subject/jmseaqtx.html