/*******************************************************************************************
							 | 
						|
								*
							 | 
						|
								*   raylib - Android 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;
							 | 
						|
								
							 | 
						|
								//----------------------------------------------------------------------------------
							 | 
						|
								// Android Main entry point
							 | 
						|
								//----------------------------------------------------------------------------------
							 | 
						|
								void android_main(struct android_app *app) 
							 | 
						|
								{
							 | 
						|
								    // Initialization
							 | 
						|
								    //--------------------------------------------------------------------------------------
							 | 
						|
								    const int screenWidth = 800;
							 | 
						|
								    const int screenHeight = 450;
							 | 
						|
								    
							 | 
						|
								    GameScreen currentScreen = LOGO;
							 | 
						|
								    
							 | 
						|
								    InitWindow(screenWidth, screenHeight, app);
							 | 
						|
								    
							 | 
						|
								    // TODO: Initialize all required variables and load all required data here!
							 | 
						|
								
							 | 
						|
								    InitAudioDevice();                  // Initialize audio device
							 | 
						|
								    
							 | 
						|
								    Sound fx = LoadSound("coin.wav");   // Load WAV audio file (placed on assets folder)
							 | 
						|
								    
							 | 
						|
								    Texture2D texture = LoadTexture("raylib_logo.png");     // Load texture (placed on assets folder)
							 | 
						|
								
							 | 
						|
								    int framesCounter = 0;          // Used to count frames
							 | 
						|
								    
							 | 
						|
								    //SetTargetFPS(60);             // Not required on Android, already locked to 60 fps
							 | 
						|
								    //--------------------------------------------------------------------------------------
							 | 
						|
								    
							 | 
						|
								    // 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 4 seconds (240 frames) before jumping to TITLE screen
							 | 
						|
								                if (framesCounter > 240)
							 | 
						|
								                {
							 | 
						|
								                    currentScreen = TITLE;
							 | 
						|
								                }
							 | 
						|
								            } break;
							 | 
						|
								            case TITLE: 
							 | 
						|
								            {
							 | 
						|
								                // TODO: Update TITLE screen variables here!
							 | 
						|
								
							 | 
						|
								                // Press enter to change to GAMEPLAY screen
							 | 
						|
								                if (IsScreenTouched())
							 | 
						|
								                {
							 | 
						|
								                    PlaySound(fx);
							 | 
						|
								                    currentScreen = GAMEPLAY;
							 | 
						|
								                }
							 | 
						|
								            } break;
							 | 
						|
								            case GAMEPLAY:
							 | 
						|
								            { 
							 | 
						|
								                // TODO: Update GAMEPLAY screen variables here!
							 | 
						|
								
							 | 
						|
								                // Press enter to change to ENDING screen
							 | 
						|
								                if (IsScreenTouched())
							 | 
						|
								                {
							 | 
						|
								                    PlaySound(fx);
							 | 
						|
								                    currentScreen = ENDING;
							 | 
						|
								                } 
							 | 
						|
								            } break;
							 | 
						|
								            case ENDING: 
							 | 
						|
								            {
							 | 
						|
								                // TODO: Update ENDING screen variables here!
							 | 
						|
								
							 | 
						|
								                // Press enter to return to TITLE screen
							 | 
						|
								                if (IsScreenTouched())
							 | 
						|
								                {
							 | 
						|
								                    PlaySound(fx);
							 | 
						|
								                    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);
							 | 
						|
								                    DrawTexture(texture, screenWidth/2 - texture.width/2, screenHeight/2 - texture.height/2, WHITE);
							 | 
						|
								                    DrawText("WAIT for 4 SECONDS...", 290, 400, 20, GRAY);
							 | 
						|
								                    
							 | 
						|
								                } break;
							 | 
						|
								                case TITLE: 
							 | 
						|
								                {
							 | 
						|
								                    // TODO: Draw TITLE screen here!
							 | 
						|
								                    DrawRectangle(0, 0, screenWidth, screenHeight, GREEN);
							 | 
						|
								                    DrawText("TITLE SCREEN", 20, 20, 40, DARKGREEN);
							 | 
						|
								                    DrawText("TAP SCREEN 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("TAP SCREEN 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("TAP SCREEN to RETURN to TITLE SCREEN", 160, 220, 20, DARKBLUE);
							 | 
						|
								                    
							 | 
						|
								                } break;
							 | 
						|
								                default: break;
							 | 
						|
								            }
							 | 
						|
								        
							 | 
						|
								        EndDrawing();
							 | 
						|
								        //----------------------------------------------------------------------------------
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    // De-Initialization
							 | 
						|
								    //--------------------------------------------------------------------------------------
							 | 
						|
								    
							 | 
						|
								    // TODO: Unload all loaded data (textures, fonts, audio) here!
							 | 
						|
								
							 | 
						|
								    UnloadSound(fx);        // Unload sound data
							 | 
						|
								    
							 | 
						|
								    CloseAudioDevice();     // Close audio device (music streaming is automatically stopped)
							 | 
						|
								    
							 | 
						|
								    UnloadTexture(texture); // Unload texture data
							 | 
						|
								    
							 | 
						|
								    CloseWindow();          // Close window and OpenGL context
							 | 
						|
								    //--------------------------------------------------------------------------------------
							 | 
						|
								}
							 |