code / tomo-lost-signal

Lines522 Tomo498 Markdown11 make10
1 others 3
INI3
(23 lines)
1 # Defines a struct representing boxes on the terrain
3 use ./raylib.tm
5 struct Box(pos:Vector2, size=Vector2(50, 50), color=Color(0x71,0x61,0x82), fatal=no)
6 func draw(b:Box)
7 DrawRectangleV(b.pos - b.size/2, b.size, b.color)
9 func offset_by(b:Box, offset:Vector2 -> Box)
10 return Box(b.pos + offset, b.size, b.color)
12 func at(b:Box, pos:Vector2 -> Box)
13 b.pos = pos
14 return b
16 func has_point(b:Box, point:Vector2, epsilon=Num32(0.1) -> Bool)
17 return ((b.pos.x - b.size.x/2 <= point.x + epsilon and point.x - epsilon <= b.pos.x + b.size.x/2) and
18 (b.pos.y - b.size.y/2 <= point.y + epsilon and point.y - epsilon <= b.pos.y + b.size.y/2))
20 func clamped(b:Box, point:Vector2 -> Vector2)
21 return Vector2(
22 point.x.clamped(b.pos.x - b.size.x/2, b.pos.x + b.size.x/2),
23 point.y.clamped(b.pos.y - b.size.y/2, b.pos.y + b.size.y/2))