Wise&mystical  1.0
Project about Europe
Loading...
Searching...
No Matches
menu.cpp
Go to the documentation of this file.
1#include "raylib.h"
2#include "game.h"
3#include "menu.h"
4
8void drawMenuButtons(Circle menuHitboxes[3], menuButton menuButtons[3])
9{
10 // Draw all 3 buttons
11 for (int i = 0; i < 3; i++)
12 {
13 // Draw button effect
14 if (CheckCollisionPointCircle(GetMousePosition(), menuHitboxes[i].centerPos, menuHitboxes[i].radius))
15 {
16 switch (i)
17 {
18 case 0:
19 DrawTexture(menuButtons[i].hoverEffect, 514 + 10, 50 + 2, RAYWHITE);
20 break;
21 case 1:
22 DrawTexture(menuButtons[i].hoverEffect, 358 + 6, 339 + 6, RAYWHITE);
23 break;
24 case 2:
25 DrawTexture(menuButtons[i].hoverEffect, 80 + 2, 507 + 10, RAYWHITE);
26 break;
27 }
28 }
29 // Draw normal buttons
30 else
31 {
32 switch (i)
33 {
34 case 0:
35 DrawTexture(menuButtons[i].button, 514, 50, RAYWHITE);
36 break;
37 case 1:
38 DrawTexture(menuButtons[i].button, 358, 339, RAYWHITE);
39 break;
40 case 2:
41 DrawTexture(menuButtons[i].button, 80, 507, RAYWHITE);
42 break;
43 }
44 }
45 }
46}
47
51void hangleMenuInput(Circle menuHitboxes[3], TransitionFrame* transitionPtr, bool* quitButtonPressedPtr, bool* drawMenuTransitionPtr)
52{
53 //Check for mouse collison with the menu buttons
54 for (int i = 0; i < 3; i++)
55 {
56 if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT) && CheckCollisionPointCircle(GetMousePosition(), menuHitboxes[i].centerPos, menuHitboxes[i].radius))
57 {
58 switch (i)
59 {
60 // Switch screen to GAMEPLAY
61 case 0:
62 *drawMenuTransitionPtr = true;
63 break;
64 case 1:
65 // Show about
66 break;
67 // Close game
68 case 2:
69 *quitButtonPressedPtr = true;
70 break;
71 }
72 }
73 }
74}
75
79void drawTransition(TransitionFrame* transitionPtr, bool* drawMenuTransitionPtr)
80{
81 // Check if pop-up component should be extended ot retracted
82 if (*drawMenuTransitionPtr)
83 {
84 // Update animation state to -1(decreasing)
85 transitionPtr->state = 1;
86 }
87 else if (!*drawMenuTransitionPtr)
88 {
89 // Update animation state to 1(increasing)
90 transitionPtr->state = -1;
91 }
92
93 // Update target position based on animation state
94 switch (transitionPtr->state)
95 {
96 // Update target position in decreasing state
97 case 1:
98 transitionPtr->radius += 1;
99
100 // Check for top animation boundary
101 if (transitionPtr->radius >= 1120)
102 {
103 // Snap target to boundary
104 transitionPtr->radius = 1120;
105
106 *drawMenuTransitionPtr = false;
107 }
108 break;
109
110 // Update target position in increasing state
111 case -1:
112 transitionPtr->radius -= 1;
113
114 // Check for top animation boundary
115 if (transitionPtr->radius <= 0)
116 {
117 // Snap target to boundary
118 transitionPtr->radius = 0;
119
120 // Update animation state to 0(paused)
121 transitionPtr->state = 0;
122 }
123 break;
124
125 // Account for the paused animation state
126 default:
127 break;
128 }
129
130 // Draw circles
131 DrawCircleV(transitionPtr->centerPos, transitionPtr->radius, WHITE);
132 DrawCircleV(transitionPtr->centerPos, transitionPtr->radius - 1, transitiopnColor);
133}
void hangleMenuInput(Circle menuHitboxes[3], TransitionFrame *transitionPtr, bool *quitButtonPressedPtr, bool *drawMenuTransitionPtr)
Handle menu input.
Definition: menu.cpp:51
void drawMenuButtons(Circle menuHitboxes[3], menuButton menuButtons[3])
Draw menu buttons.
Definition: menu.cpp:8
void drawTransition(TransitionFrame *transitionPtr, bool *drawMenuTransitionPtr)
Draw transition animation.
Definition: menu.cpp:79
#define transitiopnColor
Definition: menu.h:5
#define RAYWHITE
Definition: raylib.h:174
RLAPI bool CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius)
Definition: rshapes.c:1609
#define WHITE
Definition: raylib.h:170
RLAPI Vector2 GetMousePosition(void)
Definition: rcore.c:3761
@ MOUSE_BUTTON_LEFT
Definition: raylib.h:648
RLAPI bool IsMouseButtonPressed(int button)
Definition: rcore.c:3696
RLAPI void DrawTexture(Texture2D texture, int posX, int posY, Color tint)
Definition: rtextures.c:3183
RLAPI void DrawCircleV(Vector2 center, float radius, Color color)
Definition: rshapes.c:436
Define Circle.
Definition: menu.h:17
Vector2 centerPos
Definition: menu.h:29
float radius
Definition: menu.h:32
int state
Definition: menu.h:34
Definition: menu.h:7