Menu

Problem when using onStatus(StatusEvent e)

Help
maga tam
2008-12-06
2012-09-15
  • maga tam

    maga tam - 2008-12-06

    I want to record the status during the battle, I have overridden this method like this.

    public void onStatus(StatusEvent e){
        if(e == null || e.getStatus() == null){
            return;
        }else{
            out.println("Not null");
    
            distanceRemaining.add(e.getStatus().getDistanceRemaining());
    
            energy.add(e.getStatus().getEnergy());
            gunHeading.add(e.getStatus().getGunHeading());
            gunHeadingRadians.add(e.getStatus().getGunHeadingRadians());
            gunHeat.add(e.getStatus().getGunHeat());
            gunTurnRemaining.add(e.getStatus().getGunTurnRemaining());
            gunTurnRemainingRadians.add(e.getStatus().getGunTurnRemainingRadians());
            heading.add(e.getStatus().getHeading());
            headingRadians.add(e.getStatus().getHeadingRadians());
            numRounds.add((double) e.getStatus().getNumRounds());
            others.add((double) e.getStatus().getOthers());
            radarHeading.add(e.getStatus().getRadarHeading());
            radarHeadingRadians.add(e.getStatus().getRadarHeadingRadians());
            radarTurnRemaining.add(e.getStatus().getRadarTurnRemaining());
            radarTurnRemainingRadians .add(e.getStatus().getRadarTurnRemainingRadians());
            time.add((double) e.getStatus().getTime());
            turnRemaining.add(e.getStatus().getTurnRemaining());
            turnRemainingRadians.add(e.getStatus().getTurnRemainingRadians());
            velocity.add(e.getStatus().getVelocity());
            coordX.add(e.getStatus().getX());
            coordY.add(e.getStatus().getY());
            event.add(currentEvent);
            gunCoolingRate.add(getGunCoolingRate());
            height.add(getHeight());
            getWidth();
        }
    }
    

    Exception exists, why? Does it mean the StatusEvent hasn't been initialize?

    SYSTEM: Exception occurred on robocode.StatusEvent
    java.lang.NullPointerException
    at margaret.Killer.onStatus(Killer.java:258)
    at robocode.StatusEvent.dispatch(Unknown Source)
    at robocode.Event$EventHiddenHelper.dispatch(Unknown Source)
    at robocode.peer.robot.RobotClassManager.dispatch(Unknown Source)
    at robocode.peer.robot.EventManager.dispatch(Unknown Source)
    at robocode.peer.robot.EventManager.processEvents(Unknown Source)
    at robocode.peer.proxies.HostingRobotProxy.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

     
    • Pavel Šavara

      Pavel Šavara - 2008-12-06

      I modified your version, because it uses some variables local to robot.
      And it is just running fine.
      That means it is your variables what is throwing ...

      Please use our time wisely, we are busy ;-)


      public void onStatus(StatusEvent e) {
          out.println("Not null");
      
          out.println(e.getStatus().getDistanceRemaining());
      
          out.println(e.getStatus().getEnergy());
          out.println(e.getStatus().getGunHeading());
          out.println(e.getStatus().getGunHeadingRadians());
          out.println(e.getStatus().getGunHeat());
          out.println(e.getStatus().getGunTurnRemaining());
          out.println(e.getStatus().getGunTurnRemainingRadians());
          out.println(e.getStatus().getHeading());
          out.println(e.getStatus().getHeadingRadians());
          out.println((double) e.getStatus().getNumRounds());
          out.println((double) e.getStatus().getOthers());
          out.println(e.getStatus().getRadarHeading());
          out.println(e.getStatus().getRadarHeadingRadians());
          out.println(e.getStatus().getRadarTurnRemaining());
          out.println(e.getStatus().getRadarTurnRemainingRadians());
          out.println((double) e.getStatus().getTime());
          out.println(e.getStatus().getTurnRemaining());
          out.println(e.getStatus().getTurnRemainingRadians());
          out.println(e.getStatus().getVelocity());
          out.println(e.getStatus().getX());
          out.println(e.getStatus().getY());
          out.println(e);
          out.println(getGunCoolingRate());
          out.println(getHeight());
          out.println(getWidth());
      }
      
       

Log in to post a comment.