From baad611540946eac1420f27d2edc87a7e225e9e1 Mon Sep 17 00:00:00 2001 From: Nick Gasson Date: Sat, 17 Jan 2009 16:17:43 +0000 Subject: [PATCH] Improve missile firing code --- src/Missile.cpp | 11 ++++++++++- src/Missile.hpp | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Missile.cpp b/src/Missile.cpp index f43d64e..b680447 100644 --- a/src/Missile.cpp +++ b/src/Missile.cpp @@ -26,6 +26,8 @@ Image* Missile::image = NULL; const double Missile::ACCEL(0.1); +const int Missile::HORIZ_FIRE_RANGE(600); +const int Missile::VERT_FIRE_RANGE(50); Missile::Missile(ObjectGrid* o, Viewport* v, Side s) : viewport(v), objgrid(o), speed(0.0), state(FIXED) @@ -77,7 +79,14 @@ void Missile::Move(const Ship& ship) void Missile::MoveFixed(const Ship& ship) { - if (ship.GetY() > dy) + // Decide whether to fire or not + int missileMidX = dx + image->GetWidth()/2; + int missileMidY = dy + image->GetHeight()/2; + + int xDistance = abs(static_cast(ship.GetX()) - missileMidX); + int yDistance = abs(static_cast(ship.GetY()) - missileMidY); + + if (xDistance <= HORIZ_FIRE_RANGE && yDistance <= VERT_FIRE_RANGE) state = FLYING; } diff --git a/src/Missile.hpp b/src/Missile.hpp index 4f37c47..870e992 100644 --- a/src/Missile.hpp +++ b/src/Missile.hpp @@ -46,6 +46,7 @@ private: static Image* image; static const double ACCEL; + static const int HORIZ_FIRE_RANGE, VERT_FIRE_RANGE; }; #endif -- 2.39.2