diff options
author | pryazha <pryadeiniv@mail.ru> | 2025-08-26 10:55:18 +0500 |
---|---|---|
committer | pryazha <pryadeiniv@mail.ru> | 2025-08-26 10:55:18 +0500 |
commit | ad04490ef84d7565fbec0fa878a21694ad2d61f0 (patch) | |
tree | accfa142da0b3f99f957de6c030dc2c76639be53 /in_practice/breakout/powerup.c | |
parent | 1f93c3ef62af6c71217f06491ca2b859d4065740 (diff) |
guess that's all
Diffstat (limited to 'in_practice/breakout/powerup.c')
-rw-r--r-- | in_practice/breakout/powerup.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/in_practice/breakout/powerup.c b/in_practice/breakout/powerup.c new file mode 100644 index 0000000..ab09b9f --- /dev/null +++ b/in_practice/breakout/powerup.c @@ -0,0 +1,31 @@ +#include "powerup.h" + +v2 default_powerup_size = {60.0f, 20.0}; + +struct powerup spawn_powerup(v2 pos, v3 color, enum powerup_type type, f32 duration, u32 texture) +{ + struct powerup powerup = {0}; + powerup.pos = pos; + powerup.vel = (v2){0.0f, 150.0f}; + powerup.size = default_powerup_size; + powerup.color = color; + powerup.type = type; + powerup.duration = duration; + powerup.texture = texture; + return powerup; +} + +i32 check_powerup_collision(struct powerup powerup, struct object obj) +{ + + i32 x = (powerup.pos.x + powerup.size.x >= obj.pos.x) && + (obj.pos.x + obj.size.x >= powerup.pos.x); + i32 y = (powerup.pos.y + powerup.size.y >= obj.pos.y) && + (obj.pos.y + obj.size.y >= powerup.pos.y); + return x && y; +} + +void render_powerup(struct sprite_renderer renderer, struct powerup powerup) +{ + render_sprite(renderer, powerup.texture, powerup.pos, powerup.size, 0.0f, powerup.color); +} |