Created
December 30, 2015 03:03
-
-
Save dmalves/de34b9a56be2c9d5ebb0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/******************************************************************************************* | |
* | |
* 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); | |
InitGesturesSystem(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 (IsGestureDetected()) | |
{ | |
PlaySound(fx); | |
currentScreen = GAMEPLAY; | |
} | |
} break; | |
case GAMEPLAY: | |
{ | |
// TODO: Update GAMEPLAY screen variables here! | |
// Press enter to change to ENDING screen | |
if (IsGestureDetected()) | |
{ | |
PlaySound(fx); | |
currentScreen = ENDING; | |
} | |
} break; | |
case ENDING: | |
{ | |
// TODO: Update ENDING screen variables here! | |
// Press enter to return to TITLE screen | |
if (IsGestureDetected()) | |
{ | |
PlaySound(fx); | |
currentScreen = TITLE; | |
} | |
} break; | |
default: break; | |
} | |
// update gestures | |
UpdateGestures(); | |
//---------------------------------------------------------------------------------- | |
// 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 | |
//-------------------------------------------------------------------------------------- | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment