Palettes demo for the Gameduino

Dependencies:   Gameduino mbed

Committer:
TheChrisyd
Date:
Fri Dec 21 14:01:13 2012 +0000
Revision:
1:5b85e7f47327
Parent:
0:31287ae20f4a
updated Gameduino library

Who changed what in which revision?

UserRevisionLine numberNew 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 }