summaryrefslogtreecommitdiff
path: root/src/bullet.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bullet.cpp')
-rw-r--r--src/bullet.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/bullet.cpp b/src/bullet.cpp
new file mode 100644
index 0000000..69fb603
--- /dev/null
+++ b/src/bullet.cpp
@@ -0,0 +1,29 @@
+#include "bullet.h"
+#include "ship.h"
+#include <cmath>
+
+#define M_PI 3.14159265
+
+// Bullet non-default constructor
+Bullet :: Bullet( const Point &point ) : FlyingObject() , framesAlive( 0 )
+{
+ setPoint ( point );
+}
+
+// Fire Bullet
+void Bullet :: fire ( const Velocity &vel , const float angle )
+{
+ velocity.setDx ( BULLET_SPEED * ( -cos ( M_PI / 180 * angle ) ) );
+ velocity.setDy ( BULLET_SPEED * ( sin ( M_PI / 180 * angle ) ) );
+}
+
+// Advance Bullet
+void Bullet :: advance ()
+{
+ framesAlive++;
+ if ( framesAlive >= 40 )
+ {
+ kill();
+ }
+ FlyingObject :: advance();
+}