Honestly, those two operators are the foundation of much of the logic in my code these days. They basically allow various non-linear behaviors to arise from linear numeric inputs, so you can use them to replace a lot of cumbersome branching conditional logic.
I've only been coding on and off for a handful of years myself, and not very regularly until the last year and a half, but I enjoy the problem solving and the freedom to approach things creatively. Guess it also helps that I'm very comfortable with math.
Looks good, though you could actually switch to a 60fps update function with equivalent movement speed for just 2 chars more, eg:
x=60y=60::_::cls()b=btn()
x+=b\2%2*2-b%2*2y+=b\8*6-b\4*2
circ(x,y)flip()goto _
vs.
x=60y=60function _update60()cls()b=btn()
x+=b\2%2-b%2y+=b\8%2-b\4%2
circ(x,y)end
I can relate to feeling a bit clunky sometimes, but there's one nice benefit to having a living brain rather than a hunk of silicon, you can actually rewire it a bit over time. ;)