Skip to content

Instantly share code, notes, and snippets.

@videlais

videlais/main.c Secret

Created July 4, 2016 05:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save videlais/ba8a8218b50294ee38215484f7109ac9 to your computer and use it in GitHub Desktop.
Save videlais/ba8a8218b50294ee38215484f7109ac9 to your computer and use it in GitHub Desktop.
main.c for GBDK examples
#include <gb/gb.h>
#include "alpha.c"
#include "helloWorld.c"
#include "blankScreen.c"
#include "sprites.c"
void init();
void checkInput();
void updateSwitches();
// The player array will hold the player's position as X ([0]) and Y ([1])
UINT8 player[2];
void main() {
init();
while(1) {
checkInput(); // Check for user input (and act on it)
updateSwitches(); // Make sure the SHOW_SPRITES and SHOW_BKG switches are on each loop
wait_vbl_done(); // Wait until VBLANK to avoid corrupting memory
}
}
void init() {
DISPLAY_ON; // Turn on the display
set_bkg_data(0, 47, alpha); // Load 47 tiles into background memory
// Use the 'helloWorld' array to write background tiles starting at 0,6 (tile positions)
// and write for 10 tiles in width and 2 tiles in height
set_bkg_tiles(0,6,10,2,helloWorld);
// Load the the 'sprites' tiles into sprite memory
set_sprite_data(0, 1, sprites);
// Set the first movable sprite (0) to be the first tile in the sprite memory (0)
set_sprite_tile(0,0);
player[0] = 80;
player[1] = 72;
}
void updateSwitches() {
HIDE_WIN;
SHOW_SPRITES;
SHOW_BKG;
}
void checkInput() {
if (joypad() & J_B) {
// Use the 'blankScreen' array to write background tiles starting at 0,0 (tile positions)
// and for 20 tiles in width and 18 tiles in height
set_bkg_tiles(0,0,20,18,blankScreen);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment