@Reever
ist das thema noch aktuell?
bin erst seit ein paar tagen wieder hier, sonst hätte ich eher was dazu geschrieben...
evtl. waren die kommentare der kollegen etwas zu hochgegriffen für nen neueinsteiger.
also...
1. LinkedList
wenn du dir WaponezII mal genau ansiehst, wirst du bemerken,
dass die liste verwendet wird, um mehrere objekte des gleichen
typs zu verwalten, nicht für eine einfache aufzählung.
dein denkfehler bei
könnte sein, dass du dachtest, in der liste werden befehle gespeichert.
daher wahscheinlich auch deine schreibweise:
es stehen aber nur daten in der liste.
2. MouseX()
gibt die aktuelle position zurück.
bewirkt
nicht, dass auf eine mausbewegung reagiert wird.
3. Schleifen
das programm wird befehl für befehl abgearbeitet,
es wartet nicht mit der ausführung,
außer du befiehlst es ausdrücklich.
also brauchst du eine Hauptschleife, die immer wieder durchlaufen wird.
--------------------------------------
A) Beispiel für eine Hauptschleife:
Code: Alles auswählen
Repeat
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
diese schleife wird immer wieder durchlaufen,
immer wieder die tastatur gecheckt,
bis die Escape-taste gedrückt wird.
ansonsten tut sie noch gar nichts.
B) VOR der Hauptschleife
mußt du die sprites laden und den screen öffnen, zum beispiel so:
Code: Alles auswählen
OpenScreen(800,600,32,"TestScreen")
LoadSprite(0,"MeinBild1.bmp")
LoadSprite(1,"MeinBild2.bmp")
LoadSprite(2,"MeinBild3.bmp")
C) Zeitsteuerung
eine millisekunden verzögerung ist immer eine gute lösung.
Code: Alles auswählen
Repeat
Delay(1)
Until GetTickCount() >= WeiterZeit
WeiterZeit = GetTickCount() + 20
diese schleife führt immer wieder ein Delay(1) durch,
bis 20 millisekunden vergangen sind.
Sie sollte für sich alleine innerhalb der hauptschleife stehen.
Anm:
die Verwendung von Delay ist durchaus zu empfehlen,
da das programm ansonsten die CPU vollständig beansprucht.
D) Verhältnisse der Abläufe
evtl willst du nicht, daß die animation ins nächste bild geht,
bei jedem pixel das der sprite bewegt wird.
hier mal ein kleines beispiel:
Code: Alles auswählen
If Keyboardpushed(#PB_Key_Right)
X = X+1
If X > 800
X = 0
EndIf
count = count +1
If count > 2
count = 0
Frame = Frame +1
If Frame > 2
Frame = 0
EndIf
EndIf
EndIf
DisplaySprite(Frame,X,Y)
hierbei wird das sprite bewegt, wenn die cursor-rechts-taste gedrückt wird.
alle 3 pixel bewegung wird der animationsframe erhöht,
der wird wieder auf 0 gesetzt, wenn das ende erreicht ist.
ich hoffe, das hat dir ein wenig geholfen, wenn du noch fragen hast, schick mir ne PN...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.