コード例 #1
0
ファイル: DookiCape.java プロジェクト: louisccc/QRobot
  public void fireWave(boolean isFiringWave) {
    int timeSinceEnemyFired = (int) ScanLog.getLastFireOffset();
    double bulletPower = ScanLog.getLastEnemyBulletPower();

    try {
      Point2D.Double myTargetLocation = ScanLog.getLocation(timeSinceEnemyFired);
      Point2D.Double enemyFireLocation = ScanLog.getEnemyLocation(timeSinceEnemyFired);
      BotScan enemySegmentationScan = ScanLog.getEnemyScan(timeSinceEnemyFired + 1);

      Wave enemyWave =
          new Wave(
              enemySegmentationScan,
              enemyFireLocation,
              myTargetLocation,
              _robot.getTime() - timeSinceEnemyFired,
              isFiringWave ? Wave.FIRING_WAVE : Wave.NON_FIRING_WAVE,
              enemySegmentationScan.getAbsBearingRadians(),
              bulletPower,
              "Surf Wave",
              Wave.TRADITIONAL_MAX_ESCAPE_ANGLE,
              enemySegmentationScan.getHeadingRadians(),
              enemySegmentationScan.getVelocity(),
              _lastEnemyWaveOrientation,
              SURF_ORIENTATION_VELOCITY_THRESHOLD);

      _waves.add(enemyWave);

      _lastEnemyWaveOrientation = enemyWave.orientation;
    } catch (IndexOutOfBoundsException noScanDataYet) {
    }
  }