1234567891011121314151617181920212223 | # Defines a struct representing boxes on the terrain
use ./raylib.tm
struct Box(pos:Vector2, size=Vector2(50, 50), color=Color(0x71,0x61,0x82), fatal=no)
func draw(b:Box)
DrawRectangleV(b.pos - b.size/2, b.size, b.color)
func offset_by(b:Box, offset:Vector2 -> Box)
return Box(b.pos + offset, b.size, b.color)
func at(b:Box, pos:Vector2 -> Box)
b.pos = pos
return b
func has_point(b:Box, point:Vector2, epsilon=Num32(0.1) -> Bool)
return ((b.pos.x - b.size.x/2 <= point.x + epsilon and point.x - epsilon <= b.pos.x + b.size.x/2) and
(b.pos.y - b.size.y/2 <= point.y + epsilon and point.y - epsilon <= b.pos.y + b.size.y/2))
func clamped(b:Box, point:Vector2 -> Vector2)
return Vector2(
point.x.clamped(b.pos.x - b.size.x/2, b.pos.x + b.size.x/2),
point.y.clamped(b.pos.y - b.size.y/2, b.pos.y + b.size.y/2))
|