Log In  
Follow
snakes_wayne
[ :: Read More :: ]

hi all,

i'm new to pico8 and coding largely, and i'd appreciate some help. i'm working on a super simple file just to familiarize myself with different aspects of what i'd like to eventually make for real.

what i'm trying to do is cause a specific set of sprites to animate whenever the player presses btn(4).

so far, i've got it set up so that when the player presses z, the function draw_attack() is called (below).

the problem i'm running into is that the animation ceases after one frame. i have no idea why. here's my code that seems to be the problem:

function draw_attack()
    if player.flip then
        spr(atkanim.spr,player.x-6,player.y)
        for i=0,3 do
            if atkanim.spr<=52 then
                atkanim.spr+=0.5
                sfx(0)
            else
                atkanim.spr=48
            end
        end
    else
        spr(48,player.x+6,player.y)
        sfx(0)
    end
end

what i would expect to happen with this when the function is called: the sprites are drawn in sequence based on the for loop.

what actually happens: the first frame of the sequence appears in the right place, and the sound effect works, and then the sprite disappears.

if i spam the key that calls the function, the sprite seems to cycle through the set of sprites i've defined but only appearing while the key is pressed for 1 frame each time. does this make sense?

i realize there are simpler ways to animate but i haven't really found a tutorial that i can follow... i'd appreciate if anyone is willing to help me wrap my head around this. thanks!

P#80430 2020-08-06 21:43