Invaders game for the Gameduino

Dependencies:   Gameduino mbed

Committer:
TheChrisyd
Date:
Sat Sep 29 13:01:42 2012 +0000
Revision:
1:f44175dd69fd
Parent:
0:8a7c58553b44
Child:
2:20a89dc286d5
saved progress

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TheChrisyd 1:f44175dd69fd 1 /*---------------------------------------------
TheChrisyd 1:f44175dd69fd 2 Send all graphics to the Gameduino
TheChrisyd 1:f44175dd69fd 3 ---------------------------------------------*/
TheChrisyd 1:f44175dd69fd 4 #ifndef INVADER_GRAPHICS
TheChrisyd 1:f44175dd69fd 5 #define INVADER_GRAPHICS
TheChrisyd 1:f44175dd69fd 6 #include "shield.h"
TheChrisyd 1:f44175dd69fd 7 #include "mbed.h"
TheChrisyd 1:f44175dd69fd 8 #include "arduino.h"
TheChrisyd 1:f44175dd69fd 9 void makeGraphics();
TheChrisyd 1:f44175dd69fd 10
TheChrisyd 1:f44175dd69fd 11 /*---------------------------------------------
TheChrisyd 1:f44175dd69fd 12 Identifiers for custom chars
TheChrisyd 1:f44175dd69fd 13 ---------------------------------------------*/
TheChrisyd 1:f44175dd69fd 14 enum char_id {
TheChrisyd 1:f44175dd69fd 15 CH_FLOOR=128,
TheChrisyd 1:f44175dd69fd 16 CH_PLAYERL,
TheChrisyd 1:f44175dd69fd 17 CH_PLAYERR
TheChrisyd 1:f44175dd69fd 18 };
TheChrisyd 1:f44175dd69fd 19 /*---------------------------------------------
TheChrisyd 1:f44175dd69fd 20 Identifiers for each sprite graphic
TheChrisyd 1:f44175dd69fd 21
TheChrisyd 1:f44175dd69fd 22 Sprites are made in four color mode so
TheChrisyd 1:f44175dd69fd 23 each 'sprite' can have four images inside
TheChrisyd 1:f44175dd69fd 24 it.
TheChrisyd 1:f44175dd69fd 25
TheChrisyd 1:f44175dd69fd 26 The first image is usually the 'normal'
TheChrisyd 1:f44175dd69fd 27 (eg. player/saucer) one and the third is
TheChrisyd 1:f44175dd69fd 28 usually blank (so you can hide the sprite).
TheChrisyd 1:f44175dd69fd 29
TheChrisyd 1:f44175dd69fd 30 The other two are used for animations
TheChrisyd 1:f44175dd69fd 31 (eg. invaders) and explosions (eg. player)
TheChrisyd 1:f44175dd69fd 32 ---------------------------------------------*/
TheChrisyd 1:f44175dd69fd 33 enum graphic_id {
TheChrisyd 1:f44175dd69fd 34 // Invader sprites - Top, Middle, Bottom, two animation frames each...
TheChrisyd 1:f44175dd69fd 35 GR_INVADER_T,
TheChrisyd 1:f44175dd69fd 36 GR_INVADER_M,
TheChrisyd 1:f44175dd69fd 37 GR_INVADER_B,
TheChrisyd 1:f44175dd69fd 38 GR_BOMB_ZIGZAG, // Zigzag bomb
TheChrisyd 1:f44175dd69fd 39 GR_BOMB_BARS, // The bomb with rolling horizontal bars across it
TheChrisyd 1:f44175dd69fd 40 GR_BOMB_DIAG, // The bomb with diagonal bars across it
TheChrisyd 1:f44175dd69fd 41 GR_BOMB_OTHER, // Other bomb graphics (explosion and blank)
TheChrisyd 1:f44175dd69fd 42 // The player (with bullet)
TheChrisyd 1:f44175dd69fd 43 GR_PLAYER,
TheChrisyd 1:f44175dd69fd 44 GR_BULLET, // nb. Has a '0' in frame 2 (for the saucer...)
TheChrisyd 1:f44175dd69fd 45 // The saucer at the top
TheChrisyd 1:f44175dd69fd 46 GR_SAUCER,
TheChrisyd 1:f44175dd69fd 47 GR_SAUCER_SCORE,
TheChrisyd 1:f44175dd69fd 48 // Shields
TheChrisyd 1:f44175dd69fd 49 GR_SHIELD1,
TheChrisyd 1:f44175dd69fd 50 GR_SHIELD2,
TheChrisyd 1:f44175dd69fd 51 GR_SHIELD3,
TheChrisyd 1:f44175dd69fd 52 GR_SHIELD4
TheChrisyd 1:f44175dd69fd 53 };
TheChrisyd 1:f44175dd69fd 54
TheChrisyd 1:f44175dd69fd 55 /*---------------------------------------------
TheChrisyd 1:f44175dd69fd 56 Functions for wrecking/rebuilding shields
TheChrisyd 1:f44175dd69fd 57 ---------------------------------------------*/
TheChrisyd 1:f44175dd69fd 58 void remakeShields();
TheChrisyd 1:f44175dd69fd 59
TheChrisyd 1:f44175dd69fd 60 // Damage the shield with either a bomb or a bullet (ie. above/below)
TheChrisyd 1:f44175dd69fd 61 // n=shield number [0..4], x is relative to the shield's top-left corner
TheChrisyd 1:f44175dd69fd 62 int8 zapShield(byte n, int8 x, bool withBullet); // Return Y coordinate of blast
TheChrisyd 1:f44175dd69fd 63
TheChrisyd 1:f44175dd69fd 64 #endif
TheChrisyd 1:f44175dd69fd 65