Chuong Dong / Mbed 2 deprecated rpg_game_shell

Dependencies:   mbed wave_player 4DGL-uLCD-SE MMA8452

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers graphics.cpp Source File

graphics.cpp

00001 #include "graphics.h"
00002 
00003 #include "globals.h"
00004 
00005 
00006 
00007 void draw_player(int u, int v, int key)
00008 {
00009     if(key == 0) {
00010         draw_img(u, v, "LLDDDDDDDLLLLDYYDYDDLLLDYYLYLYYDLLDYYYYYYYDLLDLYYLYYLDLLLLLBBBLLLLLLLPPPPPLLLLLBBBBBBBLLLLYPPPPPYLLLLLBBBBBLLLLLLLDLDLLLL");  
00011     } else if(key == 1) {
00012         draw_img(u, v, "LLDDDDDDDLLLLDYYDYDDLLLDYYLYLYYDLLDYYYYYYYDLLDLYYLYYLDLLLLLGGGLLLLLLLYYYYYLLLLLGGGGGGGLLLLYYYYYYYLLLLLGGGGGLLLLLLLDLDLLLL");
00013     }
00014 }
00015 void draw_leaf(int u, int v) {
00016 
00017     draw_img(u, v, "LLLLGGGLLLLLLGGGGGGGLLLGGGGGGGGGLLLGGGGGGGGGLGGGGGGGGGGGGGGGGGGGGGLGGGGGGGGGLGGGGGGGGGGGLGGGGGGGGGLLLGGGGGGGLLLLLGGGGGLLL");
00018 }
00019 void draw_wood(int u, int v) {
00020     draw_img(u, v, "LLLDDDDDLLLLLDDDDDDDLLLDDDDDDDDDLLDDDDDDDDDLLDDDDDDDDDLLDDDDDDDDDLLDDDDDDDDDLLDDDDDDDDDLLDDDDDDDDDLDDDDDDDDDDDDDDDDDDDDDD");
00021 }
00022 #define YELLOW 0xFFFF00
00023 #define BROWN  0xD2691E
00024 #define BLUE   0x0000FF
00025 #define DIRT   BROWN
00026 #define PURPLE  0X9400D3
00027 
00028 void draw_img(int u, int v, const char* img)
00029 {
00030     int colors[11*11];
00031     for (int i = 0; i < 11*11; i++)
00032     {
00033         if (img[i] == 'R') colors[i] = RED;
00034         else if (img[i] == 'Y') colors[i] = YELLOW;
00035         else if (img[i] == 'G') colors[i] = GREEN;
00036         else if (img[i] == 'D') colors[i] = DIRT;
00037         else if (img[i] == '5') colors[i] = LGREY;
00038         else if (img[i] == '3') colors[i] = DGREY;
00039         else if (img[i] == 'P') colors[i] = PURPLE;
00040         else if (img[i] == 'B') colors[i] = BLUE;
00041         else if(img[i] == 'W') colors[i] = WHITE;
00042         else colors[i] = BLACK;
00043     }
00044     uLCD.BLIT(u, v, 11, 11, colors);
00045     wait_us(250); // Recovery time!
00046 }
00047 
00048 void draw_nothing(int u, int v)
00049 {
00050     // Fill a tile with blackness
00051     uLCD.filled_rectangle(u, v, u+10, v+10, BLACK);
00052 }
00053 
00054 void draw_wall(int u, int v)
00055 {
00056     uLCD.filled_rectangle(u, v, u+10, v+10, BROWN);
00057 }
00058 
00059 void draw_plant(int u, int v)
00060 {
00061     draw_img(u, v, "LYYYYYYYYYLYYLLLWLLLYYYLLWLWLWLLYYLLLLYLLLLYYWWWWWWWWWYYLLWWWWWLLYYLWLLLLLWLYYLWLWWWLWLYYWLWLWLWLWYYYWLLLLLWYYLYYYYYYYYYL");
00062 }
00063 
00064 void draw_upper_status(int x, int y)
00065 {
00066     // Draw bottom border of status bar
00067     uLCD.line(0, 9, 127, 9, GREEN);
00068     uLCD.color(GREEN);
00069     uLCD.locate(0, 0);
00070     uLCD.printf("(%d,%d)",x,y);
00071     // Add other status info drawing code here
00072 }
00073 
00074 void draw_lower_status()
00075 {
00076     // Draw top border of status bar
00077     uLCD.line(0, 118, 127, 118, GREEN);
00078     
00079     // Add other status info drawing code here
00080 }
00081 
00082 void draw_start() {
00083     uLCD.color(GREEN);
00084     uLCD.text_bold(TEXTBOLD);
00085     uLCD.locate(0, 5);
00086     uLCD.text_height(2);
00087     uLCD.text_width(2);
00088     uLCD.printf("UNDERTALE");
00089     
00090     uLCD.text_height(1);
00091     uLCD.text_width(1);
00092     uLCD.locate(3,8);
00093     uLCD.printf("BY PETER DONG");
00094     
00095     uLCD.locate(1,10);
00096     uLCD.printf("Follow me on ig:");
00097     
00098     uLCD.locate(5,12);
00099     uLCD.printf("@cpeterr");
00100 }
00101 void draw_game_over() {
00102     uLCD.cls();
00103     uLCD.color(GREEN);
00104     uLCD.text_bold(TEXTBOLD);
00105     uLCD.locate(5, 4);
00106     uLCD.printf("GAME OVER");
00107     uLCD.locate(0, 6);
00108     uLCD.printf("Thanks for playing");
00109     uLCD.locate(9, 9);
00110     uLCD.printf("Peter");
00111     wait_ms(5000);
00112 }
00113 
00114 void draw_menu(char* a, char* b, int health_count, int key, int chest, int run) {
00115     uLCD.cls();
00116     uLCD.color(GREEN);
00117     uLCD.text_bold(TEXTBOLD);
00118     uLCD.locate(0, 4);
00119     uLCD.printf("task: %s", a);
00120     
00121     uLCD.color(RED);
00122     uLCD.text_bold(TEXTBOLD);
00123     uLCD.locate(0, 7);
00124     uLCD.printf("hint: %s", b);
00125     if(key == 1) {
00126         uLCD.color(WHITE);
00127         uLCD.text_bold(TEXTBOLD);
00128         uLCD.locate(0, 10);
00129         uLCD.printf("inventory: Chara's shirt");
00130         if(chest==1) {
00131             uLCD.printf(", Treasure chest");   
00132         }
00133         if(run == 1) {
00134             uLCD.printf(", Running shoes");   
00135         }
00136     } 
00137     if (health_count == 3) {
00138         draw_img(85, 10, "LRRRLLLRRRLRRRRRLRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRLRRRRRRRRRLLRRRRRRRRRLLLRRRRRRRLLLLRRRRRRRLLLLLRRRRRLLLLLLLRRRLLLL");
00139         draw_img(50, 10, "LRRRLLLRRRLRRRRRLRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRLRRRRRRRRRLLRRRRRRRRRLLLRRRRRRRLLLLRRRRRRRLLLLLRRRRRLLLLLLLRRRLLLL");
00140         draw_img(20, 10, "LRRRLLLRRRLRRRRRLRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRLRRRRRRRRRLLRRRRRRRRRLLLRRRRRRRLLLLRRRRRRRLLLLLRRRRRLLLLLLLRRRLLLL");
00141     } else if(health_count == 2) {
00142         draw_img(50, 10, "LRRRLLLRRRLRRRRRLRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRLRRRRRRRRRLLRRRRRRRRRLLLRRRRRRRLLLLRRRRRRRLLLLLRRRRRLLLLLLLRRRLLLL");
00143         draw_img(20, 10, "LRRRLLLRRRLRRRRRLRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRLRRRRRRRRRLLRRRRRRRRRLLLRRRRRRRLLLLRRRRRRRLLLLLRRRRRLLLLLLLRRRLLLL");           
00144     } else if(health_count == 1) {
00145         draw_img(20, 10, "LRRRLLLRRRLRRRRRLRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRLRRRRRRRRRLLRRRRRRRRRLLLRRRRRRRLLLLRRRRRRRLLLLLRRRRRLLLLLLLRRRLLLL");   
00146     }
00147     wait_ms(3000);
00148     
00149 }
00150 
00151 void draw_border()
00152 {
00153     uLCD.filled_rectangle(0,     9, 127,  14, WHITE); // Top
00154     uLCD.filled_rectangle(0,    13,   2, 114, WHITE); // Left
00155     uLCD.filled_rectangle(0,   114, 127, 117, WHITE); // Bottom
00156     uLCD.filled_rectangle(124,  14, 127, 117, WHITE); // Right
00157 }
00158 
00159 void draw_sign(int u, int v) {
00160     draw_img(u, v, "LLDDDDDDDLLLDWWWWWWWDLDWWLLWLWWWDDWWWWWWWWWDDLLWWWLLLWDDWWLLWWWWWDLDDDDDDDDDLLLLLDYDLLLLLLLLDYDLLLLLLLLDYDLLLLLLLLDDDLLLL");  
00161 }
00162 
00163 void draw_door_locked(int u, int v) {
00164     draw_img(u, v, "LLLLLLLLLLLDDDDDDDDDDDDDDDDDDDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL");
00165 }
00166 
00167 void draw_door_unlocked(int u, int v) {
00168     draw_img(u, v, "LLLLLLLLLLLDDLLLLLLLLLDDDLLLLLLLLLDDDLLLLLLLLLDDDLLLLLLLLLDDDLLLLLLLLLDDDLLLLLLLLLDDDLLLLLLLLLDDDLLLLLLLLLDDLLLLLLLLLLLLL");   
00169 }
00170 
00171 void draw_flowey_friendly(int u, int v) {
00172     draw_img(u, v, "LYYYYYYYYYLYYWWWWWWWYYYWWWLWLWWWYYWWWLWLWWWYYWLWWWWWLWYYYWLLLLLWYYLLYYYYYYYLLLLLLGGLLLLLLLLGGLLLLLLLGLGGLLGLLLLGGGGGGGLLL");   
00173 }
00174 
00175 void draw_flowey_wink(int u, int v) {
00176     draw_img(u, v, "LYYYYYYYYYLYYWWLWWWWYYYWWWLWLLWWYYWLWWWWWWWYYWWLLLLLWWYYYWRRWWWWYYLLYYYYYYYLLLLLLGGLLLLLLLLGGLLLLLLLGLGGLLGLLLLGGGGGGGLLL");   
00177 }
00178 
00179 void draw_flowey_creepy(int u, int v) {
00180     draw_img(u, v, "LYYYYYYYYYLYYLLLWLLLYYYLLWLWLWLLYYLLLLYLLLLYYWWWWWWWWWYYLLWWWWWLLYYLWLLLLLWLYYLWLWWWLWLYYWLWLWLWLWYYYWLLLLLWYYLYYYYYYYYYL");   
00181 }
00182 
00183 void draw_toby(int u, int v) {
00184     draw_img(u, v, "LLYLLLYLLLLLYWLLLWLLLLYWWWWWWYLLLYWLWWLWYYLLYWWWWWWWYYLYWWLLWWWYYYYLWLWWLWWWYYWLLLLWWWWYYWWWWWWWWWYLYWYWYYWYYYLLYLYLLYLLY");
00185 }
00186 
00187 void draw_toby_bone(int u, int v) {
00188     draw_img(u, v, "LLYLLLYLLLLLYWYYYWYLLLYWWWWWWYLLLYWLWWLWYYLLYWWWWWWWYYLYWWLLWWWYYYYLWLWWLRRWYYWLLLLRWRWYRRRRRRRWRWWWWWWWWWWRWWRRRRRRRRWWW");   
00189 }
00190 
00191 void draw_red_button(int u, int v) {
00192     draw_img(u, v, "LLRRRRRRRLLLRRRRRRRRRLRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRLRRRRRRRRRLLLRRRRRRRLLLLLRRRRRLLLLLLRRRRRLLLLRRRRRRRRRLRRRRRRRRRRR");   
00193 }
00194 
00195 void draw_green_button(int u, int v) {
00196     draw_img(u, v, "LLGGGGGGGLLLGGGGGGGGGLGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGLGGGGGGGGGLLLGGGGGGGLLLLLGGGGGLLLLLLGGGGGLLLLGGGGGGGGGLGGGGGGGGGGG");
00197 }
00198 void draw_chest(int u, int v) {
00199     draw_img(u, v, "LLLYYYYYLLLLLYDDDDDYLLLYDDDDDDDYLYDDDDDDDDDYYDDDYYYDDDYYDDDDYDDDDDLLLLLLLLLLLYDDDDDDDDDYYDDDDDDDDDYYYDDDDDDDYYYYYYYYYYYYY");   
00200 }
00201 void draw_blue_button(int u, int v) {
00202     draw_img(u, v, "LLBBBBBBBLLLBBBBBBBBBLBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBLBBBBBBBBBLLLBBBBBBBLLLLLBBBBBLLLLLLBBBBBLLLLBBBBBBBBBLBBBBBBBBBBB");   
00203 }
00204 
00205 void draw_river_man(int u, int v) {
00206     draw_img(u, v, "LLLPPPPPPLLLLPBLLBBPPLLLPBLLBBBBPLLPBLLBBBBPLLPBLLBBPPBDLLPBBBBPLLDLPBBBBBPLLDDPBBBBBPDDDDPBBBBBPDDDDDPPPPPDDDPDDDDDDDDDL");   
00207 }