From 9ddeb5a5f14987bacf4441866c4051a5d7617d75 Mon Sep 17 00:00:00 2001 From: nathansmith117 Date: Fri, 23 Feb 2024 10:52:38 -0700 Subject: Clicky list working --- src/clicky.c | 14 +++++++++++++- src/clicky.h | 1 + src/game.c | 12 ++++++++++++ src/game.h | 3 +++ src/gameScreen.c | 3 +++ 5 files changed, 32 insertions(+), 1 deletion(-) (limited to 'src') 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. diff --git a/src/game.c b/src/game.c index e74075f..d8d0958 100644 --- a/src/game.c +++ b/src/game.c @@ -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(); diff --git a/src/game.h b/src/game.h index 7b8d145..0f65cb5 100644 --- a/src/game.h +++ b/src/game.h @@ -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); } -- cgit v1.2.3