Version of Robotron arcade game using LPC1768, a Gameduino shield, a serial EEPROM (for high scores), two microswitch joysticks and two buttons plus a box to put it in. 20 levels of mayhem.

Dependencies:   25LCxxx_SPI CommonTypes Gameduino mbed

Revision:
10:bfa1c307c99d
Child:
11:2ddaf46e95cb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/EnemyFactory.cpp	Sun Jun 09 19:34:56 2013 +0000
@@ -0,0 +1,96 @@
+/*
+ * SOURCE FILE : EnemyFactory.cpp
+ *
+ * Definition of class EnemyFactory.
+ *
+ */
+
+#include "EnemyFactory.h"
+
+// Define this for debugging messages.
+#define CHATTY
+
+#ifdef CHATTY
+    #include "mbed.h"
+    extern Serial pc;
+#endif
+
+// An instance of this class.
+EnemyFactory EnemyFactory::Instance;
+
+/***************/
+/* CONSTRUCTOR */
+/***************/
+EnemyFactory::EnemyFactory() :
+    enemyCount( 0UL )
+{
+}
+
+/**************/
+/* DESTRUCTOR */
+/**************/
+EnemyFactory::~EnemyFactory()
+{
+}
+
+/*****************/
+/* MAKE AN ENEMY */
+/*****************/
+// Pass enemy type in et.
+// Returns a newly created object or NULL on failure.
+EnemyObject* EnemyFactory::MakeEnemy( EnemyType et ) {
+    EnemyObject *enemy;
+    switch( et ) {
+    
+    case Grunt :
+        enemy = new GruntObject();
+        break;
+        
+    case BlueMeany :
+        enemy = new BlueMeanyObject();
+        break;
+        
+    case Crusher :
+        enemy = new CrusherObject();
+        break;
+        
+    case Brain :
+        enemy = new BrainObject();
+        break;
+
+    case BrainBullet :
+        enemy = new BrainBulletObject();
+        break;
+                
+    case Mutant :
+        enemy = new MutantObject();
+        break;
+        
+    default :
+        enemy = (EnemyObject*)NULL;
+        break;
+        
+    }
+    
+    if( enemy != (EnemyObject*)NULL ) {
+        enemyCount++;
+        #ifdef CHATTY
+            pc.printf( "Enemy type %d created. %lu enemies exist.\r\n", (int)enemy->GetEnemyType(), enemyCount );
+        #endif
+    }
+    
+    return enemy;
+}
+
+/*******************/
+/* DELETE AN ENEMY */
+/*******************/
+// Pass pointer to enemy to delete.
+// ONLY USE THIS ON OBJECTS CREATED USING MakeEnemy method.
+void EnemyFactory::DeleteEnemy( EnemyObject *enemy ) {
+    enemyCount--;
+    #ifdef CHATTY
+        pc.printf( "Enemy type %d deleted. %lu enemies exist.\r\n", (int)enemy->GetEnemyType(), enemyCount );
+    #endif
+    delete enemy;
+}