khoa phan test

Dependencies:   4DGL-uLCD-SE MMA8452 mbed wave_player

Fork of rpg_game_shell by ECE 2035 TA

Revision:
2:2f32fe4dadab
Parent:
0:35660d7952f7
--- a/graphics.cpp	Wed Apr 04 21:11:07 2018 +0000
+++ b/graphics.cpp	Sun Apr 22 02:27:42 2018 +0000
@@ -1,17 +1,13 @@
 #include "graphics.h"
-
 #include "globals.h"
-
-
-
-void draw_player(int u, int v, int key)
-{
-    uLCD.filled_rectangle(u, v, u+11, v+11, RED);
-}
-
 #define YELLOW 0xFFFF00
 #define BROWN  0xD2691E
 #define DIRT   BROWN
+#define RED    0xFF0000
+#define ORANGE 0xFFA500
+#define BLACK  0x000000
+#define WHITE  0xffffff
+#define SKIN   0xDCB847
 void draw_img(int u, int v, const char* img)
 {
     int colors[11*11];
@@ -23,12 +19,115 @@
         else if (img[i] == 'D') colors[i] = DIRT;
         else if (img[i] == '5') colors[i] = LGREY;
         else if (img[i] == '3') colors[i] = DGREY;
+        else if (img[i] == 'R') colors[i] = RED;
+        else if (img[i] == 'B') colors[i] = BLACK;
+        else if (img[i] == 'W') colors[i] = WHITE;
+        else if (img[i] == 'S') colors[i] = SKIN;
         else colors[i] = BLACK;
     }
     uLCD.BLIT(u, v, 11, 11, colors);
     wait_us(250); // Recovery time!
 }
 
+const char duck[121] = {
+    'B','B','B','B','B','B','Y','Y','Y','B','B',
+    'B','B','B','B','B','Y','Y','Y','Y','Y','B',    
+    'B','B','B','B','B','Y','Y','Y','B','Y','B',
+    'B','B','B','B','B','Y','Y','Y','Y','O','R',
+    'Y','B','Y','Y','Y','Y','Y','Y','Y','B','B',
+    'Y','5','Y','Y','5','Y','Y','Y','Y','Y','B',
+    'Y','Y','5','5','Y','Y','Y','Y','Y','Y','B',
+    'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',
+    'B','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',
+    'B','Y','Y','Y','Y','Y','Y','Y','Y','Y','B',
+    'B','Y','Y','Y','Y','Y','Y','Y','Y','Y','B',
+    };
+const char apple[121] = {
+    'B','B','B','B','B','B','B','B','B','B','B',
+    'B','B','B','G','G','B','D','B','B','B','B',
+    'B','B','B','B','G','D','B','B','B','B','B',
+    'B','B','R','B','B','R','R','R','B','B','B',
+    'B','R','W','W','R','R','R','R','R','R','B',
+    'B','R','W','R','R','R','R','R','R','R','B',
+    'B','R','R','R','R','R','R','R','R','R','B',
+    'B','R','R','R','R','R','R','R','R','R','B',
+    'B','B','R','R','R','R','R','R','R','B','B',
+    'B','B','B','B','B','B','B','B','B','B','B',
+    };
+    
+const char poisonapple[121] = {
+    'B','B','B','B','B','B','B','B','B','B','B',
+    'B','B','B','G','G','B','D','B','B','B','B',
+    'B','B','B','B','G','D','B','B','B','B','B',
+    'B','B','R','B','B','R','R','R','G','B','B',
+    'B','G','W','W','R','R','R','R','R','R','B',
+    'B','R','W','R','G','R','R','R','R','R','B',
+    'B','R','R','R','R','R','R','R','G','R','B',
+    'B','R','R','G','R','R','R','R','R','R','B',
+    'B','B','R','R','R','R','R','R','R','B','B',
+    'B','B','B','B','B','B','B','B','B','B','B',
+    };
+    
+const char oldMan[121] = {
+    'B','B','B','B','S','S','S','S','B','B','B',
+    'B','B','B','S','S','S','S','S','S','B','B',
+    'B','B','3','W','S','S','S','S','S','B','B',
+    'B','B','3','B','W','W','S','W','W','B','B',
+    'B','B','3','S','B','S','S','S','B','B','B',
+    'B','B','3','3','S','R','R','R','S','B','B',
+    'B','D','D','D','3','3','3','3','B','B','B',
+    'B','D','S','D','D','3','3','3','B','B','B',
+    'B','D','S','D','D','D','3','S','B','B','B',
+    'B','B','B','D','D','D','3','D','B','B','B',
+    'B','B','B','S','B','S','B','D','B','B','B',
+    };
+    
+const char goldkey [121] = {
+    'B','B','B','B','B','B','B','B','B','B','B',
+    'B','B','B','B','B','B','B','B','B','B','B',
+    'B','B','B','B','B','B','B','B','B','B','B',
+    'B','B','B','B','B','B','B','B','B','B','B',
+    'B','B','B','B','B','B','Y','Y','Y','Y','B',
+    'B','Y','Y','Y','Y','Y','Y','W','W','Y','B',
+    'B','Y','Y','Y','Y','Y','Y','W','W','Y','B',
+    'B','Y','B','Y','B','B','Y','Y','Y','Y','B',
+    'B','B','B','B','B','B','B','B','B','B','B',
+    'B','B','B','B','B','B','B','B','B','B','B',
+    'B','B','B','B','B','B','B','B','B','B','B',
+    };
+const char door [121] = {
+    'D','D','D','D','D','D','D','D','D','D','D',
+    'D','D','D','D','D','D','D','D','D','D','D',
+    'D','D','D','D','D','D','D','D','D','D','D',
+    'D','D','D','D','D','D','D','D','D','B','D',
+    'D','D','D','D','D','D','D','D','D','B','D',
+    'D','D','D','D','D','D','D','D','D','B','D',
+    'D','D','D','D','D','D','D','D','D','B','D',
+    'D','D','D','D','D','D','D','D','D','B','D',
+    'D','D','D','D','D','D','D','D','D','D','D',
+    'D','D','D','D','D','D','D','D','D','D','D',
+    'D','D','D','D','D','D','D','D','D','D','D',
+    };
+
+const char plant [121] = {
+    'B','B','B','B','B','B','B','B','B','B','B',
+    'B','B','B','B','B','B','B','B','B','B','B',
+    'B','B','B','B','B','B','B','B','B','B','B',
+    'B','B','B','B','B','B','B','B','B','B','B',
+    'B','B','B','G','B','G','B','G','G','B','B',
+    'B','B','G','G','G','G','G','G','G','G','B',
+    'B','G','G','G','G','G','G','G','G','G','B',
+    'G','G','G','G','G','G','G','G','G','B','B',
+    'B','G','G','G','G','G','G','G','G','G','B',
+    'G','G','G','G','G','G','G','G','G','G','B',
+    'G','G','G','G','G','G','G','G','G','G','G',
+    };
+
+void draw_player(int u, int v, int key)
+{
+   draw_img(u, v, duck);
+}
+
 void draw_nothing(int u, int v)
 {
     // Fill a tile with blackness
@@ -38,11 +137,11 @@
 void draw_wall(int u, int v)
 {
     uLCD.filled_rectangle(u, v, u+10, v+10, BROWN);
-}
+}    
 
 void draw_plant(int u, int v)
 {
-    uLCD.filled_rectangle(u, v, u+10, v+10, GREEN);
+    draw_img(u, v, plant);
 }
 
 void draw_upper_status()
@@ -69,4 +168,41 @@
     uLCD.filled_rectangle(124,  14, 127, 117, WHITE); // Right
 }
 
+void draw_startScreen()
+{   
+    uLCD.text_bold(ON);
+    uLCD.text_string("Homebound Duck", 3, 1, FONT_7X8, WHITE);
+    uLCD.text_string("HELP THIS DUCK", 2, 7,FONT_7X8, WHITE);
+    uLCD.text_string("RETURN HOME", 5, 9,FONT_7X8, WHITE);
+    uLCD.text_string("Press any button", 1, 14, FONT_7X8, WHITE);
+    uLCD.text_string("to start", 1, 15, FONT_7X8, WHITE);
+}
 
+void draw_gameend()
+{   
+    uLCD.filled_rectangle(0,0, 127,  127, BLACK); // Top
+    uLCD.text_bold(ON);
+    uLCD.text_string("Game Over", 4, 1, FONT_7X8, WHITE);
+}
+void draw_NPC(int u, int v)
+{
+    draw_img(u, v, oldMan);
+}
+void draw_apple(int u, int v)
+{
+    draw_img(u,v,apple);
+}
+void draw_poiapple(int u, int v)
+{
+    draw_img(u,v,poisonapple);
+}
+void draw_door(int u, int v)
+{
+    draw_img(u,v,door);
+}
+void draw_key(int u, int v)
+{
+    draw_img(u,v,goldkey);    
+}
+
+