From aa5ea51e02716d32f9d8c3493d8634ab442f023f Mon Sep 17 00:00:00 2001 From: Victor Date: Sat, 15 Mar 2014 17:23:04 +0200 Subject: [PATCH] Add debug trajectory --- src/com/annimon/turrets/Turret.java | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/com/annimon/turrets/Turret.java b/src/com/annimon/turrets/Turret.java index dd00488..18f32af 100644 --- a/src/com/annimon/turrets/Turret.java +++ b/src/com/annimon/turrets/Turret.java @@ -39,6 +39,29 @@ public class Turret implements Constants { g.setColor(server ? Color.BLUE : Color.RED); g.fillArc(turretX - TURRET_WIDTH / 2, Constants.HEIGHT - turretY - TURRET_HEIGHT / 2, TURRET_WIDTH, TURRET_HEIGHT, 0, 180); + if (DEBUG_MODE) { + g.setColor(Color.RED); + double x = barrelX; + double y = barrelY; + final double speed = shotPower * (Constants.WIDTH / 80d); + final double windSpeed = 0d; + final double speedX = speed * Math.cos(barrelAngle); + final double vsin = speed * Math.sin(barrelAngle); + + boolean isOver; + double t = 0; + do { + final double speedY = vsin - GRAVITATION_ACCELERATION * t; + // The longer the missile flight, the greater the wind impact. + if (server) x += speedX + Math.sin(t) * windSpeed; + else x -= speedX + Math.sin(t) * windSpeed; + y += speedY; + t += 0.01; + + g.drawLine((int) x, Constants.HEIGHT - (int) y, (int) x, Constants.HEIGHT - (int) y); + isOver = (x < 0) || (x >= Constants.WIDTH) || (y < 0); + } while (!isOver); + } } private void calculateBarrelPosition() {