Re: Importing Custom Classes

Nat Pavasant <[email protected]> Wed, 22 Jul 2015 14:38:14 +0700
Newsgroups gmane.comp.java.robocode
Message-ID <CADFJZFrj5DMsET-bb-T9nG65vvx-gyhhu-s7j=+X0u=QxW+sOg@mail.gmail.com>
In the same fashion you need to pass AdvancedRobot to your BotData class,
you also need to pass the BotData class created in the PewPew into
EnemyData class.

Whenever you use `new` to create object, the object is different from every
other one. If you want to same object, so you could share data, then pass
the object to the class.

- Nat

2015-07-22 14:34 GMT+07:00 Mike Oliver <[email protected]>:

> Ok, I did more research into properly setting up my Java files and looked
> into constructors as Johannes suggested but I'm still missing something.  I
> still cant seem to access my BotData information inside my EnemyData
> class.  I have a sneaky suspicion that its because I'm overloading my
> constructors.  Maybe that's the issue?
>
> Also I apologize for what I can assume is very newbish Java questions,
> opposed to actual Robocode stuff, its just easier to bounce ideas off you
> guys since you have likely dealt with this before.
>
> Thanks again for all your help.  Eventually I will get this =D
>
> PewPew.java
> package mo;
>
> import java.awt.Graphics2D;
> import mo.Data.*;
> import mo.Utils.*;
> import robocode.*;
>
> public class PewPew extends AdvancedRobot {
>
> BotData myBot;
> EnemyData enemy = new EnemyData();
> RadarData radar = new RadarData();
> PaintUtils paint = new PaintUtils();
>
> public void run() {
> myBot = new BotData(this);
> while (true) {
> //System.out.println("PewPew: " + myBot.getPos());
> setTurnRadarRightRadians(radar.getRadarDir() * Double.POSITIVE_INFINITY);
> scan();
> }
> }
>
> public void onScannedRobot(ScannedRobotEvent e) {
> //myBot.update();
> enemy.update(e);
> // radar.update(e);
> }
>
> public void onRobotDeath(RobotDeathEvent e) {
> enemy.update(e);
> }
>
> public void onPaint(Graphics2D g) {
> /*
> if (enemy.getPos() != null) {
> paint.drawPos(g, enemy.getPos());
> }
> */
> }
> }
>
> BotData.java
> package mo.Data;
>
> import robocode.*;
> import java.awt.geom.Point2D;
>
> public class BotData{
>
> //VARIABLES
> private AdvancedRobot myBot;
> private Point2D.Double myPos;
> private double headingRadians;
> private double radarHeadingRadians;
> private int getOthers;
>
> // CONSTRUCTORS
> public BotData() {
> }
>
> public BotData(AdvancedRobot robot) {
> myBot = robot;
> myPos = new Point2D.Double(myBot.getX(), myBot.getY());
> headingRadians = myBot.getHeadingRadians();
> radarHeadingRadians = myBot.getRadarHeadingRadians();
> getOthers = myBot.getOthers();
> }
>
> // ACCESSORS
> public Point2D.Double getPos() {
> return this.myPos;
> }
>
> public double getHeadingRadians() {
> return this.headingRadians;
> }
>
> public double getRadarHeadingRadians() {
> return this.radarHeadingRadians;
> }
>
> public int getOthers() {
> return this.getOthers;
> }
>
> // METHODS
> /*
> public void update() {
> myPos = new Point2D.Double(myBot.getX(), myBot.getY());
> headingRadians = myBot.getHeadingRadians();
> radarHeadingRadians = myBot.getRadarHeadingRadians();
> getOthers = myBot.getOthers();
> }
> */
> }
>
> EnemyData.java
> package mo.Data;
>
> import robocode.*;
> import java.awt.geom.Point2D;
> import java.util.HashMap;
> import java.util.LinkedHashMap;
> import mo.Utils.*;
>
> public class EnemyData {
>
> // VARIABLES
> BotData myBot = new BotData();
> BotUtils utils = new BotUtils();
>
> private String eName;
> private double eAbsBearing;
> private double eBearing;
> private double eDistance;
> private double eVelocity;
> private Point2D.Double ePos;
> private LinkedHashMap<String, HashMap<String, Object>> eMap = new
> LinkedHashMap<String, HashMap<String, Object>>(5, 2, true);
>
> // ACCESSORS
> public String getName() {
> return this.eName;
> }
>
> public double getAbsBearing() {
> return this.eAbsBearing;
> }
>
> public double getBearing() {
> return this.eBearing;
> }
>
> public double getVelocity() {
> return this.eVelocity;
> }
>
> public Point2D.Double getPos() {
> return this.ePos;
> }
>
> public LinkedHashMap<String, HashMap<String, Object>> getMap() {
> return this.eMap;
> }
>
> // METHODS
> public void update(ScannedRobotEvent e) {
> /*
> eName = e.getName();
> eDistance = e.getDistance();
> eVelocity = e.getVelocity();
> eBearing = e.getBearingRadians();
> eAbsBearing = myBot.getHeadingRadians() + e.getBearingRadians();
>  ePos = utils.getPos(myBot.getPos(), eAbsBearing, eDistance);
>
> // Add enemy information to Map
> eMap.put(eName, new HashMap<String, Object>());
> eMap.get(eName).put("eVelocity", eVelocity);
> eMap.get(eName).put("eAbsBearing", eAbsBearing);
> eMap.get(eName).put("eBearing", eBearing);
> eMap.get(eName).put("ePos", ePos);
> */
>  System.out.println("EnemyData: " + myBot.getPos());
>  }
>
> public void update(RobotDeathEvent e) {
> eMap.remove(e.getName());
> }
> }
>
>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "robocode" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "robocode" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.