| /******************************************************************************************* | |
| * | |
| *   raylib - Simple Game template | |
| * | |
| *   <Game title> | |
| *   <Game description> | |
| * | |
| *   This game has been created using raylib (www.raylib.com) | |
| *   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) | |
| * | |
| *   Copyright (c) 2014-2018 Ramon Santamaria (@raysan5) | |
| * | |
| ********************************************************************************************/ | |
| 
 | |
| #include "raylib.h" | |
|  | |
| //---------------------------------------------------------------------------------- | |
| // Types and Structures Definition | |
| //---------------------------------------------------------------------------------- | |
| typedef enum GameScreen { LOGO = 0, TITLE, GAMEPLAY, ENDING } GameScreen; | |
| 
 | |
| //---------------------------------------------------------------------------------- | |
| // Main entry point | |
| //---------------------------------------------------------------------------------- | |
| int main(void) | |
| { | |
|     // Initialization (Note windowTitle is unused on Android) | |
|     //-------------------------------------------------------------------------------------- | |
|     const int screenWidth = 800; | |
|     const int screenHeight = 450; | |
| 
 | |
|     InitWindow(screenWidth, screenHeight, "raylib template - simple game"); | |
| 
 | |
|     GameScreen currentScreen = LOGO; | |
| 
 | |
|     // TODO: Initialize all required variables and load all required data here! | |
|  | |
|     int framesCounter = 0;          // Useful to count frames | |
|  | |
|     SetTargetFPS(60);               // Set desired framerate (frames-per-second) | |
|     //-------------------------------------------------------------------------------------- | |
|      | |
|     // Main game loop | |
|     while (!WindowShouldClose())    // Detect window close button or ESC key | |
|     { | |
|         // Update | |
|         //---------------------------------------------------------------------------------- | |
|         switch(currentScreen)  | |
|         { | |
|             case LOGO:  | |
|             { | |
|                 // TODO: Update LOGO screen variables here! | |
|  | |
|                 framesCounter++;    // Count frames | |
|  | |
|                 // Wait for 2 seconds (120 frames) before jumping to TITLE screen | |
|                 if (framesCounter > 120) | |
|                 { | |
|                     currentScreen = TITLE; | |
|                 } | |
|             } break; | |
|             case TITLE:  | |
|             { | |
|                 // TODO: Update TITLE screen variables here! | |
|  | |
|                 // Press enter to change to GAMEPLAY screen | |
|                 if (IsKeyPressed(KEY_ENTER) || IsGestureDetected(GESTURE_TAP)) | |
|                 { | |
|                     currentScreen = GAMEPLAY; | |
|                 } | |
|             } break; | |
|             case GAMEPLAY: | |
|             {  | |
|                 // TODO: Update GAMEPLAY screen variables here! | |
|  | |
|                 // Press enter to change to ENDING screen | |
|                 if (IsKeyPressed(KEY_ENTER) || IsGestureDetected(GESTURE_TAP)) | |
|                 { | |
|                     currentScreen = ENDING; | |
|                 }  | |
|             } break; | |
|             case ENDING:  | |
|             { | |
|                 // TODO: Update ENDING screen variables here! | |
|  | |
|                 // Press enter to return to TITLE screen | |
|                 if (IsKeyPressed(KEY_ENTER) || IsGestureDetected(GESTURE_TAP)) | |
|                 { | |
|                     currentScreen = TITLE; | |
|                 }   | |
|             } break; | |
|             default: break; | |
|         } | |
|         //---------------------------------------------------------------------------------- | |
|          | |
|         // Draw | |
|         //---------------------------------------------------------------------------------- | |
|         BeginDrawing(); | |
|          | |
|             ClearBackground(RAYWHITE); | |
|              | |
|             switch(currentScreen)  | |
|             { | |
|                 case LOGO:  | |
|                 { | |
|                     // TODO: Draw LOGO screen here! | |
|                     DrawText("LOGO SCREEN", 20, 20, 40, LIGHTGRAY); | |
|                     DrawText("WAIT for 2 SECONDS...", 290, 220, 20, GRAY); | |
|                      | |
|                 } break; | |
|                 case TITLE:  | |
|                 { | |
|                     // TODO: Draw TITLE screen here! | |
|                     DrawRectangle(0, 0, screenWidth, screenHeight, GREEN); | |
|                     DrawText("TITLE SCREEN", 20, 20, 40, DARKGREEN); | |
|                     DrawText("PRESS ENTER or TAP to JUMP to GAMEPLAY SCREEN", 120, 220, 20, DARKGREEN); | |
|                      | |
|                 } break; | |
|                 case GAMEPLAY: | |
|                 {  | |
|                     // TODO: Draw GAMEPLAY screen here! | |
|                     DrawRectangle(0, 0, screenWidth, screenHeight, PURPLE); | |
|                     DrawText("GAMEPLAY SCREEN", 20, 20, 40, MAROON); | |
|                     DrawText("PRESS ENTER or TAP to JUMP to ENDING SCREEN", 130, 220, 20, MAROON); | |
| 
 | |
|                 } break; | |
|                 case ENDING:  | |
|                 { | |
|                     // TODO: Draw ENDING screen here! | |
|                     DrawRectangle(0, 0, screenWidth, screenHeight, BLUE); | |
|                     DrawText("ENDING SCREEN", 20, 20, 40, DARKBLUE); | |
|                     DrawText("PRESS ENTER or TAP to RETURN to TITLE SCREEN", 120, 220, 20, DARKBLUE); | |
|                      | |
|                 } break; | |
|                 default: break; | |
|             } | |
|          | |
|         EndDrawing(); | |
|         //---------------------------------------------------------------------------------- | |
|     } | |
| 
 | |
|     // De-Initialization | |
|     //-------------------------------------------------------------------------------------- | |
|      | |
|     // TODO: Unload all loaded data (textures, fonts, audio) here! | |
|      | |
|     CloseWindow();        // Close window and OpenGL context | |
|     //-------------------------------------------------------------------------------------- | |
|  | |
|     return 0; | |
| }
 |