/******************************************************************************************* * * raylib - Android 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; //---------------------------------------------------------------------------------- // 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 PlayMusicStream("ambient.ogg"); SetTargetFPS(60); // Not required on Android, already locked to 60 fps //-------------------------------------------------------------------------------------- // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- UpdateMusicStream(); 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 (GetGestureType() == GESTURE_TAP) { PlaySound(fx); currentScreen = GAMEPLAY; } } break; case GAMEPLAY: { // TODO: Update GAMEPLAY screen variables here! // Press enter to change to ENDING screen if (GetGestureType() == GESTURE_TAP) { PlaySound(fx); currentScreen = ENDING; } } break; case ENDING: { // TODO: Update ENDING screen variables here! // Press enter to return to TITLE screen if (GetGestureType() == GESTURE_TAP) { 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 //-------------------------------------------------------------------------------------- }