/********************************************************************************************** * * raylib - transmission mission * * * Copyright (c) 2014-2018 Ramon Santamaria (@raysan5) * * This software is provided "as-is", without any express or implied warranty. In no event * will the authors be held liable for any damages arising from the use of this software. * * Permission is granted to anyone to use this software for any purpose, including commercial * applications, and to alter it and redistribute it freely, subject to the following restrictions: * * 1. The origin of this software must not be misrepresented; you must not claim that you * wrote the original software. If you use this software in a product, an acknowledgment * in the product documentation would be appreciated but is not required. * * 2. Altered source versions must be plainly marked as such, and must not be misrepresented * as being the original software. * * 3. This notice may not be removed or altered from any source distribution. * **********************************************************************************************/ #include "raylib.h" #include "screens.h" #include //---------------------------------------------------------------------------------- // Global Variables Definition (local to this module) //---------------------------------------------------------------------------------- // Title screen global variables static int framesCounter; static int finishScreen; static Texture2D texBackground; static SpriteFont fontTitle; static Sound fxTyping; static float titleSize; static Vector2 transmissionPosition; static Vector2 missionPositon; static const char textTitle[20] = "transmissionmission"; static Color titleColor; static int speedText; static int transmissionLenght; static int missionLenght; static int transmissionMaxLenght; static int missionMaxLenght; static bool writeTransmission; static bool writeMission; static bool writeEnd; //---------------------------------------------------------------------------------- // Title Screen Functions Definition //---------------------------------------------------------------------------------- static void MissionScreen(); // Title Screen Initialization logic void InitTitleScreen(void) { // TODO: Initialize TITLE screen variables here! framesCounter = 0; finishScreen = 0; texBackground = LoadTexture("resources/textures/title_background.png"); fxTyping = LoadSound("resources/audio/fx_typing.ogg"); fontTitle = LoadSpriteFontEx("resources/fonts/fontTitle.ttf", 96, 0, 0); titleSize = 44; transmissionPosition = (Vector2){519, 221}; missionPositon = (Vector2){580, 261}; titleColor = BLACK; speedText = 15; missionLenght = 0; transmissionLenght = 0; missionMaxLenght = 7; transmissionMaxLenght = 12; writeTransmission = true; writeMission = false; writeEnd = false; currentMission = 0; } // Title Screen Update logic void UpdateTitleScreen(void) { if (!writeEnd) { framesCounter ++; if (framesCounter%speedText == 0) { framesCounter = 0; if (writeTransmission) { transmissionLenght++; if (transmissionLenght == transmissionMaxLenght) { writeTransmission = false; writeMission = true; } } else if (writeMission) { missionLenght++; if (missionLenght == missionMaxLenght) { writeMission = false; writeEnd = true; } } PlaySound(fxTyping); } } if(IsButtonPressed()) { MissionScreen(); } else if (IsKeyPressed(KEY_ENTER)) MissionScreen(); } // Title Screen Draw logic void DrawTitleScreen(void) { DrawTexture(texBackground, 0,0, WHITE); DrawTextEx(fontTitle, SubText(textTitle, 0, transmissionLenght), transmissionPosition, titleSize, 0, titleColor); DrawTextEx(fontTitle, SubText(textTitle, 12, missionLenght), missionPositon, titleSize, 0, titleColor); DrawButton("start"); } // Title Screen Unload logic void UnloadTitleScreen(void) { UnloadTexture(texBackground); UnloadSound(fxTyping); UnloadSpriteFont(fontTitle); } // Title Screen should finish? int FinishTitleScreen(void) { return finishScreen; } static void MissionScreen() { transmissionLenght = transmissionMaxLenght; missionLenght = missionMaxLenght; writeEnd = true; //finishScreen = 1; // OPTIONS finishScreen = true; // GAMEPLAY //PlaySound(fxCoin); }