The placement of clear() and update() are really important.
clear() - clears the screen
drawMap() / drawSprite() / <other> - tells Fuze what to draw to the screen at the next update()
update() - draws to the screen
Updating the screen is really slow, so ideally we want to tell Fuze everything that we want to draw (which is much faster) and have draw everything to the screen all at once.
Notice how, on line 22, you are using drawSprites().
There is no update() for the rest of the loop, so we jump from line 38 to line 1, then when we get to line 8 we clear the screen.
So we're getting ready to draw the sprites, but we're clearing before we actually update the screen.
There is a Fuze tutorial series on YouTube and in the 5th video we talk about this in more detail:
It's all good I figured out a work around that works really well I'll leave it here in case anyone wants to see:
So I use a variable to store the rotation value and while I rotate the object I also adjust the variable
You'll probably want to add another property to your sprite called something like player.wasFacing so you can check if the direction they are facing has changed and only flip the sprite if it has. So maybe something like:
right = 0
left = 1
if c.left then
player.x -= movespd
player.facing = left
if player.facing != player.wasFacing then
player.xscale = -player.xscale
// put this near the end of your loop
player.wasFacing = player.facing
There may be a more elegant solution or way to write it but that's what I would do :)