What am I doing wrong here? It's driving me crazy!
I've made an onGround function that check if there's a flagged sprite below you, which seems to be working, but when you run it, the gravity (which should kick in when not on the ground) never gets applied.
I've used the print function to debug whether onGround is working correctly and it is, so why is the
if not onground then dy+=grv end |
part not working?
x=60 y=112 dy=0 jmp=5 grv=0.5 function _update() jumping() y+=dy end function _draw() cls() map(0,0,0,0,16,16) spr(1,x,y) print(solid(x,y+9),1,1,7) end function jumping() -- jumping if onground and btnp(4) then dy=-jmp end -- gravity if not onground then dy+=grv end -- problem area above!!!!-- end function solid(sx,sy) local tilex=flr(sx/8) local tiley=flr(sy/8) if fget(mget(tilex,tiley),0) then return true else return false end end function onground() if solid(x,y+9) or solid(x+8,y+9) then return true else return false end end |



from what you posted it looks like you are not actually ever calling the "onground" function; instead you are essentially checking for the existence of the function, so it always evaluates to true.
change "if onground" to "if onground()", etc.
[Please log in to post a comment]