| /******************************************************************************************* | |
| * | |
| *   raylib game - Dr. Turtle & Mr. Gamera | |
| * | |
| *   Welcome to raylib! | |
| * | |
| *   To test examples, just press F6 and execute raylib_compile_execute script | |
| *   Note that compiled executable is placed in the same folder as .c file | |
| * | |
| *   You can find all basic examples on C:\raylib\raylib\examples folder or | |
| *   raylib official webpage: www.raylib.com | |
| * | |
| *   Enjoy using raylib. :) | |
| * | |
| *   This game has been created using raylib 1.1 (www.raylib.com) | |
| *   raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) | |
| * | |
| *   Copyright (c) 2014 Ramon Santamaria (@raysan5) | |
| * | |
| ********************************************************************************************/ | |
| 
 | |
| #include "raylib.h" | |
|  | |
| #define MAX_ENEMIES 10 | |
|  | |
| typedef enum { TITLE, GAMEPLAY, ENDING } GameScreen; | |
| 
 | |
| int main() | |
| { | |
|     // Initialization | |
|     //-------------------------------------------------------------------------------------- | |
|     const int screenWidth = 1280; | |
|     const int screenHeight = 720; | |
|      | |
|     // Init window | |
|     InitWindow(screenWidth, screenHeight, "Dr. Turtle & Mr. GAMERA"); | |
|      | |
|     // Load game resources: textures | |
|     Texture2D sky = LoadTexture("resources/sky.png"); | |
|     Texture2D mountains = LoadTexture("resources/mountains.png"); | |
|     Texture2D sea = LoadTexture("resources/sea.png"); | |
| 
 | |
|     // Define scrolling variables | |
|     int backScrolling = 0; | |
|     int seaScrolling = 0; | |
|      | |
|     // Define current screen | |
|     GameScreen currentScreen = TITLE; | |
|      | |
|     SetTargetFPS(60);       // Setup game frames per second | |
|     //-------------------------------------------------------------------------------------- | |
|      | |
|     // Main game loop | |
|     while (!WindowShouldClose())    // Detect window close button or ESC key | |
|     { | |
|         // Update | |
|         //---------------------------------------------------------------------------------- | |
|  | |
|         // Game screens management | |
|         switch (currentScreen) | |
|         { | |
|             case TITLE: | |
|             { | |
|                 // Sea scrolling | |
|                 seaScrolling -= 2; | |
|                 if (seaScrolling <= -screenWidth) seaScrolling = 0;  | |
|              | |
|                 // Press enter to change to gameplay screen | |
|                 if (IsKeyPressed(KEY_ENTER)) | |
|                 { | |
|                     currentScreen = GAMEPLAY; | |
|                 } | |
|                  | |
|             } break; | |
|             case GAMEPLAY: | |
|             { | |
|                 // Background scrolling logic | |
|                 backScrolling--; | |
|                 if (backScrolling <= -screenWidth) backScrolling = 0;  | |
|                  | |
|                 // Sea scrolling logic | |
|                 seaScrolling -= 8; | |
|                 if (seaScrolling <= -screenWidth) seaScrolling = 0; | |
|                  | |
|                 // Press enter to change to ending screen | |
|                 if (IsKeyPressed(KEY_ENTER)) | |
|                 { | |
|                     currentScreen = ENDING; | |
|                 } | |
|                  | |
|             } break; | |
|             case ENDING: | |
|             { | |
|                 // Press enter to change to title screen | |
|                 if (IsKeyPressed(KEY_ENTER)) | |
|                 { | |
|                     currentScreen = TITLE; | |
|                 } | |
|        | |
|             } break; | |
|             default: break; | |
|         } | |
|         //---------------------------------------------------------------------------------- | |
|          | |
|         // Draw | |
|         //---------------------------------------------------------------------------------- | |
|         BeginDrawing(); | |
|          | |
|             ClearBackground(RAYWHITE); | |
|              | |
|             // Draw background (common to all screens) | |
|             DrawTexture(sky, 0, 0, WHITE); | |
|              | |
|             DrawTexture(mountains, backScrolling, 0, WHITE); | |
|             DrawTexture(mountains, screenWidth + backScrolling, 0, WHITE); | |
|              | |
|             DrawTexture(sea, seaScrolling, 0, BLUE); | |
|             DrawTexture(sea, screenWidth + seaScrolling, 0, BLUE); | |
|              | |
|             switch (currentScreen) | |
|             { | |
|                 case TITLE: | |
|                 { | |
|                     // Draw title screen | |
|                     DrawText("PRESS ENTER", 450, 420, 40, BLACK); | |
|                  | |
|                 } break; | |
|                 case GAMEPLAY: | |
|                 { | |
|                     // Draw gameplay screen | |
|                     DrawText("GAMEPLAY SCREEN", 20, 20, 40, MAROON); | |
|                  | |
|                 } break; | |
|                 case ENDING: | |
|                 { | |
|                     // Draw ending screen | |
|                      | |
|                     // Draw a transparent black rectangle that covers all screen | |
|                     DrawRectangle(0, 0, screenWidth, screenHeight, Fade(BLACK, 0.4f)); | |
|                      | |
|                     DrawText("ENDING SCREEN", 20, 20, 40, DARKBLUE); | |
|                      | |
|                 } break; | |
|                 default: break; | |
|             } | |
| 
 | |
|         EndDrawing(); | |
|         //---------------------------------------------------------------------------------- | |
|     } | |
| 
 | |
|     // De-Initialization | |
|     //-------------------------------------------------------------------------------------- | |
|      | |
|     // Unload textures | |
|     UnloadTexture(sky); | |
|     UnloadTexture(mountains); | |
|     UnloadTexture(sea); | |
| 
 | |
|     CloseWindow();          // Close window and OpenGL context | |
|     //-------------------------------------------------------------------------------------- | |
|      | |
|     return 0; | |
| } |