diff options
author | nathansmith117 <thenathansmithsmith@gmail.com> | 2024-02-23 17:52:38 +0000 |
---|---|---|
committer | nathansmith117 <thenathansmithsmith@gmail.com> | 2024-02-23 17:52:38 +0000 |
commit | 9ddeb5a5f14987bacf4441866c4051a5d7617d75 (patch) | |
tree | 6f7378233f778ab8ef06840d71c21fbffa07728e /src | |
parent | 8409c0fef6be37b3b5081402c1669207a1dc9ca3 (diff) | |
download | PenguinYippies-9ddeb5a5f14987bacf4441866c4051a5d7617d75.tar.gz PenguinYippies-9ddeb5a5f14987bacf4441866c4051a5d7617d75.tar.bz2 PenguinYippies-9ddeb5a5f14987bacf4441866c4051a5d7617d75.zip |
Clicky list working
Diffstat (limited to 'src')
-rw-r--r-- | src/clicky.c | 14 | ||||
-rw-r--r-- | src/clicky.h | 1 | ||||
-rw-r--r-- | src/game.c | 12 | ||||
-rw-r--r-- | src/game.h | 3 | ||||
-rw-r--r-- | src/gameScreen.c | 3 |
5 files changed, 32 insertions, 1 deletions
diff --git a/src/clicky.c b/src/clicky.c index 3afb515..fdb9378 100644 --- a/src/clicky.c +++ b/src/clicky.c @@ -18,6 +18,17 @@ void closeClickies(Clickies* clickies) } } +void addClickyToClickies(Clickies* clickies, Clicky clicky) +{ + if (clickies->clickiesCount >= MAX_CLICKIES) + { + return; // At max. + } + + ++clickies->clickiesCount; + clickies->clickies[clickies->clickiesCount - 1] = clicky; +} + void updateClickies(Game* game, Clickies* clickies) { for (int i = 0; i < clickies->clickiesCount; ++i) @@ -41,7 +52,8 @@ void updatePenguinLol(Game* game, Clicky* clicky) // Drag around. if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) { - if (IsCursorOnScreen()) + if (IsCursorOnScreen() && doesCollideWithAnimationData(clicky->rect, clicky->animation.asset->image.data, + clicky->animation.width, clicky->animation.height, clicky->animation.currentFrame, getScaledMousePosition())) { Vector2 mouseDelta = GetMouseDelta(); clicky->rect.x += mouseDelta.x; diff --git a/src/clicky.h b/src/clicky.h index 8a91c68..cb96397 100644 --- a/src/clicky.h +++ b/src/clicky.h @@ -31,6 +31,7 @@ typedef struct Clickies { void initClickies(Clickies* clickies); void closeClickies(Clickies* clickies); +void addClickyToClickies(Clickies* clickies, Clicky clicky); void updateClickies(Game* game, Clickies* clickies); // A silly silly penguin lol. @@ -13,6 +13,17 @@ void initGame(Game* game) initMainMenu(&game->mainMenu, game); initGameScreen(&game->gameScreen, game); + // Clickies lol. + initClickies(&game->clickies); + + // Test clickies. + Clicky testClicky = createPenguinLolClicky(game); + addClickyToClickies(&game->clickies, testClicky); + + testClicky = createPenguinLolClicky(game); + testClicky.rect.x += 500; + addClickyToClickies(&game->clickies, testClicky); + game->screenTexture = LoadRenderTexture(WINDOW_WIDTH, WINDOW_HEIGHT); } @@ -55,6 +66,7 @@ void closeGame(Game* game) closeAssets(&game->assets); closeMainMenu(&game->mainMenu); closeGameScreen(&game->gameScreen); + closeClickies(&game->clickies); UnloadRenderTexture(game->screenTexture); CloseWindow(); @@ -2,6 +2,7 @@ #include "mainMenu.h" #include "gameScreen.h" #include "assets.h" +#include "clicky.h" #ifndef GAME_H #define GAME_H @@ -19,6 +20,8 @@ typedef struct Game { MainMenu mainMenu; GameScreen gameScreen; + Clickies clickies; + // Wacky little render texture to make it look more like a unity game lmao. RenderTexture screenTexture; } Game; diff --git a/src/gameScreen.c b/src/gameScreen.c index e15a7e5..024556b 100644 --- a/src/gameScreen.c +++ b/src/gameScreen.c @@ -94,6 +94,9 @@ void updateGameScreen(GameScreen* gameScreen, Game* game) updateTexturedButton(&gameScreen->rebirthButton); updateTexturedButton(&gameScreen->statisticsButton); + // Clickies clickies. + updateClickies(game, &game->clickies); + DrawFPS(0, 0); } |