# HG changeset patch # User Mike Pavone # Date 1389575263 28800 # Node ID 1ee4a5c23c95c0a1ea873c704d71057660e567c8 # Parent c0bb53eaa6f4c11efd95074ea3fe7af1446cebde# Parent 889227ec630c023b74b4d1c8f2aa2be247954d48 Merge diff -r c0bb53eaa6f4 -r 1ee4a5c23c95 src/main.c --- a/src/main.c Sun Jan 12 17:05:53 2014 -0800 +++ b/src/main.c Sun Jan 12 17:07:43 2014 -0800 @@ -1,11 +1,76 @@ #include #include "creep.h" +const u32 cursor_tiles[4*8] = { + 0x21100000, // top left + 0x10000000, + 0x10000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + + 0x00000000, // bottom left + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x10000000, + 0x10000000, + 0x21100000, + + 0x00000112, // top right + 0x00000001, + 0x00000001, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + + 0x00000000, // bottom right + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000001, + 0x00000001, + 0x00000112, + +}; + u16 tilemap[40*28]; u16 countdown; +int cursor_x = 0; +int cursor_y = 0; +const int cursor_size_px = 2 * 8; // two tiles of 8 pixels each + +void joy_event_handler(u16 joy, u16 changed, u16 state) { + u16 went_down = changed & state; + if (went_down & BUTTON_UP) { + cursor_y -= cursor_size_px; + } + if (went_down & BUTTON_DOWN) { + cursor_y += cursor_size_px; + } + if (went_down & BUTTON_LEFT) { + cursor_x -= cursor_size_px; + } + if (went_down & BUTTON_RIGHT) { + cursor_x += cursor_size_px; + } +} + int main(void) { + JOY_init(); + JOY_setEventHandler(&joy_event_handler); + + u8 cursor_tile_index = 1; + VDP_loadTileData((const u32 *)cursor_tiles, cursor_tile_index, 4, 0); + u16 i; VDP_setPlanSize(64, 32); for (i = 6; i < 40*28; i += 4) @@ -23,6 +88,7 @@ //print_distances(); for (;;) { + VDP_setSprite(0, cursor_x, cursor_y, SPRITE_SIZE(2,2), TILE_ATTR_FULL(PAL0, 1, 0, 0, cursor_tile_index), 0); VDP_waitVSync(); VDP_updateSprites(); for (i = 0; i < 28; i++)