Chris Dick
/
Gameduino_Palettes_demo
Palettes demo for the Gameduino
main.cpp@0:31287ae20f4a, 2012-12-20 (annotated)
- Committer:
- TheChrisyd
- Date:
- Thu Dec 20 22:28:55 2012 +0000
- Revision:
- 0:31287ae20f4a
Working version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
TheChrisyd | 0:31287ae20f4a | 1 | #include "mbed.h" |
TheChrisyd | 0:31287ae20f4a | 2 | #include "GD.h" |
TheChrisyd | 0:31287ae20f4a | 3 | #include "shield.h" |
TheChrisyd | 0:31287ae20f4a | 4 | |
TheChrisyd | 0:31287ae20f4a | 5 | GDClass GD(ARD_MOSI, ARD_MISO, ARD_SCK, ARD_D9, USBTX, USBRX) ; |
TheChrisyd | 0:31287ae20f4a | 6 | |
TheChrisyd | 0:31287ae20f4a | 7 | void spr(int x, int y, byte pal) |
TheChrisyd | 0:31287ae20f4a | 8 | { |
TheChrisyd | 0:31287ae20f4a | 9 | static int sprnum = 0; |
TheChrisyd | 0:31287ae20f4a | 10 | GD.sprite(sprnum++, x, y, 0, pal, 0); |
TheChrisyd | 0:31287ae20f4a | 11 | } |
TheChrisyd | 0:31287ae20f4a | 12 | |
TheChrisyd | 0:31287ae20f4a | 13 | static unsigned int random_color() |
TheChrisyd | 0:31287ae20f4a | 14 | { |
TheChrisyd | 0:31287ae20f4a | 15 | return RGB(64 + rand()%192, 64 + rand()%192, 64 + rand()%192); |
TheChrisyd | 0:31287ae20f4a | 16 | } |
TheChrisyd | 0:31287ae20f4a | 17 | |
TheChrisyd | 0:31287ae20f4a | 18 | int main() |
TheChrisyd | 0:31287ae20f4a | 19 | { |
TheChrisyd | 0:31287ae20f4a | 20 | int i; |
TheChrisyd | 0:31287ae20f4a | 21 | |
TheChrisyd | 0:31287ae20f4a | 22 | GD.begin(); |
TheChrisyd | 0:31287ae20f4a | 23 | GD.ascii(); |
TheChrisyd | 0:31287ae20f4a | 24 | GD.putstr(0, 0,"Sprite palettes"); |
TheChrisyd | 0:31287ae20f4a | 25 | |
TheChrisyd | 0:31287ae20f4a | 26 | for (i = 0; i < 256; i++) |
TheChrisyd | 0:31287ae20f4a | 27 | GD.wr(RAM_SPRIMG + i, i); |
TheChrisyd | 0:31287ae20f4a | 28 | |
TheChrisyd | 0:31287ae20f4a | 29 | // Fill all the palettes with random colors |
TheChrisyd | 0:31287ae20f4a | 30 | for (i = 0; i < (4 * 256); i++) |
TheChrisyd | 0:31287ae20f4a | 31 | GD.wr16(RAM_SPRPAL + (i << 1), random_color()); |
TheChrisyd | 0:31287ae20f4a | 32 | for (i = 0; i < 16; i++) { |
TheChrisyd | 0:31287ae20f4a | 33 | GD.wr16(PALETTE16A + (i << 1), random_color()); |
TheChrisyd | 0:31287ae20f4a | 34 | GD.wr16(PALETTE16B + (i << 1), random_color()); |
TheChrisyd | 0:31287ae20f4a | 35 | } |
TheChrisyd | 0:31287ae20f4a | 36 | for (i = 0; i < 4; i++) { |
TheChrisyd | 0:31287ae20f4a | 37 | GD.wr16(PALETTE4A + (i << 1), random_color()); |
TheChrisyd | 0:31287ae20f4a | 38 | GD.wr16(PALETTE4B + (i << 1), random_color()); |
TheChrisyd | 0:31287ae20f4a | 39 | } |
TheChrisyd | 0:31287ae20f4a | 40 | |
TheChrisyd | 0:31287ae20f4a | 41 | GD.putstr(0, 8, "Four 256-color palettes"); |
TheChrisyd | 0:31287ae20f4a | 42 | for (i = 0; i < 4; i++) |
TheChrisyd | 0:31287ae20f4a | 43 | spr(200 + 20 * i, (8 * 8), i); |
TheChrisyd | 0:31287ae20f4a | 44 | |
TheChrisyd | 0:31287ae20f4a | 45 | GD.putstr(0, 12, "Two 16-color palettes"); |
TheChrisyd | 0:31287ae20f4a | 46 | for (i = 0; i < 2; i++) { |
TheChrisyd | 0:31287ae20f4a | 47 | spr(200 + 20 * i, (8 * 12), 0x4 | i); |
TheChrisyd | 0:31287ae20f4a | 48 | spr(200 + 20 * i, (8 * 12) + 20, 0x6 | i); |
TheChrisyd | 0:31287ae20f4a | 49 | } |
TheChrisyd | 0:31287ae20f4a | 50 | |
TheChrisyd | 0:31287ae20f4a | 51 | GD.putstr(0, 18, "Two 4-color palettes"); |
TheChrisyd | 0:31287ae20f4a | 52 | for (i = 0; i < 2; i++) { |
TheChrisyd | 0:31287ae20f4a | 53 | spr(200 + 20 * i, (8 * 18), 0x8 | i); |
TheChrisyd | 0:31287ae20f4a | 54 | spr(200 + 20 * i, (8 * 18) + 20, 0xa | i); |
TheChrisyd | 0:31287ae20f4a | 55 | spr(200 + 20 * i, (8 * 18) + 40, 0xc | i); |
TheChrisyd | 0:31287ae20f4a | 56 | spr(200 + 20 * i, (8 * 18) + 60, 0xe | i); |
TheChrisyd | 0:31287ae20f4a | 57 | } |
TheChrisyd | 0:31287ae20f4a | 58 | } |