Seite 2 von 2

Verfasst: 12.11.2006 20:14
von D4uS1
Also erstmal, @Kaeru Gaman: meine Animationskenntnise hab ich aus dem toturial und bestimmten leuten hier aus dem forum, und ich hab ja diesen threat nunmal nich umsonst in das anfängerforum gelegt und zweitens, danke!

Verfasst: 12.11.2006 20:43
von Kaeru Gaman
das war nicht böse gemeint, sorry falls es so rüber kam.

zum beispiel diese zeilen aus deinem code

Code: Alles auswählen

  BewegFliegerY + FliegerY 
  BewegFliegerX + FliegerX 
hier addierst du die koordinaten des fliegers zur bewegung,
also eigentlich andersrum, als wolltest.

Code: Alles auswählen

FliegerY + BewegFliegerY 
FliegerX + BewegFliegerX 
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.