das war nicht böse gemeint, sorry falls es so rüber kam.
zum beispiel diese zeilen aus deinem code
hier addierst du die koordinaten des fliegers zur bewegung,
also eigentlich andersrum, als wolltest.
hätte funktioniert,
oder eben ausführlich, wie #NULL das geschrieben hat,
Code: Alles auswählen
FliegerY = BewegFliegerY + FliegerY
FliegerX = BewegFliegerX + FliegerX
dann ist deutlicher, welcher variable das ergebnis zugewiesen wird.
auch die form wie du einlädtst sorgt für verwirrung:
Code: Alles auswählen
For Flieger=1 To 5
LoadSprite(Flieger+5, "Bilder/Spiel/Jet/Jet" +Str(Flieger) +".bmp")
TransparentSpriteColor(Flieger+5, RGB(255, 0, 255))
Next
klarer wird es, wenn du das etwas anders gestaltest:
Code: Alles auswählen
FliegerFirstFrame = 6
For FliegerActualFrame=0 To 4
LoadSprite(FliegerFirstFrame + FliegerActualFrame, "Bilder/Spiel/Jet/Jet" +Str(Flieger) +".bmp")
TransparentSpriteColor(FliegerFirstFrame + FliegerActualFrame, RGB(255, 0, 255))
Next
dann ist wesentlich einfacher erkennbar, was passiert,
und das hilft dann auch, solche überschneidungen zu vermeiden.
dann siehst du nämlich, dass GegnerFirstFrame deutlich weiter hinten liegen muss,
und auch, dass FlakFirstFrame weiter vorne liegen könnte.
es würde nichts dagegen sprechen,
FliegerFirstFrame = 10 , GegnerFirstFrame = 20 und FlakFirstFrame = 30
zu verwenden.
...und wie ich schon zu anfang mal sagte, fang lieber bei 0 an zu zählen mit den schleifen,
dann ist nämlich der erste frame von Flieger auch in der spritenummer FliegerFirstFrame,
und nicht ein sprite weiter hinten und FliegerFirstFrame unbenutzt.