can someone tell me why this always fails?
it isn't garenteed to always reach 63,63 even through i floor it.
function main() domain=true while domain do cls() spr(16,4,0,15,2) for i=0,8 do star() end yield() end end function star() dostar=true inst = { sx=rnd(127), sy=127, ex=63, ey=63, } while dostar do local dx=flr(inst.sx)==flr(inst.ex) local dy=flr(inst.sy)==flr(inst.ey) rectfill(0,0,127,24,0) print(tostr(dx)..","..tostr(dy),0,0,7) if dx and dy then dostar=false else pset (inst.sx,inst.sy,7) print(flr(inst.sx).."/"..flr(inst.ex),0,8,7) print(flr(inst.sy).."/"..flr(inst.ey),0,16,7) inst.sx+=(inst.ex-inst.sx)*mainstarspd inst.sy+=(inst.ey-inst.sy)*mainstarspd end yield() end end |



Try printing out these two values:
print((inst.ex-inst.sx)*mainstarspd) print((inst.ey-inst.sy)*mainstarspd) |
I suspect one of the values is small enough that the multiply underflows and the result is a 0 offset that keeps you from arriving at the end value.
Remember (or discover now) that PICO-8 uses signed 16.16-bit fixed point math. You only have 16 bits of fractional precision. If you were, for instance, to square any number less than than 1/256 (0x.01), you'd get 0.



@Felice i can't print it out without it flowing offscreen or clearing over the previus number.
it updates too fast.

[Please log in to post a comment]