Chris Dick
/
Gameduino_Invaders_game
Invaders game for the Gameduino
graphics.h@1:f44175dd69fd, 2012-09-29 (annotated)
- 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?
User | Revision | Line number | New 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 |