tangstad/helds
tangstad
/
helds
Archived
1
0
Fork 0

Added a set of chaser sprites to be used for flocking later.

This commit is contained in:
Truls Alexander Tangstad 2005-11-23 20:42:53 +00:00
parent 8e32348480
commit 9f4b7c5f76
2 changed files with 25 additions and 9 deletions

BIN
gba/cartest/data/chaser.bin Normal file

Binary file not shown.

View File

@ -18,14 +18,17 @@
//--------------------------------------------------------------------------------- //---------------------------------------------------------------------------------
#include "car_pal_bin.h" #include "car_pal_bin.h"
#include "car_bin.h" #include "car_bin.h"
#include "chaser_bin.h"
//--------------------------------------------------------------------------------- //---------------------------------------------------------------------------------
// storage space for palette data // storage space for palette data
//--------------------------------------------------------------------------------- //---------------------------------------------------------------------------------
u16 PaletteBuffer[256]; u16 PaletteBuffer[256];
#define NUMCHASERS 10
// 4 sprites and one // 4 sprites and one
OBJATTR oe_buffer[4]; OBJATTR oe_buffer[1+NUMCHASERS];
OBJAFFINE *const oa_buffer = (OBJAFFINE*)oe_buffer; OBJAFFINE *const oa_buffer = (OBJAFFINE*)oe_buffer;
unsigned int frame; unsigned int frame;
@ -46,6 +49,8 @@ int main(void)
{ {
OBJATTR*car = &oe_buffer[0]; OBJATTR*car = &oe_buffer[0];
OBJAFFINE*car_aff = &oa_buffer[0]; OBJAFFINE*car_aff = &oa_buffer[0];
// We'll make a few chasers
OBJATTR*chasers = &oe_buffer[1];
// Set up the interrupt handlers // Set up the interrupt handlers
InitInterrupt(); InitInterrupt();
@ -64,8 +69,12 @@ int main(void)
u32 white = 0x10101010; u32 white = 0x10101010;
CpuFastSet(&white, (void*)VRAM, FILL | 240*160/4); CpuFastSet(&white, (void*)VRAM, FILL | 240*160/4);
FadeToPalette((void*)car_pal_bin, 1); FadeToPalette((void*)car_pal_bin, 1);
CpuFastSet(car_bin, BITMAP_OBJ_BASE_ADR, COPY32 | car_bin_size/4); void* free_space = BITMAP_OBJ_BASE_ADR;
CpuFastSet(car_bin, free_space, COPY32 | car_bin_size/4);
free_space += car_bin_size;
CpuFastSet(chaser_bin, free_space, COPY32 | chaser_bin_size/4);
free_space += chaser_bin_size;
CpuFastSet(car_pal_bin, OBJ_COLORS, COPY32 | car_pal_bin_size/4); CpuFastSet(car_pal_bin, OBJ_COLORS, COPY32 | car_pal_bin_size/4);
car->attr2 = OBJ_CHAR(512); car->attr2 = OBJ_CHAR(512);
@ -78,13 +87,15 @@ int main(void)
car_aff->pc = 0;; car_aff->pc = 0;;
car_aff->pd = 1 << 8; car_aff->pd = 1 << 8;
u8 i;
for (i=0; i<NUMCHASERS; i++) {
chasers[i].attr2 = OBJ_CHAR(520);
}
int x = 112; int x = 112;
int y = 72; int y = 72;
while (1) { while (1) {
int xadjust = 0;
int yadjust = 0;
// This isn't very tidy, but a cleanup is always // This isn't very tidy, but a cleanup is always
// imminent... // imminent...
@ -140,11 +151,16 @@ int main(void)
else if (KeysHeld() & KEY_DOWN) else if (KeysHeld() & KEY_DOWN)
y += 1; y += 1;
car->attr1 = OBJ_SIZE(1) | OBJ_X(x+xadjust); car->attr1 = OBJ_SIZE(1) | OBJ_X(x);
car->attr0 = OBJ_256_COLOR | OBJ_DOUBLE | OBJ_ROT_SCALE_ON | OBJ_Y(y+yadjust); car->attr0 = OBJ_256_COLOR | OBJ_DOUBLE | OBJ_ROT_SCALE_ON | OBJ_Y(y);
for (i=0; i<NUMCHASERS; i++) {
chasers[i].attr1 = OBJ_X(x-(8*i));
chasers[i].attr0 = OBJ_256_COLOR | OBJ_Y(y-(8*i));
}
VBlankIntrWait(); VBlankIntrWait();
CpuFastSet(oa_buffer, OAM, COPY32 | sizeof(OBJAFFINE)/4); CpuFastSet(oe_buffer, OAM, COPY32 | sizeof(oe_buffer)/4);
} }
} }