My ELEC2645 project. Nikollao Sulollari. 200804685

Dependencies:   N5110 SoftPWM mbed

Fork of Treasure_Hunt by ELEC2645 (2015/16)

Revision:
8:606a488fa720
Parent:
7:f31a4b4beb91
Child:
9:ce2d9c42edea
--- a/main.h	Mon Apr 04 12:20:42 2016 +0000
+++ b/main.h	Mon Apr 18 09:59:32 2016 +0000
@@ -270,15 +270,19 @@
 volatile int tries = 0;/*!< counts the number of trials */
 
 volatile int n;/*!< number of pixels overlapping */
-int pixels[84][48];
+//int pixels[84][48];
 
 int reset = 0; /*!< used to save current level of difficulty */
 
-int objectX = 10;
+int objectX = 0; /*!< used to move obstacles in the x-axis */
 
-int objectY = 20;
+int objectY = 20; /*!< used to move obstacles in the y-axis */
+
+int state = 0; /*!< controls the direction of the objtacle */
+int countObject = 0;
 
 void enemies()
+
 {
     /// generate enemies in the screen depending on the level difficulty
 
@@ -310,16 +314,22 @@
 {
     ///cotrol hero
     
-    if (xPot > 0.5) { 
+    if (xPot > 0.60) { 
         heroX++;
+    }
+     else if (xPot < 0.40){
+        heroX--;
     } else {
-        heroX--;
+        heroX = heroX; 
     }
     
-    if (yPot > 0.5) {
+    if (yPot > 0.60) {
         heroY--;
+    } 
+    else if (yPot < 0.40) {
+        heroY++;
     } else {
-        heroY++;
+        heroY = heroY;
     }
     ///set x-axis boundaries so hero does not go out of screen
     if (heroX > 35) {
@@ -340,6 +350,13 @@
     ///generate circle shape enemy
     lcd.drawCircle(circleX,circleY,4,1);
     circleY = circleY + rand() %4 - 2;
+    
+    if (circleY <= 10) {
+        circleY = 10;
+    }if (circleY >= 35) {
+        circleY = 35;
+    }
+    
 
     circleX++; ///enemy moving towards hero
 }
@@ -402,9 +419,20 @@
                 game_ticker.detach();
                 break;
             } else if (option == 1) {
+                
+                lcd.clear();
+                g_button_flag = 0;
+                while(1) {
+                    //settings_menu();
+                    pc.printf("Modify Settings!");
+                    lcd.printString("Lcd Inverse <",0,0);
+                    if (g_button_flag) {
 
-                //settings_menu();
-                pc.printf("Modify Settings!");
+                        lcd.inverseMode();
+                        break;
+                    }
+                    sleep();
+                }
             } else {
 
                 lcd.turnOff();
@@ -442,7 +470,7 @@
 
             g_button_flag = 0;
             level = 0;
-            play++;
+           // play++;
             lcd.clear();
             //main();
         }
@@ -465,39 +493,38 @@
         lcd.drawRect(74,28,2,2,1);
     } else if (level == 3) {
 
-        lcd.drawRect(10,15,2,2,1);
-        lcd.drawRect(74,15,2,2,1);
-        lcd.drawRect(10,28,2,2,1);
-        lcd.drawRect(74,28,2,2,1);
-        lcd.drawRect(30,15,2,2,1);
-        lcd.drawRect(54,15,2,2,1);
-        lcd.drawRect(30,28,2,2,1);
-        lcd.drawRect(54,28,2,2,1);
+        lcd.drawRect(5,12,2,2,1);
+        lcd.drawRect(79,12,2,2,1);
+        lcd.drawRect(5,30,2,2,1);
+        lcd.drawRect(79,30,2,2,1);
+        lcd.drawRect(28,12,2,2,1);
+        lcd.drawRect(52,12,2,2,1);
+        lcd.drawRect(28,30,2,2,1);
+        lcd.drawRect(52,30,2,2,1);
     } else if (level == 4) {
 
-        lcd.drawRect(10 + rand() %4 - 2,15 + rand() &4 -2,2,2,1);
-        lcd.drawRect(74 + rand() %4 - 2,15 + rand() %4 - 2,2,2,1);
-        lcd.drawRect(10 + rand() %4 - 2,28 + rand() %4 - 2,2,2,1);
-        lcd.drawRect(74 + rand() %4 - 2,28 + rand() %4 - 2,2,2,1);
-        lcd.drawRect(30 + rand() %4 - 2,15,2,2,1);
-        lcd.drawRect(54,15 + rand() %4 - 2,2,2,1);
-        lcd.drawRect(30,28 + rand() %4 - 2,2,2,1);
-        lcd.drawRect(54 + rand() %4 - 2,28,2,2,1);
-    } else if ( level == 5) {
-        
-        bool state = 0;
-        if (objectX == 71) {
+        lcd.drawRect(5 ,12+ rand() %4 - 2,2,2,1);
+        lcd.drawRect(79 + rand() %4 - 2,12 + rand() %4 - 2,2,2,1);
+        lcd.drawRect(5+ rand() %4 - 2,30 ,2,2,1);
+        lcd.drawRect(79 + rand() %4 - 2,30,2,2,1);
+        lcd.drawRect(28 + rand() %4 - 2,12+ rand() %4,2,2,1);
+        lcd.drawRect(52,12 + rand() %4 - 2,2,2,1);
+        lcd.drawRect(28,30 + rand() %4 - 2,2,2,1);
+        lcd.drawRect(52 + rand() %4 - 2,30,2,2,1);
+    }
+    if (objectX == 0) {
+            state = 0;
+        } 
+        else if (objectX == 58) {
             state = 1;
-        } 
-        if (objectX == 15) {
-            state = 0;
+        } else {
+            state = state;
         }
-        if (state == 0) {
+       if (state == 0) {
             objectX++;
-        } else if (state == 1)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          {
+        } else {
             objectX--;
-        }
-        
+        }   
         objectY = objectY + rand() %4 - 2;
         ///keep moving object within boundaries
         if (objectY <= 10) { 
@@ -506,13 +533,35 @@
         if (objectY >= 37) {
             objectY = 37;
         }
+     if ( level == 5) {
         
         lcd.drawLine(15,10,15,37,1);
         lcd.drawLine(71,10,71,37,1);
-        lcd.drawRect(10+objectX,objectY,2,2,1); 
-    } else if (level == 6) {
-
-    } else if (level == 7) {
+        
+        lcd.drawRect(11+objectX,objectY,2,2,1); 
+        
+        lcd.drawRect(80,10,2,2,1);
+        lcd.drawRect(5,10,2,2,1);
+        lcd.drawRect(80,20,2,2,1);
+        lcd.drawRect(5,20,2,2,1);
+        lcd.drawRect(80,30,2,2,1);
+        lcd.drawRect(5,30,2,2,1);
+        
+    } 
+    else if (level == 6) {
+        
+        lcd.drawLine(15,10,15,37,1);
+        lcd.drawLine(71,10,71,37,1);
+        
+        lcd.drawRect(11+objectX,objectY,2,2,1);    
+        lcd.drawRect(80,10,2,2,1);
+        lcd.drawRect(5,10,2,2,1);
+        lcd.drawRect(80,20,2,2,1);
+        lcd.drawRect(5,20,2,2,1);
+        lcd.drawRect(80,30,2,2,1);
+        lcd.drawRect(5,30,2,2,1);
+    } 
+    else if (level == 7) {
 
         /*
         lcd.drawLine(50,15,30,15,1);