|
|
- /**********************************************************************************************
- *
- * raylib - Advance Game template
- *
- * Gameplay Screen Functions Definitions (Init, Update, Draw, Unload)
- *
- * Copyright (c) 2014-2020 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"
-
- static bool doHairCut = false;
- static bool doHairTint = false;
- static bool doEyeLiner = false;
- static bool doLipStick = false;
- static bool doNose = false;
- static bool doGlasses = false;
-
- //----------------------------------------------------------------------------------
- // Global Variables Definition (local to this module)
- //----------------------------------------------------------------------------------
-
- const unsigned int headColors[6] = { 0xffe29bff, 0xfed5a8ff, 0xad8962ff, 0xfff1b8ff, 0xffd6c4ff, 0xd49c8dff };
- const unsigned int hairColors[10] = { 0xf5bf60ff, 0xaa754aff, 0x974e14ff, 0xf36347ff, 0x87f347ff, 0xfc48d0ff, 0x3b435dff, 0x5f5e60ff, 0xe7e7e7ff, 0xfb386bff };
-
- // Gameplay screen global variables
- static int framesCounter = 0;
- static int finishScreen = 0;
-
- static RenderTexture target = { 0 };
-
- //----------------------------------------------------------------------------------
- // Gameplay Screen Functions Definition
- //----------------------------------------------------------------------------------
-
- // Gameplay Screen Initialization logic
- void InitGameplayScreen(void)
- {
- // Initialize GAMEPLAY screen variables
- framesCounter = 0;
- finishScreen = 0;
-
- target = LoadRenderTexture(720, 720);
- SetTextureFilter(target.texture, FILTER_BILINEAR);
-
- // Generate player character!
- //player = GenerateCharacter();
- playerBase = player;
-
- // Generate dating character!
- dating = GenerateCharacter();
- datingBase = dating;
-
- // TODO: Generate dating character likes
- // For the different types of properties we assign random like values: 0% (total-dislike) -> 100% (total-like)
-
- // The total match point will be the (like accumulated amount)/(num properties)
- // Some of the elements add points or remove points
-
- // At the end we can show the like percentadge of every element
-
- doHairCut = false;
- doHairTint = false;
- doEyeLiner = false;
- doLipStick = false;
- doNose = false;
- doGlasses = false;
- }
-
- // Gameplay Screen Update logic
- void UpdateGameplayScreen(void)
- {
- if (IsKeyPressed(KEY_SPACE))
- {
- player = GenerateCharacter();
- playerBase = player;
- }
-
- if (IsKeyPressed(KEY_ENTER)) finishScreen = 1;
- }
-
- // Gameplay Screen Draw logic
- void DrawGameplayScreen(void)
- {
- // Draw background
- DrawTexture(background, 0, 0, GetColor(0xf6aa60ff));
-
- // Draw left menu buttons
- GuiButton((Rectangle){ 20, 40, 300, 60 }, "RE-TOUCH:", 2);
-
- if (GuiButton((Rectangle){ 20, 40 + 90, 300, 80 }, "HAIR TINT", doHairTint? 3 : -1))
- {
- doHairTint = true;
- player.colHair = hairColors[GetRandomValue(0, 9)];
- }
- if (GuiButton((Rectangle){ 20, 40 + 180, 300, 80 }, "HAIR", doHairCut? 3 : -1))
- {
- doHairCut = true;
- player.hair = GetRandomValue(0, texHair.width/BASE_HAIR_WIDTH);
-
- }
- if (GuiButton((Rectangle){ 20, 40 + 270, 300, 80 }, "EYES", doEyeLiner? 3 : -1))
- {
- doEyeLiner = true;
- player.eyes = GetRandomValue(0, texEyes.width/BASE_EYES_WIDTH - 1);
- }
- if (GuiButton((Rectangle){ 20, 40 + 360, 300, 80 }, "NOSE", doNose? 3 : -1))
- {
- doNose = true;
- player.nose = GetRandomValue(0, texNose.width/BASE_NOSE_WIDTH - 1);
- }
- if (GuiButton((Rectangle){ 20, 40 + 450, 300, 80 }, "LIPS", doLipStick? 3 : -1))
- {
- doLipStick = true;
- player.mouth = GetRandomValue(0, texMouth.width/BASE_MOUTH_WIDTH - 1);
- }
- if (GuiButton((Rectangle){ 20, 40 + 540, 300, 80 }, "GLASSES", 3))
- {
- doGlasses = true;
- }
-
- // Draw player
- DrawCharacter(player, (Vector2){ GetScreenWidth()/2 - 125, 80 });
-
- // Draw dating view
- GuiButton((Rectangle){ 970, 40, 260, 60 }, "DATING:", 2);
- GuiButton((Rectangle){ 970, 40 + 70, 260, 260 }, " ", 0);
-
- BeginTextureMode(target);
- DrawCharacter(dating, (Vector2){ (720 - 250)/2, (720 - 500)/2 });
- EndTextureMode();
-
- DrawTexturePro(target.texture, (Rectangle){ 0.0f, 0.0f, (float)target.texture.width, (float)-target.texture.height }, (Rectangle){ 970, 40 + 70, 260, 260 }, (Vector2){ 0, 0 }, 0.0f, WHITE);
-
- // Draw left button: date!
- if (GuiButton((Rectangle){ 970, 580, 260, 90 }, "GO DATE!", -1))
- {
- finishScreen = 1;
- }
- }
-
- // Gameplay Screen Unload logic
- void UnloadGameplayScreen(void)
- {
- // Unload required textures
- }
-
- // Gameplay Screen should finish?
- int FinishGameplayScreen(void)
- {
- return finishScreen;
- }
|