From ad04490ef84d7565fbec0fa878a21694ad2d61f0 Mon Sep 17 00:00:00 2001 From: pryazha Date: Tue, 26 Aug 2025 10:55:18 +0500 Subject: guess that's all --- in_practice/breakout/powerup.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 in_practice/breakout/powerup.c (limited to 'in_practice/breakout/powerup.c') 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); +} -- cgit v1.2.3-70-g09d2