| /******************************************************************************************* | |
| * | |
| *   raylib - Basic Game template | |
| * | |
| *   <Game title> | |
| *   <Game description> | |
| * | |
| *   This game has been created using raylib v1.2 (www.raylib.com) | |
| *   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) | |
| * | |
| *   Copyright (c) 2014 Ramon Santamaria (Ray San - raysan@raysanweb.com) | |
| * | |
| ********************************************************************************************/ | |
| 
 | |
| #include "raylib.h" | |
|  | |
| //---------------------------------------------------------------------------------- | |
| // Types and Structures Definition | |
| //---------------------------------------------------------------------------------- | |
| typedef enum GameScreen { LOGO, TITLE, GAMEPLAY, ENDING } GameScreen; | |
| 
 | |
| //---------------------------------------------------------------------------------- | |
| // Main entry point | |
| //---------------------------------------------------------------------------------- | |
| int main() | |
| { | |
|     // Initialization | |
|     //-------------------------------------------------------------------------------------- | |
|     const int screenWidth = 800; | |
|     const int screenHeight = 450; | |
| 	const char windowTitle[30] = "<game name goes here>"; | |
|      | |
|     GameScreen currentScreen = LOGO; | |
|      | |
|     InitWindow(screenWidth, screenHeight, windowTitle); | |
|      | |
|     // TODO: Initialize all required variables and load all required data here! | |
|  | |
|     int framesCounter = 0;          // Used to count frames | |
|      | |
|     SetTargetFPS(60); | |
|     //-------------------------------------------------------------------------------------- | |
|      | |
|     // 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)) | |
|                 { | |
|                     currentScreen = GAMEPLAY; | |
|                 } | |
|             } break; | |
|             case GAMEPLAY: | |
|             {  | |
|                 // TODO: Update GAMEPLAY screen variables here! | |
|  | |
|                 // Press enter to change to ENDING screen | |
|                 if (IsKeyPressed(KEY_ENTER)) | |
|                 { | |
|                     currentScreen = ENDING; | |
|                 }  | |
|             } break; | |
|             case ENDING:  | |
|             { | |
|                 // TODO: Update ENDING screen variables here! | |
|  | |
|                 // Press enter to return to TITLE screen | |
|                 if (IsKeyPressed(KEY_ENTER)) | |
|                 { | |
|                     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 to JUMP to GAMEPLAY SCREEN", 160, 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 to JUMP to ENDING SCREEN", 170, 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 to RETURN to TITLE SCREEN", 160, 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; | |
| } |