Za nic nie rozumiem tego kodu, ale bym sprawdził miejsca z image_index = 0. Bo takich jest kilka. Musisz albo skorzystać z debuggera, albo chociaż z show_debug_message() na końcu kodu, zebby sobie wyświetlać w konsoli co masz za wrtość w image_index, to może pomóc. Ciężko przeanalizować kod, którego 99% nie ma związku ze zmianą sprite/klatki i w ogóle nie ma zwiazku ze sprawą. Za dużo tego jest do analizy.