I move this to the other category.
Trying to isolate the problem in a simple project, yours is currently complicated with a lot of inversion, I think the main problem comes from here.
When the problem is properly isolated I will move it to bugs.
Just thought of an workaround for my problem.
IJKL will be considered as fire buttons & decide shot direction rather than ‘shoot in a specific direction’.
That is:
Set conditions for each of 8 directions to set the upper sprite
Set ‘Any of IJKL pressed’ condition to make the player fire in the direction of the upper sprite
I’ll test this out soon, but someone should try isolating the original problem.
Set a global or object variable of “ShootDirection”
For events:
Have an event where “if IJKL is not pressed” set “ShootDirection” = 0"
Then have
“If I is pressed | set “ShootDirection” + 1”
“If I is released | set “ShootDirection” - 1”
(Run once on everything, obviously)
Then repeat for JKL using prime numbers that are separated far enough apart, (3, 7, 19, etc)
Then you set up your firing actions to be based off Shoot Direction
“If ShootDirection = 1 | Fire Up”
“If ShootDirection = 3 | Fire Left”
“If ShootDirection = 4 | Fire UpLeft”
I think since you’re having your animations/actions happen based off the variable matching a specific value (rather than a certain combination of events/inverted events), you should have more control over the ordering, I think.