Quick and Dirty Music Implementation

This commit is contained in:
Andre Schweiger 2015-12-27 21:41:29 +01:00
parent 74c81c1225
commit f3d6264366
10 changed files with 62 additions and 2 deletions

BIN
resources/music/floor0.raw Normal file

Binary file not shown.

BIN
resources/music/floor1.raw Normal file

Binary file not shown.

Binary file not shown.

BIN
resources/music/floor4.raw Normal file

Binary file not shown.

BIN
resources/music/menu.raw Normal file

Binary file not shown.

View file

@ -1205,6 +1205,8 @@ void switchLevel(s8 change){
if(currentLevel == 1) sf2d_set_clear_color(0xFF6C6D82); //sf2d_set_clear_color(RGBA8(0x82, 0x6D, 0x6C, 0xFF)); if(currentLevel == 1) sf2d_set_clear_color(0xFF6C6D82); //sf2d_set_clear_color(RGBA8(0x82, 0x6D, 0x6C, 0xFF));
else if(currentLevel > 1) sf2d_set_clear_color(0xFF666666); //sf2d_set_clear_color(RGBA8(0x66, 0x66, 0x66, 0xFF)); else if(currentLevel > 1) sf2d_set_clear_color(0xFF666666); //sf2d_set_clear_color(RGBA8(0x66, 0x66, 0x66, 0xFF));
else sf2d_set_clear_color(0xFF007F00); //sf2d_set_clear_color(RGBA8(0x00, 0x7F, 0x00, 0xFF)); else sf2d_set_clear_color(0xFF007F00); //sf2d_set_clear_color(RGBA8(0x00, 0x7F, 0x00, 0xFF));
updateMusic(currentLevel);
} }
bool playerIntersectsEntity(Entity* e){ bool playerIntersectsEntity(Entity* e){

View file

@ -390,6 +390,8 @@ void tickMenu(int menu){
sf2d_set_clear_color(0xFF); sf2d_set_clear_color(0xFF);
currentSelection = 0; currentSelection = 0;
currentMenu = MENU_TITLE; currentMenu = MENU_TITLE;
playMusic(music_menu);
} else if (k_decline.clicked){ } else if (k_decline.clicked){
areYouSure = false; areYouSure = false;
areYouSureSave = false; areYouSureSave = false;
@ -436,6 +438,8 @@ void tickMenu(int menu){
currentSelection = 0; currentSelection = 0;
currentMenu = MENU_TITLE; currentMenu = MENU_TITLE;
saveCurrentWorld(currentFileName, &eManager, &player, (u8*)map, (u8*)data); saveCurrentWorld(currentFileName, &eManager, &player, (u8*)map, (u8*)data);
playMusic(music_menu);
} }
break; break;
case MENU_LOSE: case MENU_LOSE:
@ -443,6 +447,8 @@ void tickMenu(int menu){
sf2d_set_clear_color(0xFF); sf2d_set_clear_color(0xFF);
currentSelection = 0; currentSelection = 0;
currentMenu = MENU_TITLE; currentMenu = MENU_TITLE;
playMusic(music_menu);
} }
break; break;
case MENU_ABOUT: case MENU_ABOUT:
@ -1145,8 +1151,12 @@ void renderMenu(int menu,int xscr,int yscr){
drawTextColor("Special Thanks to:",52,12,0xFF7F7FFF); drawTextColor("Special Thanks to:",52,12,0xFF7F7FFF);
drawTextColor("Smea",136,60,0xFF2020FF); drawTextColor("Smea",136,60,0xFF2020FF);
drawSizedTextColor("for ctrulib",116,80,1.0,0xFF2020FF); drawSizedTextColor("for ctrulib",116,80,1.0,0xFF2020FF);
drawTextColor("Xerpi",130,120,0xFFFF2020); drawTextColor("Xerpi",130,110,0xFFFF2020);
drawSizedTextColor("for sf2dlib",116,140,1.0,0xFFFF2020); drawSizedTextColor("for sf2dlib",116,130,1.0,0xFFFF2020);
drawTextColor("Music from",100,160,0xFF20FF20);
drawSizedTextColor("opengameart.org/content/",64,180,1.0,0xFF20FF20);
drawSizedTextColor("generic-8-bit-jrpg-soundtrack",48,190,1.0,0xFF20FF20);
drawText("Press to return", 58, 220); drawText("Press to return", 58, 220);
renderButtonIcon(k_decline.input & -k_decline.input, 128, 218, 1); renderButtonIcon(k_decline.input & -k_decline.input, 128, 218, 1);
sf2d_end_frame(); sf2d_end_frame();

View file

@ -16,6 +16,28 @@ void playSound(Sound snd){
csndPlaySound(8, SOUND_FORMAT_16BIT | SOUND_ONE_SHOT, 44100, 1, 0, snd.buffer, snd.buffer, snd.size); csndPlaySound(8, SOUND_FORMAT_16BIT | SOUND_ONE_SHOT, 44100, 1, 0, snd.buffer, snd.buffer, snd.size);
} }
void playMusic(Sound snd){
csndPlaySound(10, SOUND_FORMAT_16BIT | SOUND_REPEAT, 44100, 1, 0, snd.buffer, snd.buffer, snd.size);
}
void updateMusic(int lvl) {
switch(lvl) {
case 0:
playMusic(music_floor0);
break;
case 1:
playMusic(music_floor1);
break;
case 2:
case 3:
playMusic(music_floor23);
break;
case 4:
playMusic(music_floor4);
break;
}
}
void freeSounds(){ void freeSounds(){
linearFree(snd_playerHurt.buffer); linearFree(snd_playerHurt.buffer);
linearFree(snd_playerDeath.buffer); linearFree(snd_playerDeath.buffer);
@ -24,4 +46,10 @@ void freeSounds(){
linearFree(snd_pickup.buffer); linearFree(snd_pickup.buffer);
linearFree(snd_bossdeath.buffer); linearFree(snd_bossdeath.buffer);
linearFree(snd_craft.buffer); linearFree(snd_craft.buffer);
linearFree(music_menu.buffer);
linearFree(music_floor0.buffer);
linearFree(music_floor1.buffer);
linearFree(music_floor23.buffer);
linearFree(music_floor4.buffer);
} }

View file

@ -12,6 +12,10 @@ typedef struct {
void loadSound(Sound * snd, char * filename); void loadSound(Sound * snd, char * filename);
void playSound(Sound snd); void playSound(Sound snd);
void playMusic(Sound snd);
void updateMusic(int lvl);
void freeSounds(); void freeSounds();
Sound snd_playerHurt; Sound snd_playerHurt;
@ -21,3 +25,9 @@ Sound snd_test;
Sound snd_pickup; Sound snd_pickup;
Sound snd_bossdeath; Sound snd_bossdeath;
Sound snd_craft; Sound snd_craft;
Sound music_menu;
Sound music_floor0;
Sound music_floor1;
Sound music_floor23;
Sound music_floor4;

View file

@ -81,6 +81,8 @@ void setupGame(bool loadUpWorld) {
initPlayer(); initPlayer();
loadWorld(currentFileName, &eManager, &player, (u8*) map, (u8*) data); loadWorld(currentFileName, &eManager, &player, (u8*) map, (u8*) data);
} }
updateMusic(currentLevel);
initMiniMap(loadUpWorld); initMiniMap(loadUpWorld);
shouldRenderMap = false; shouldRenderMap = false;
@ -176,7 +178,15 @@ int main() {
loadSound(&snd_pickup, "resources/pickup.raw"); loadSound(&snd_pickup, "resources/pickup.raw");
loadSound(&snd_bossdeath, "resources/bossdeath.raw"); loadSound(&snd_bossdeath, "resources/bossdeath.raw");
loadSound(&snd_craft, "resources/craft.raw"); loadSound(&snd_craft, "resources/craft.raw");
loadSound(&music_menu, "resources/music/menu.raw");
loadSound(&music_floor0, "resources/music/floor0.raw");
loadSound(&music_floor1, "resources/music/floor1.raw");
loadSound(&music_floor23, "resources/music/floor2_3.raw");
loadSound(&music_floor4, "resources/music/floor4.raw");
playMusic(music_menu);
bakeLights(); bakeLights();