diff options
author | BoredGuy <osome3717@gmail.com> | 2025-08-26 19:54:09 +0300 |
---|---|---|
committer | BoredGuy <osome3717@gmail.com> | 2025-08-26 19:54:09 +0300 |
commit | f95068d73410aa6d01e8ba91b430ca05d404a57b (patch) | |
tree | 84de322f972182510e48aaa374ae8a62ac3ee2b5 /src | |
parent | 87d07175058ee4ae18fce608de81c68d7d9bb178 (diff) |
Added barrel, next up sprite Z-sorting(ugh)
Diffstat (limited to 'src')
-rw-r--r-- | src/assets.c | 5 | ||||
-rw-r--r-- | src/background.c | 1 | ||||
-rw-r--r-- | src/barrel.c | 41 | ||||
-rw-r--r-- | src/game.c | 8 | ||||
-rw-r--r-- | src/main.c | 2 | ||||
-rw-r--r-- | src/player.c | 7 |
6 files changed, 57 insertions, 7 deletions
diff --git a/src/assets.c b/src/assets.c index f6d4792..7fb6477 100644 --- a/src/assets.c +++ b/src/assets.c @@ -24,6 +24,11 @@ Asset assets[] = { .type = Texture_Asset, .name = "player-body", .filePath = "assets/art/characters/player.png" + }, + { + .type = Texture_Asset, + .name = "barrel", + .filePath = "assets/art/props/barrel.png" } }; diff --git a/src/background.c b/src/background.c index d3647cf..7929fa1 100644 --- a/src/background.c +++ b/src/background.c @@ -37,6 +37,7 @@ void AddBackground(const char* backgroundTextureName) { .layer = Background_Layer, .numAnimations = 0, + .srcRect = {0, 0, backgroundTexture.width, backgroundTexture.height}, .destRect = {NO_OFFSET, NO_OFFSET, backgroundBounds.x, backgroundBounds.y} }; diff --git a/src/barrel.c b/src/barrel.c new file mode 100644 index 0000000..b0ce9a7 --- /dev/null +++ b/src/barrel.c @@ -0,0 +1,41 @@ +#include "barrel.h" +#include "barrel_data.h" +#include "utils.h" +#include "assets.h" + +void AddBarrel(float xpos, float ypos) { + Entity barrel = {0}; + barrel.type = Barrel_Entity; + + barrel.position = (Vector2) {xpos, ypos}; + barrel.flags |= (ENTITY_PHYSICS_ACTIVE | ENTITY_VISIBLE); + + Asset* barrelTexture = GetMatchingAssetExitOnFail("barrel", Texture_Asset); + + Sprite barrelSprite = (Sprite) { + .texture = barrelTexture->texture, + .layer = Foreground_Layer, + + .destRect = destRect, + .srcRect = { + .x = 0, + .y = 0, + .width = barrelTexture->texture.width / 2, + .height = barrelTexture->texture.height + } + }; + + AddSpriteToEntity(&barrel, barrelSprite); + + barrel.physicsCollider = physicsCollider; + +#ifdef BEATEMUP_DEBUG + barrel.physicsColliderColor = RED; +#endif + + AddEntity(&barrel); +} + +void UpdateBarrel(float dt) { + UNUSED(dt); +} @@ -56,7 +56,6 @@ void UpdateGame(float deltaTime) { game.enableDebugOverlay = !game.enableDebugOverlay; } #endif - for (int i = 0; i < MAX_ENTITY_COUNT; i++) { Entity* e = &game.entities[i]; @@ -70,12 +69,7 @@ void DrawEntitySprite(const Entity* e, int spriteIndex) { Rectangle srcRect; if (!IsAnimated(drawnSprite)) { - srcRect = (Rectangle) { - .x = 0, - .y = 0, - .width = drawnSprite->texture.width, - .height = drawnSprite->texture.height - }; + srcRect = drawnSprite->srcRect; } else { const Animation* currentAnimation = &drawnSprite->animations[drawnSprite->currentAnimation]; @@ -4,6 +4,7 @@ #include "game.h" #include "background.h" #include "player.h" +#include "barrel.h" int main() { InitWindow(WINDOW_WIDTH, WINDOW_HEIGHT, "My BeatEmup"); @@ -15,6 +16,7 @@ int main() { AddBackground("bar-background"); AddPlayer(0, 400); AddWall(0, 160, 1000000, 100); + AddBarrel(200, 400); while(!WindowShouldClose()) { UpdateGame(GetFrameTime()); diff --git a/src/player.c b/src/player.c index ca5d3c0..896f33e 100644 --- a/src/player.c +++ b/src/player.c @@ -100,6 +100,13 @@ static void AddPlayerSprites(Entity* player) { .layer = Foreground_Layer, .destRect = shadowDestRect, + .srcRect = { + 0, + 0, + shadowTexture->texture.width, + shadowTexture->texture.height + }, + .numAnimations = 0, //Not an animated sprite }; AddSpriteToEntity(player, shadowSprite); |