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: 4DGL-uLCD-SE SDFileSystem mbed-rtos mbed wave_player
Diff: missile.cpp
- Revision:
- 0:3817adfaeb06
- Child:
- 1:618aa2c4ca6a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/missile.cpp Tue Mar 15 19:09:51 2016 +0000
@@ -0,0 +1,82 @@
+#include "missile.h"
+
+void draw_missile_object(int blk_x, int blk_y, int missile_color, int m_width, int m_height)
+{
+ uLCD.filled_rectangle(blk_x,blk_y-1,blk_x+m_width,blk_y-m_height,missile_color);
+}
+
+void erase_missile(int blk_x, int blk_y, int m_width, int m_height)
+{
+ uLCD.filled_rectangle(blk_x,blk_y-1,blk_x+m_width,blk_y-m_height,BACKGROUND_COLOR);
+}
+
+void update_missile_pos(missile_t *g)
+{
+ if (g->missile_blk_y < 18)
+ {
+ g->status = PLAYER_MISSILE_EXPLODED;
+ }
+
+ if (g->status == PLAYER_MISSILE_ACTIVE)
+ {
+ missile_erase(g);
+ g->missile_blk_y = g->missile_blk_y-3;
+ missile_show(g);
+ }
+ else if (g->status == PLAYER_MISSILE_EXPLODED)
+ {
+ missile_erase(g);
+ g->status = PLAYER_MISSILE_INACTIVE;
+ g->missile_blk_y = 109;
+ }
+}
+
+void update_enemy_missile_pos(missile_t *g)
+{
+ if (g->missile_blk_y > 128)
+ {
+ g->status = ENEMY_MISSILE_EXPLODED;
+ }
+
+ if (g->status == ENEMY_MISSILE_ACTIVE)
+ {
+ missile_erase(g);
+ g->missile_blk_y = g->missile_blk_y+1;
+ missile_show(g);
+ }
+ else if (g->status == ENEMY_MISSILE_EXPLODED)
+ {
+ missile_erase(g);
+ g->status = ENEMY_MISSILE_INACTIVE;
+ }
+}
+
+void missile_init(missile_t * g, int blk_x, int blk_y, int color)
+{
+ g->missile_blk_x = blk_x;
+ g->missile_blk_y = blk_y;
+ g->missile_color = color;
+ g->missile_width = 1;
+ g->missile_height = 8;
+ g->status = PLAYER_MISSILE_INACTIVE;
+}
+
+void enemy_missile_init(missile_t * g, int blk_x, int blk_y, int color)
+{
+ g->missile_blk_x = blk_x;
+ g->missile_blk_y = blk_y;
+ g->missile_color = color;
+ g->missile_width = 1;
+ g->missile_height = 8;
+ g->status = ENEMY_MISSILE_INACTIVE;
+}
+
+void missile_show(missile_t * g)
+{
+ draw_missile_object(g->missile_blk_x, g->missile_blk_y, g->missile_color, g->missile_width, g->missile_height);
+}
+
+void missile_erase(missile_t *g)
+{
+ erase_missile(g->missile_blk_x, g->missile_blk_y, g->missile_width, g->missile_height);
+}
\ No newline at end of file