package main import rl "vendor:raylib" Brick :: struct { position: Vec2, velocity: Vec2, size: Vec2, angle: f32, angular_velocity: f32, is_flying: bool, is_fixed: bool, color: rl.Color, hits: u8, is_to_free: bool, } spawn_brick :: proc(position: Vec2, size: Vec2, is_fixed: bool = true, color: rl.Color = rl.RED, hits : u8 = 1) -> Brick { return Brick { position = position, velocity = Vec2{}, size = Vec2{30,20}, is_flying = false, is_fixed = is_fixed, color = color, hits = hits, angle = 0 } } brick_update :: proc(brick: ^Brick, camera: rl.Camera2D, delta: f32) { if !brick.is_flying { return } brick.velocity.y += 500 * delta brick.position += brick.velocity * delta brick.angle += brick.angular_velocity * delta screen_pos := rl.GetWorldToScreen2D(brick.position, camera) if !rl.CheckCollisionRecs(rl.Rectangle{screen_pos.x - brick.size.x / 2, screen_pos.y - brick.size.y / 2, brick.size.x, brick.size.y}, rl.Rectangle{0, 0, WINDOWF.x, WINDOWF.y} ) { brick.is_to_free = true } }