mehrere Animationen auf einmal!

Anfängerfragen zum Programmieren mit PureBasic.
D4uS1
Beiträge: 268
Registriert: 02.09.2006 12:16

Beitrag 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!
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten