diff options
| author | Ritabrata Das <[email protected]> | 2026-09-09 21:07:21 +0530 |
|---|---|---|
| committer | Ritabrata Das <[email protected]> | 2026-09-09 21:07:21 +0530 |
| commit | ffd968a26826108ca9fb23d46ed5789260852eb7 (patch) | |
| tree | 3861d08dae1c28f547952dbcc16e04ae7b5286b5 /screen | |
intial commit
Diffstat (limited to 'screen')
| -rw-r--r-- | screen/gameplay.cpp | 38 | ||||
| -rw-r--r-- | screen/main_menu.cpp | 43 |
2 files changed, 81 insertions, 0 deletions
diff --git a/screen/gameplay.cpp b/screen/gameplay.cpp new file mode 100644 index 0000000..2f30c78 --- /dev/null +++ b/screen/gameplay.cpp @@ -0,0 +1,38 @@ +#define DEBUG false + +#include <raylib.h> +#include <raymath.h> + +#include "../lib/gameState.hpp" +#include "../lib/dialogue.hpp" +#include "../game/story.hpp" +#include "../lib/button.hpp" + +#define UI_PADDING_BOTTOM 10 +#define UI_BUTTON_SIZE 32 + + +void drawGameplay(GameState &gs){ + if (gs.timeSinceSceneChange == -1) { + DrawTextureV(getCurrentScene(gs), ZERO_VEC, WHITE); + } else { + DrawSceneChange(gs); + } + if (gs.curExp != NEUTRAL && !IsDialogRunning(gs)) { + gs.curExp = NEUTRAL; + } + drawCirno(gs); + if (gs.curExp != HURT && gs.flowerOnHead) { + DrawTextureV(gs.AssetManager.load("flower"), ZERO_VEC, WHITE); + } + if (DEBUG) { DrawText(TextFormat("%d, %d", (int)gs.currentMousePos.x, (int)gs.currentMousePos.y), 0, 40, 20, YELLOW);} + ui::DrawText(TextFormat("Explored : %d/13", gs.explored.size()), 20, 10, 26, RED); + if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT) and !IsDialogRunning(gs)) { + ProcessClick(gs); + } + DrawTextureV(gs.AssetManager.load("arrowhead"), {(int)(VIRTUAL_SCREEN_W/3)*2 + UI_BUTTON_SIZE/2.0f ,VIRTUAL_SCREEN_H - UI_BUTTON_SIZE - UI_PADDING_BOTTOM}, WHITE); + DrawTextureV(gs.AssetManager.load("talk"), {(int)(VIRTUAL_SCREEN_W/2) - 88.0f/2 ,VIRTUAL_SCREEN_H - UI_BUTTON_SIZE - UI_PADDING_BOTTOM}, WHITE); + if (IsDialogRunning(gs)) { + DrawDialog(gs); + } +} diff --git a/screen/main_menu.cpp b/screen/main_menu.cpp new file mode 100644 index 0000000..09a136d --- /dev/null +++ b/screen/main_menu.cpp @@ -0,0 +1,43 @@ +#include "../lib/gameState.hpp" +#include "lib/button.hpp" +#include "raylib.h" +#include "raymath.h" +#include "cmath" + +constexpr float SCENE_CHANGE = 6.0f; + +void drawMainMenu(GameState &gs){ + ClearBackground(Color{91, 110, 225, 255}); + // Vector2 i = MeasureTextEx(ui::GetActiveFont(), "Happy Cirno Day", 22, 1.0f); + // printf("%f, %f\n", i.x, i.y); + // Measure text and hard code the vector value below + if (gs.timeSinceSceneChange < SCENE_CHANGE) { + float t = Clamp(gs.timeSinceSceneChange / SCENE_CHANGE, 0.0f, 1.0f); + float e = 1.0f - powf(1.0f - t, 3.0f); + float y = VIRTUAL_SCREEN_H * (1.0f - e); + DrawTextureV( + gs.AssetManager.load("menu"), + {0, y}, + WHITE + ); + gs.timeSinceSceneChange += GetFrameTime(); + if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) { + gs.timeSinceSceneChange = SCENE_CHANGE; + } + + } else { + DrawTextureV( + gs.AssetManager.load("menu"), + ZERO_VEC, + WHITE + ); + ui::DrawTextV("Knock on her door to play!", {20, 380}, 14,ColorAlpha(RED, fabsf(sinf(3*GetTime())))); + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) { + gs.timeSinceSceneChange = -1; + changeSceneTo(gs, INSIDE); + gs.current_screen = GAMEPLAY; + } + } + ui::DrawTextV("Happy Cirno Day", {22, 25}, 22, ColorAlpha(YELLOW, Clamp(gs.timeSinceSceneChange/(SCENE_CHANGE/2.0f), 0, 1))); + ui::DrawTextV("A short story by\nsamosagaming69\n& silli_chilli", {22, 60}, 14, ColorAlpha(WHITE, Clamp(gs.timeSinceSceneChange/(SCENE_CHANGE/2.0f), 0, 1))); +} |
