Aranylábú barátaink végre a lábuk elé néznek, ha mennek valahova. A legegyszerűbb módszer ennek a megvalósítására, ha egyszerűen minden iránybillentyűhöz rendelünk egy animációt (ha felfelé fut a játékos, akkor részben átlátszóvá tesszük a modulate.a-val, hogy ne takarja el a labdát):
if Input.is_action_pressed("ui_right"):
AnimSprite.play("run_right")
elif Input.is_action_pressed("ui_left"):
AnimSprite.play("run_left")
elif Input.is_action_pressed("ui_down"):
AnimSprite.play("run_down")
elif Input.is_action_pressed("ui_up"):
AnimSprite.modulate.a = .75
AnimSprite.play("run_up")
else:
AnimSprite.modulate.a = 1
AnimSprite.play("idle")
Ez a módszer remekül működik, ha csak egyetlen irányítható karakterünk van, de mivel itt egy egész csapatunk van, sőt még egy ellenfél csapat is, így jobban járunk, ha a játékosok irányvektorát használjuk, a következőképpen:
if velocity.length() > 50:
var va = rad2deg(velocity.angle())
if va >= 315 && va <= 360 && va >= 0 && va <= 45:
AnimSprite.play("run_right")
elif va >= 135 && va <= 225:
AnimSprite.play("run_left")
elif va > 45 && va < 135 :
AnimSprite.play("run_down")
elif va > 225 && va < 315:
AnimSprite.modulate.a = .75
AnimSprite.play("run_up")
else:
AnimSprite.modulate.a = 1
AnimSprite.play("idle")
Lényegében egy kört vágtunk 4 felé, és mind a 4 irány kapott egy 90°-os szeletet. A kör középpontjától jobbra mutat a 0 és onnan megyünk az óramutató járása szerint körbe (lefelé 90°, balra 180°, felfelé pedig 270°), ezért van ketté szedve a "run_right", mert közben visszatértünk a kiindulópontba.
Most már nagyjából minden készen áll az ellenfél csapatának a fogadására. Jöjjenek hát!