In the following provided code, on the press of key "k" an animation should take place before spawning the magic attack, but unless i use something like greenfoot delay, only the last frame is shown, no matter how much time i put between the frames
to explain the code, I have 4 pictures that it should cycle thru with 5 acts cooldown between each of them, thats why the "i" in the for goes to 19. From 1 to 2, 5 acts, 2 to 3, 5 acts and 3 to 4, 5 acts, summed with the 4 acts needed to do the animation, its 19. Please help i dont know what else to do :(((
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | if (Greenfoot.isKeyDown( "k" ) && !kKeyPressed && Mana.mana >= 10 && magicCooldown== 0 ) { kKeyPressed = true ; imageToggleCooldown= 0 ; for ( int i = 0 ; i < 19 ; i++) { cycleImagesMagic(); } Mana.instance.lmana( 10 ); magicCooldown= 200 ; spawnMagicAttack(); } if (!Greenfoot.isKeyDown( "k" )) { kKeyPressed = false ; } } private void cycleImagesMagic() { if (imageToggleCooldown == 0 ) { setImage( "magic/MagicAttack" + magicAttack + ".png" ); magicAttack = (magicAttack + 1 ) % 4 ; imageToggleCooldown = 5 ; // Adjust the cooldown as needed } else { imageToggleCooldown--; } } |