From 057997b3578f3ff62457c31e9fdcb301380088ca Mon Sep 17 00:00:00 2001 From: iamcheeseman <[hidden email]> Date: Thu, 15 Jan 2026 20:53:56 -0500 Subject: scarf --- src/tail.odin | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/tail.odin (limited to 'src/tail.odin') diff --git a/src/tail.odin b/src/tail.odin new file mode 100644 index 0000000..2184444 --- /dev/null +++ b/src/tail.odin @@ -0,0 +1,40 @@ +package demonchime + +import "core:math" +import "core:math/linalg" + +Tail :: struct($N: int) { + points: [N]Vec2, + point_max_dist: f32, + point_rad: f32, + color_start: Color, + color_end: Color, +} + +set_tail_position :: proc(tail: ^Tail($N), pos: Vec2, dt: f32) { + tail.points[0] = pos + for i in 1.. tail.point_max_dist*tail.point_max_dist { + dir := linalg.normalize0(cur^ - prev) + cur^ = prev + dir * (tail.point_max_dist - 1) + } + } +} + +draw_tail :: proc(tail: Tail($N)) { + for point, i in tail.points { + renderer.tint = linalg.lerp( + tail.color_start, + tail.color_end, + f32(i)/len(tail.points), + ) + draw_circle(point, tail.point_rad) + } + renderer.tint = {1, 1, 1, 1} +} -- cgit v1.3-2-g0d8e