ECE 4180 Single Player Space Invaders Team / Mbed 2 deprecated Mbed-Space-Invaders4

Dependencies:   mbed wave_player mbed-rtos 4DGL-uLCD-SE SDFileSystem

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers missile.cpp Source File

missile.cpp

00001 #include "missile.h"
00002 
00003 void draw_missile_object(int blk_x, int blk_y, int missile_color, int m_width, int m_height)
00004 {
00005     uLCD.filled_rectangle(blk_x,blk_y-1,blk_x+m_width,blk_y-m_height,missile_color);
00006 }
00007 
00008 void erase_missile(int blk_x, int blk_y, int m_width, int m_height)
00009 {
00010     uLCD.filled_rectangle(blk_x,blk_y-1,blk_x+m_width,blk_y-m_height,BACKGROUND_COLOR);
00011 }
00012 
00013 void update_missile_pos(missile_t *g)
00014 {
00015     if (g->missile_blk_y < 18)
00016     {
00017         g->status = PLAYER_MISSILE_EXPLODED;
00018     }
00019     
00020     if (g->status == PLAYER_MISSILE_ACTIVE)
00021     {
00022         missile_erase(g);
00023         g->missile_blk_y = g->missile_blk_y-3;
00024         missile_show(g);
00025     }
00026     else if (g->status == PLAYER_MISSILE_EXPLODED)
00027     {
00028         missile_erase(g);
00029         g->status = PLAYER_MISSILE_INACTIVE;
00030         g->missile_blk_y = 109;
00031     }
00032 }
00033 
00034 void update_enemy_missile_pos(missile_t *g)
00035 {
00036     if (g->missile_blk_y > 128)
00037     {
00038         g->status = ENEMY_MISSILE_EXPLODED;
00039     }
00040     
00041     if (g->status == ENEMY_MISSILE_ACTIVE)
00042     {
00043         missile_erase(g);
00044         g->missile_blk_y = g->missile_blk_y+1;
00045         missile_show(g);
00046     }
00047     else if (g->status == ENEMY_MISSILE_EXPLODED)
00048     {
00049         missile_erase(g);
00050         g->status = ENEMY_MISSILE_INACTIVE;
00051         g->missile_blk_y = 2;
00052     }
00053 }
00054 
00055 void missile_init(missile_t * g, int blk_x, int blk_y, int color)
00056 {
00057     g->missile_blk_x = blk_x;
00058     g->missile_blk_y = blk_y;
00059     g->missile_color = color;
00060     g->missile_width = 1;
00061     g->missile_height = 8;
00062     g->status = PLAYER_MISSILE_INACTIVE;
00063 }
00064 
00065 void enemy_missile_init(missile_t * g, int blk_x, int blk_y, int color)
00066 {
00067     g->missile_blk_x = blk_x;
00068     g->missile_blk_y = blk_y;
00069     g->missile_color = color;
00070     g->missile_width = 1;
00071     g->missile_height = 8;
00072     g->status = ENEMY_MISSILE_INACTIVE;
00073 }
00074 
00075 void missile_show(missile_t * g)
00076 {
00077     draw_missile_object(g->missile_blk_x, g->missile_blk_y, g->missile_color, g->missile_width, g->missile_height);
00078 }
00079 
00080 void missile_erase(missile_t *g)
00081 {
00082     erase_missile(g->missile_blk_x, g->missile_blk_y, g->missile_width, g->missile_height);
00083 }