/******************************************************************************* * Copyright (c) 2001, 2010 Mathew A. Nelson and Robocode contributors * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://robocode.sourceforge.net/license/epl-v10.html * * Contributors: * Mathew A. Nelson * - Initial implementation * Flemming N. Larsen * - Maintainance *******************************************************************************/ package sampleteam; import robocode.Droid; import robocode.MessageEvent; import robocode.TeamRobot; import static robocode.util.Utils.normalRelativeAngleDegrees; /** * SimpleDroid - a sample robot by Mathew Nelson, and maintained by Flemming N. Larsen * <p/> * Follows orders of team leader */ public class MyFirstDroid extends TeamRobot implements Droid { /** * run: Droid's default behavior */ public void run() { out.println("MyFirstDroid ready."); } /** * onMessageReceived: What to do when our leader sends a message */ public void onMessageReceived(MessageEvent e) { // Fire at a point if (e.getMessage() instanceof Point) { Point p = (Point) e.getMessage(); // Calculate x and y to target double dx = p.getX() - this.getX(); double dy = p.getY() - this.getY(); // Calculate angle to target double theta = Math.toDegrees(Math.atan2(dx, dy)); // Turn gun to target turnGunRight(normalRelativeAngleDegrees(theta - getGunHeading())); // Fire hard! fire(3); } // Set our colors else if (e.getMessage() instanceof RobotColors) { RobotColors c = (RobotColors) e.getMessage(); setBodyColor(c.bodyColor); setGunColor(c.gunColor); setRadarColor(c.radarColor); setScanColor(c.scanColor); setBulletColor(c.bulletColor); } } }