Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed wave_player 4DGL-uLCD-SE MMA8452
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 }
Generated on Thu Jul 14 2022 01:43:17 by
1.7.2