Finished V1

Dependencies:   mbed wave_player 4DGL-uLCD-SE MMA8452

graphics.cpp

Committer:
trich9
Date:
2019-11-19
Revision:
4:2297a714936f
Parent:
0:35660d7952f7
Child:
5:2fb023cdc666

File content as of revision 4:2297a714936f:

#include "graphics.h"

#include "globals.h"



void draw_player(int u, int v, int key)
{
    //OGCODE
    //uLCD.filled_rectangle(u, v, u+11, v+11, RED);
    
    //MYCODE
    char playerSprite[122] = "0000000000000QQQQQQQ0000QUUUUUQ0000QUEUEUQ0000QUUUUUQ000000TUT0000000TUUUT000000TWWWT000000TUUUT000000TUTUT000000TUTUT000";
    draw_img(u,v, playerSprite);
}

#define YELLOW 0xFFFF00
#define BROWN  0xD2691E
#define DIRT   BROWN
//MYCODE
#define PHAIR  0x663F04
#define DGREEN 0x384236
#define PCOAT  0xF7C6C6
#define PSKIN  0xFF9900
#define WGRAY  0xC9C9C9


//MYCODE

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] = YELLOW;
        else if (img[i] == 'G') colors[i] = GREEN;
        else if (img[i] == 'D') colors[i] = DIRT;
        else if (img[i] == '5') colors[i] = LGREY;
        else if (img[i] == '3') colors[i] = DGREY;
        //MYCODE
        //Player colors
        else if (img[i] == 'Q') colors[i] = PHAIR;
        else if (img[i] == 'E') colors[i] = DGREEN;
        else if (img[i] == 'W') colors[i] = WHITE;
        else if (img[i] == 'T') colors[i] = PCOAT;
        else if (img[i] == 'U') colors[i] = PSKIN;
        
        //WALL
        else if (img[i] == 'I') colors[i] = WGRAY;
        //ENDMYCODE
        else colors[i] = BLACK;
    }
    uLCD.BLIT(u, v, 11, 11, colors);
    wait_us(250); // Recovery time!
}

void draw_nothing(int u, int v)
{
    // Fill a tile with blackness
    uLCD.filled_rectangle(u, v, u+10, v+10, BLACK);
}

void draw_wall(int u, int v)
{
    //OGCODE
    //uLCD.filled_rectangle(u, v, u+10, v+10, BROWN);
    
    //MYCODE
    char wallSprite[122] = "IIIIIIIIIIIWWIIWWWIIWWIIWWIIIWWIIIIIIIIIIIIIWWWWWWWWWWWIIIIIIIIIIIWWWWWWWWWWWIIIIIIIIIIIIIWWIIIWWIIWWIIWWWIIWWIIIIIIIIIII";
    draw_img(u,v, wallSprite);
}

void draw_plant(int u, int v)
{
    uLCD.filled_rectangle(u, v, u+10, v+10, GREEN);
}

//MYCODE
void draw_NPC(int u, int v)
{
    uLCD.filled_rectangle(u,v,u+10,v+10, YELLOW);    
}

void draw_ladder(int u, int v){
    
    char ladderSprite[122] = "II0000000IIIIIIIIIIIIIII0000000IIIIIIIIIIIIIII0000000IIIIIIIIIIIIIII0000000IIIIIIIIIIIIIII0000000IIIIIIIIIIIIIII0000000II";
    draw_img(u,v, ladderSprite);   
}

void draw_upper_status(int playerX, int playerY)
{
    // Draw bottom border of status bar
    uLCD.line(0, 9, 127, 9, GREEN);
    
    // Add other status info drawing code here
    
    //MYCODE
    uLCD.locate(1,0);
    uLCD.printf("(%d, %d)", playerX, playerY);
    
    
    
}

void draw_lower_status()
{
    // Draw top border of status bar
    uLCD.line(0, 118, 127, 118, GREEN);
    
    // Add other status info drawing code here
}

void draw_border()
{
    uLCD.filled_rectangle(0,     9, 127,  14, WHITE); // Top
    uLCD.filled_rectangle(0,    13,   2, 114, WHITE); // Left
    uLCD.filled_rectangle(0,   114, 127, 117, WHITE); // Bottom
    uLCD.filled_rectangle(124,  14, 127, 117, WHITE); // Right
}