P2-2 Harris Barton
Dependencies: mbed wave_player 4DGL-uLCD-SE MMA8452
graphics.cpp
- Committer:
- hbarton7
- Date:
- 2020-11-25
- Revision:
- 3:e2fb359d6545
- Parent:
- 2:4947d6a82971
File content as of revision 3:e2fb359d6545:
// Copyright 2020 Georgia Tech. All rights reserved. // The materials provided by the instructor in this course are for // the use of the students currently enrolled in the course. // Copyrighted course materials may not be further disseminated. // This file must not be made publicly available anywhere. #include "graphics.h" #include "globals.h" #define YELLOW 0xFFFF00 #define BROWN 0xD2691E #define DIRT BROWN const char head[121] = { 'G','G','G','G','G','G','G','G','G','G','G', 'G','G','G','G','G','G','G','G','G','G','G', 'G','R','R','R','G','G','R','R','R','G','G', 'G','R','R','R','G','G','R','R','R','G','G', 'G','R','R','R','G','G','R','R','R','G','G', 'G','G','G','G','G','G','G','G','G','G','G', 'G','R','R','R','G','G','R','R','R','G','G', 'G','R','R','R','G','G','R','R','R','G','G', 'G','R','R','R','G','G','R','R','R','G','G', 'G','G','G','G','G','G','G','G','G','G','G', 'G','G','G','G','G','G','G','G','G','G','G', }; const char tail[121] = { 'G','G','G','G','G','G','G','G','G','G','G', 'G','G','G','G','G','G','G','G','G','G','G', 'G','Y','Y','Y','G','G','G','Y','Y','Y','G', 'G','Y','Y','Y','G','G','G','Y','Y','Y','G', 'G','Y','Y','Y','G','G','G','Y','Y','Y','G', 'G','G','G','G','G','G','G','G','G','G','G', 'G','G','G','G','G','G','G','G','G','G','G', 'G','Y','Y','Y','G','G','Y','Y','Y','G','G', 'G','Y','Y','Y','G','G','Y','Y','Y','G','G', 'G','Y','Y','Y','G','G','Y','Y','Y','G','G', 'G','G','G','G','G','G','G','G','G','G','G', }; const char poison[121] = { 'Y','3','3','3','3','3','3','3','3','3','Y', '3','Y','3','3','3','3','3','3','3','Y','3', '3','3','Y','3','3','3','3','3','Y','3','3', '3','3','3','Y','3','3','3','Y','3','3','3', '3','3','3','3','Y','3','Y','3','3','3','3', '3','3','3','3','3','Y','3','3','3','3','3', '3','3','3','3','Y','3','Y','3','3','3','3', '3','3','3','Y','3','3','3','Y','3','3','3', '3','3','Y','3','3','3','3','3','Y','3','3', '3','Y','3','3','3','3','3','3','3','Y','3', 'Y','3','3','3','3','3','3','3','3','3','Y', }; const char speedup[121] = { '3','3','3','3','3','G','3','3','3','3','3', '3','3','3','3','G','3','G','3','3','3','3', '3','3','3','G','3','3','3','G','3','3','3', '3','3','G','3','3','3','3','3','G','3','3', '3','G','3','3','3','3','3','3','3','G','3', 'G','3','3','3','3','3','3','3','3','3','G', '3','3','3','3','3','G','3','3','3','3','3', '3','3','3','3','G','3','G','3','3','3','3', '3','3','3','G','3','3','3','G','3','3','3', '3','3','G','3','3','3','3','3','G','3','3', '3','G','3','3','3','3','3','3','3','G','3', }; const char slowdown[121] = { 'G','3','3','3','3','3','3','3','3','3','G', '3','G','3','3','3','3','3','3','3','G','3', '3','3','G','3','3','3','3','3','G','3','3', '3','3','3','G','3','3','3','G','3','3','3', '3','3','3','3','G','3','G','3','3','3','3', '3','3','3','3','3','G','3','3','3','3','3', 'G','3','3','3','3','3','3','3','3','3','G', '3','G','3','3','3','3','3','3','3','G','3', '3','3','G','3','3','3','3','3','G','3','3', '3','3','3','G','3','3','3','G','3','3','3', '3','3','3','3','G','3','G','3','3','3','3', }; const char decrease_length[121] = { '3','3','3','3','3','3','3','3','3','3','3', '3','3','3','3','Y','Y','3','3','3','3','3', '3','3','3','Y','3','3','Y','Y','Y','3','3', '3','3','3','Y','3','3','Y','3','3','3','3', '3','3','3','3','Y','Y','3','3','3','3','3', '3','3','3','3','3','3','3','3','3','3','3', '3','3','3','3','3','3','3','3','3','3','3', '3','3','3','3','3','3','3','3','3','3','3', '3','3','3','3','3','3','3','3','3','3','3', '3','3','3','3','3','3','3','3','3','3','3', '3','3','3','3','3','3','3','3','3','3','3', }; const char random[121] = { '5','5','5','5','5','G','5','5','5','5','5', '5','5','5','5','G','5','G','5','5','5','5', '5','5','5','G','5','5','5','G','5','5','5', '5','5','5','5','5','5','5','G','5','5','5', '5','5','5','5','5','5','5','G','5','5','5', '5','5','5','5','5','5','G','5','5','5','5', '5','5','5','5','5','G','5','5','5','5','5', '5','5','5','5','5','G','5','5','5','5','5', '5','5','5','5','5','G','5','5','5','5','5', '5','5','5','5','5','5','5','5','5','5','5', '5','5','5','5','5','G','5','5','5','5','5', }; const char moving[121] = { '5','5','5','5','5','D','5','5','5','5','5', '5','5','5','5','D','5','D','5','5','5','5', '5','5','5','D','5','5','5','D','5','5','5', '5','5','5','5','5','5','5','D','5','5','5', '5','5','5','5','5','5','5','D','5','5','5', '5','5','5','5','5','5','D','5','5','5','5', '5','5','5','5','5','D','5','5','5','5','5', '5','5','5','5','5','D','5','5','5','5','5', '5','5','5','5','5','D','5','5','5','5','5', '5','5','5','5','5','5','5','5','5','5','5', '5','5','5','5','5','D','5','5','5','5','5', }; const char invinc[121] = { '3','3','3','3','3','R','3','3','3','3','3', '3','3','3','3','3','R','3','3','3','3','3', '3','3','3','3','3','R','3','3','3','3','3', '3','3','3','3','3','R','3','3','3','3','3', '3','3','3','3','3','R','3','3','3','3','3', 'R','R','R','R','R','R','R','R','R','R','R', '3','3','3','3','3','R','3','3','3','3','3', '3','3','3','3','3','R','3','3','3','3','3', '3','3','3','3','3','R','3','3','3','3','3', '3','3','3','3','3','R','3','3','3','3','3', '3','3','3','3','3','R','3','3','3','3','3', }; const char megaGoodie[121] = { 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y', 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y', }; void draw_nothing(int u, int v) { uLCD.filled_rectangle(u, v, u+10, v+10, BLACK); } void draw_img(int u, int v, const char* img) { int colors[11*11]; for (int i = 0; i < 11*11; i++) { if (img[i] == 'R') colors[i] = RED; else if (img[i] == 'Y') colors[i] = 0xFFFF00; // Yellow else if (img[i] == 'G') colors[i] = GREEN; else if (img[i] == 'D') colors[i] = 0xD2691E; // "Dirt" else if (img[i] == '5') colors[i] = LGREY; // 50% grey else if (img[i] == '3') colors[i] = DGREY; else colors[i] = BLACK; } uLCD.BLIT(u, v, 11, 11, colors); wait_us(250); // Recovery time! } void draw_wall(int u, int v) { uLCD.filled_rectangle(u, v, u+10, v+10, LGREY); } void draw_plant(int u, int v) { uLCD.filled_rectangle(u, v, u+10, v+10, GREEN); } void draw_goodie(int u, int v) { uLCD.filled_rectangle(u, v, u+10, v+10, 0xD2691E); //DIRT } void draw_snake_body(int u, int v) { uLCD.filled_rectangle(u, v, u+10, v+10, GREEN); } void draw_snake_head(int u, int v) { //May need to design a snake head sprite //Tile still need to be designed on paper uLCD.filled_rectangle(u, v, u+10, v+10, GREEN); draw_img(u,v, head); // uLCD.filled_rectangle(u+1, v+1, u+3, v+3, RED); // uLCD.filled_rectangle(u+7, v+1, u+9, v+3, RED); // uLCD.filled_rectangle(u+1, v+7, u+3, v+9, RED); // uLCD.filled_rectangle(u+7, v+7, u+9, v+9, RED); } void draw_snake_tail(int u, int v) { //May need to design a snake tail sprite //Tile still need to be designed on paper uLCD.filled_rectangle(u, v, u+10, v+10, GREEN); draw_img(u,v, tail); // uLCD.filled_rectangle(u+1, v+1, u+3, v+3, 0xFFFF00); //YELLOW // uLCD.filled_rectangle(u+7, v+1, u+9, v+3, 0xFFFF00); // uLCD.filled_rectangle(u+1, v+7, u+3, v+9, 0xFFFF00); // uLCD.filled_rectangle(u+7, v+7, u+9, v+9, 0xFFFF00); } void draw_poison(int u, int v) { uLCD.filled_rectangle(u, v, u+10, v+10, BLACK); draw_img(u, v, poison); } void draw_speedup(int u, int v) { uLCD.filled_rectangle(u, v, u+10, v+10, BLACK); draw_img(u, v, speedup); } void draw_slowdown(int u, int v) { uLCD.filled_rectangle(u, v, u+10, v+10, BLACK); draw_img(u, v, slowdown); } void draw_decrease_length(int u, int v) { uLCD.filled_rectangle(u, v, u+10, v+10, BLACK); draw_img(u, v, decrease_length); } void draw_random(int u, int v) { uLCD.filled_rectangle(u, v, u+10, v+10, BLACK); draw_img(u, v, random); } void draw_moving(int u, int v) { uLCD.filled_rectangle(u, v, u+10, v+10, BLACK); draw_img(u, v, moving); } void draw_invinc(int u, int v) { uLCD.filled_rectangle(u, v, u+10, v+10, BLACK); draw_img(u, v, invinc); } void draw_megaGoodie(int u, int v) { uLCD.filled_rectangle(u, v, u+10, v+10, BLACK); draw_img(u, v, megaGoodie); }