Genuary 2024 Day 8 - Chaotic system

January 08, 2024
pico-8 open-source
Genuary 2024 Day 8 - Chaotic system
-- genuary #8 2024
-- chaotic system
-- by carson kompon
-- inspired by @codecraftedphysics on youtube

z={1,1,2,3,2,1,4,3,5,4,4,6,4,7,8,2,4}
c=1
gr=52
b={
	x=63,y=63,
	h=0,v=0,
	r=.5,c=0,d=1
}
cls()

function _update60()
	for i=1,999do
		pset(rnd(128),rnd(128),0)
	end
	b.v+=.1
	local xx=(63-(b.x+b.h))
	local yy=(63-(b.y+b.v))
	local d=sqrt(xx*xx+yy*yy)
	local m=atan2(b.x-63,b.y-63)
	if(d>=gr-b.r)then
		local nx=xx/d+rnd(.1)-.05
		local ny=yy/d+rnd(.1)-.05
		local dot=2*(b.h*nx+b.v*ny)
		b.x=63+cos(m)*(gr-b.r)
		b.y=63+sin(m)*(gr-b.r)
		b.h-=dot*nx
		b.v-=dot*ny
		b.r+=1*b.d
		if(b.r>=gr)b.d=-1b.r=gr
		if(b.r<=.5)b.d=1b.r=.5
		b.c=(b.c+1)%7
		sfx(z[c])
		c+=1
		if(c>#z)c=1
	end
	b.x+=b.h
	b.y+=b.v
	circfill(b.x,b.y,b.r,8+b.c)
	circ(63,63,gr,7)
end