diff options
Diffstat (limited to 'games/wave_collector/wave_collector.c')
| -rw-r--r-- | games/wave_collector/wave_collector.c | 308 |
1 files changed, 0 insertions, 308 deletions
diff --git a/games/wave_collector/wave_collector.c b/games/wave_collector/wave_collector.c deleted file mode 100644 index 64881816..00000000 --- a/games/wave_collector/wave_collector.c +++ /dev/null @@ -1,308 +0,0 @@ -/******************************************************************************************* -* -* WAVE COLLECTOR [GLOBAL GAME JAM 2017] -* -* The ultimate wave particles collector is here! -* You must follow the wave and collect all the particles -* The level is actually the wave and the wave is the level! -* Be fast! Be smart! Be the best wave collector! -* -* This game has been created using raylib v1.7 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2017 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" -#include "screens/screens.h" // NOTE: Defines global variable: currentScreen - -#include <stdlib.h> - -#include <stdio.h> // Required for: printf() -#include <string.h> // Required for: strcpy() - -#if defined(PLATFORM_WEB) - #include <emscripten/emscripten.h> -#endif - -//---------------------------------------------------------------------------------- -// Global Variables Definition (local to this module) -//---------------------------------------------------------------------------------- -const int screenWidth = 1280; -const int screenHeight = 720; - -// Required variables to manage screen transitions (fade-in, fade-out) -static float transAlpha = 0.0f; -static bool onTransition = false; -static bool transFadeOut = false; -static int transFromScreen = -1; -static int transToScreen = -1; - -// NOTE: Some global variables that require to be visible for all screens, -// are defined in screens.h (i.e. currentScreen) - -//---------------------------------------------------------------------------------- -// Local Functions Declaration -//---------------------------------------------------------------------------------- -static void ChangeToScreen(int screen); // No transition effect - -static void TransitionToScreen(int screen); -static void UpdateTransition(void); -static void DrawTransition(void); - -static void UpdateDrawFrame(void); // Update and Draw one frame - -//---------------------------------------------------------------------------------- -// Main entry point -//---------------------------------------------------------------------------------- -int main(int argc, char *argv[]) -{ - // Initialization - //--------------------------------------------------------- -#if defined(PLATFORM_DESKTOP) - // TODO: Support for dropped files on the exe - - // Support command line argument for custom music file - if (argc > 1) - { - // Just supporting an input argument parameter!!! o__O - - if ((IsFileExtension(argv[1], ".ogg")) || - (IsFileExtension(argv[1], ".wav"))) - { - if (sampleFilename != NULL) free(sampleFilename); - - sampleFilename = (char *)malloc(256); - strcpy(sampleFilename, argv[1]); - - printf("Custom audio file: %s", sampleFilename); - } - } -#endif - -#ifndef PLATFORM_ANDROID - SetConfigFlags(FLAG_MSAA_4X_HINT); -#endif - // Note windowTitle is unused on Android - InitWindow(screenWidth, screenHeight, "WAVE COLLECTOR [GGJ17]"); - - // Global data loading (assets that must be available in all screens, i.e. fonts) - InitAudioDevice(); - - font = LoadFont("resources/font.fnt"); - music = LoadMusicStream("resources/audio/wave.ogg"); - - SetMusicVolume(music, 1.0f); - - // Setup and Init first screen - currentScreen = LOGO; - InitLogoScreen(); - //InitTitleScreen(); - //InitGameplayScreen(); - //InitEndingScreen(); - -#if defined(PLATFORM_WEB) - emscripten_set_main_loop(UpdateDrawFrame, 0, 1); -#else - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - UpdateDrawFrame(); - } -#endif - - // De-Initialization - //-------------------------------------------------------------------------------------- - switch (currentScreen) - { - case LOGO: UnloadLogoScreen(); break; - case TITLE: UnloadTitleScreen(); break; - case GAMEPLAY: UnloadGameplayScreen(); break; - case ENDING: UnloadEndingScreen(); break; - default: break; - } - - // Unload all global loaded data (i.e. fonts) here! - UnloadFont(font); - UnloadMusicStream(music); - - CloseAudioDevice(); // Close audio context - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} - -//---------------------------------------------------------------------------------- -// Module specific Functions Definition -//---------------------------------------------------------------------------------- - -// Change to next screen, no transition -static void ChangeToScreen(int screen) -{ - // Unload current screen - switch (currentScreen) - { - case LOGO: UnloadLogoScreen(); break; - case TITLE: UnloadTitleScreen(); break; - case GAMEPLAY: UnloadGameplayScreen(); break; - case ENDING: UnloadEndingScreen(); break; - default: break; - } - - // Init next screen - switch (screen) - { - case LOGO: InitLogoScreen(); break; - case TITLE: InitTitleScreen(); break; - case GAMEPLAY: InitGameplayScreen(); break; - case ENDING: InitEndingScreen(); break; - default: break; - } - - currentScreen = screen; -} - -// Define transition to next screen -static void TransitionToScreen(int screen) -{ - onTransition = true; - transFadeOut = false; - transFromScreen = currentScreen; - transToScreen = screen; - transAlpha = 0.0f; -} - -// Update transition effect -static void UpdateTransition(void) -{ - if (!transFadeOut) - { - transAlpha += 0.05f; - - // NOTE: Due to float internal representation, condition jumps on 1.0f instead of 1.05f - // For that reason we compare against 1.01f, to avoid last frame loading stop - if ((int)transAlpha >= 1) - { - transAlpha = 1.0f; - - // Unload current screen - switch (transFromScreen) - { - case LOGO: UnloadLogoScreen(); break; - case TITLE: UnloadTitleScreen(); break; - case GAMEPLAY: UnloadGameplayScreen(); break; - case ENDING: UnloadEndingScreen(); break; - default: break; - } - - // Load next screen - switch (transToScreen) - { - case LOGO: InitLogoScreen(); break; - case TITLE: InitTitleScreen(); break; - case GAMEPLAY: InitGameplayScreen(); break; - case ENDING: InitEndingScreen(); break; - default: break; - } - - currentScreen = transToScreen; - - // Activate fade out effect to next loaded screen - transFadeOut = true; - } - } - else // Transition fade out logic - { - transAlpha -= 0.05f; - - if ((int)transAlpha <= 0) - { - transAlpha = 0.0f; - transFadeOut = false; - onTransition = false; - transFromScreen = -1; - transToScreen = -1; - } - } -} - -// Draw transition effect (full-screen rectangle) -static void DrawTransition(void) -{ - DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), Fade(RAYWHITE, transAlpha)); -} - -// Update and draw game frame -static void UpdateDrawFrame(void) -{ - // Update - //---------------------------------------------------------------------------------- - if (!onTransition) - { - switch(currentScreen) - { - case LOGO: - { - UpdateLogoScreen(); - - if (FinishLogoScreen()) TransitionToScreen(TITLE); - - } break; - case TITLE: - { - UpdateTitleScreen(); - - if (FinishTitleScreen() == 1) TransitionToScreen(GAMEPLAY); - - } break; - case GAMEPLAY: - { - UpdateGameplayScreen(); - - if (FinishGameplayScreen() == 1) TransitionToScreen(ENDING); - //else if (FinishGameplayScreen() == 2) TransitionToScreen(TITLE); - - } break; - case ENDING: - { - UpdateEndingScreen(); - - if (FinishEndingScreen() == 1) TransitionToScreen(TITLE); - - } break; - default: break; - } - } - else UpdateTransition(); // Update transition (fade-in, fade-out) - - // TODO: Review! It breaks the game... issues with audio buffering... - if (currentScreen != ENDING) UpdateMusicStream(music); - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - switch(currentScreen) - { - case LOGO: DrawLogoScreen(); break; - case TITLE: DrawTitleScreen(); break; - case GAMEPLAY: DrawGameplayScreen(); break; - case ENDING: DrawEndingScreen(); break; - default: break; - } - - // Draw full screen rectangle in front of everything - if (onTransition) DrawTransition(); - - EndDrawing(); - //---------------------------------------------------------------------------------- -} |
