教你玩Robocode(3) —— 坦克基础知识
来源:互联网 发布:泰拉瑞亚手机联机软件 编辑:程序博客网 时间:2024/05/01 21:38
在Robocode中,坦克分为3个部件: 身体(Body)、炮塔(Gun)、雷达(Radar)。
因此,在Robot类(还记得吗,它是任何坦克的父类)中,有对这些部件操作的方法。
要查看Robocode提供的API,可以在robocode目录下的javadoc下找到,也可以在Robocode程序的帮助菜单中找到:
对于Body来说,Robot类提供了4个方法:
ahead(double distance) //向前移动指定距离
back(double distance) //向后移动指定距离
turnLeft(double degrees) //左转指定角度
turnRight(double degrees) //右转指定角度
对于Gun来说,提供了两个旋转方法和一个开火方法:
turnGunLeft 、turnGunRight
fire(double power) //开炮,参数power指定开炮能量(0-3),关于开炮能量和其它参数的关系我们后面的文章会讨论到
对于Radar来说,提供了两个旋转方法:
turnRadarLeft、turnRadarRight.
在默认情况下,车身旋转会带动炮塔转动,炮塔转都会带动雷达转动。
在Robot类中,还提供了一些事件处理方法,下面列出最重要的一些:
onScannedRobot(ScannedRobotEvent event) //当雷达扫描到敌人的时候触发此事件
onBulletHit(BulletHitEvent event) //当你收到敌人攻击时,会触发此事件
最后要强调一点是,你往往需要在run方法中写一个死循环来重复的执行你指定的动作,在死循环前,你可以做些初始化动作,如:
setColors(Color.red,Color.blue,Color.green); //设置Body、GUn、Radar颜色
while(true) {
// Replace the next 4 lines with any behavior you would like
ahead(100);
turnGunRight(360);
back(100);
turnGunRight(360);
}
另外,还需要注意的是,Robot类中提供的所有动作方法都是阻塞式的。比方说,ahead(100)方法必须要等坦克执行完移动动作后,才会返回。
有了这些知识,你已经能做一个“笨笨的”坦克了。动手试试吧!
- 教你玩Robocode(3) —— 坦克基础知识
- 教你玩Robocode(4)——规则系统
- 教你玩Robocode(5)——调试技巧
- 教你玩Robocode(1)
- 教你玩 Robocode(2) —— 使用Eclipse开发Robot
- Robocode(坦克大战)
- 瑶瑶带你玩激光坦克(暴力)
- Robocode教程4——Robocode的游戏物理
- Robocode教程4——Robocode的游戏物理
- Robocode 机器人坦克游戏开发环境介绍
- Robocode 机器人坦克游戏开发环境介绍
- acdream oj 1105 瑶瑶带你玩激光坦克
- ACdream 1105 瑶瑶带你玩激光坦克 (dfs)
- Robocode教程3——Robo机器剖析
- Robocode教程3——Robo机器剖析
- Robocode教程2——你的第一个robo,取个好名字哦
- Robocode教程6——用eclipse来写你的机器人!
- Robocode教程2——你的第一个robo,取个好名字哦
- 搞定ARM LINUX下用ntfsprogs(ntfsmount)挂载ntfs分区
- IT人的学习方法论(全)
- C#2.0类和对象学习系列之this关键字
- 心里的礼拜一
- 软件测试技术大全
- 教你玩Robocode(3) —— 坦克基础知识
- c/c++内存操作注意
- Chrome源码剖析【一】
- cs文件如何生成exe,dll文件
- VS 2008 破解
- Chrome源码剖析【二】Chrome的进程间通信(转)
- ant教程详解--javac,java,jar,war,delete,copy,mkdir,move等指令(收藏)
- 分组+自动排序
- Jbpm4.3连接数据库配置