12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #include <SPI.h>
- #include <GD.h>
- #include "pickups2.h"
- #include "sprites256.h"
- struct sprite
- {
- int x;
- int y;
- char vx, vy;
- } sprites[256];
- void plot()
- {
- int i;
- for (i = 0; i < 256; i++) {
- GD.sprite(i, sprites[i].x >> 4, sprites[i].y >> 4, i % 47, 0, 0);
- }
- }
- #define LWALL (0 << 4)
- #define RWALL (384 << 4)
- #define TWALL (0 << 4)
- #define BWALL (284 << 4)
- void move()
- {
- int i;
- sprite *ps;
- for (i = 256, ps = sprites; i--; ps++) {
- if ((ps->x <= LWALL)) {
- ps->x = LWALL;
- ps->vx = -ps->vx;
- }
- if ((ps->x >= RWALL)) {
- ps->x = RWALL;
- ps->vx = -ps->vx;
- }
- if ((ps->y <= TWALL)) {
- ps->y = TWALL;
- ps->vy = -ps->vy;
- }
- if ((ps->y >= BWALL)) {
- ps->y = BWALL;
- ps->vy = -ps->vy;
- }
- ps->x += ps->vx;
- ps->y += ps->vy;
- }
- }
- void setup()
- {
- int i;
- GD.begin();
-
- GD.copy(RAM_PIC, sprites256_pic, sizeof(sprites256_pic));
- GD.copy(RAM_CHR, sprites256_chr, sizeof(sprites256_chr));
- GD.copy(RAM_PAL, sprites256_pal, sizeof(sprites256_pal));
- GD.copy(RAM_SPRIMG, pickups2_img, sizeof(pickups2_img));
- GD.copy(RAM_SPRPAL, pickups2_pal, sizeof(pickups2_pal));
- for (i = 0; i < 256; i++) {
- sprites[i].x = random(400 << 4);
- sprites[i].y = random(300 << 4);
- sprites[i].vx = random(-16,16);
- sprites[i].vy = random(-16,16);
- }
- }
- void loop()
- {
- plot();
- move();
- }
|