/******************************************************************************************* * * raylib - Basic Game template * * * * * 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] = ""; 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; }