Seite 1 von 1

Wie benutz man die Linkedlist?

Verfasst: 19.07.2010 15:59
von S.Wisser
Hallo,

ich würde gerne zu Übungszwecke eine Bildershow mit einer Linkedlist machen.
In dieser Bildershow sollen 2 Bilder (bmp) in einem 5 sec. takt abwechselnd
angezeigt werden.
Die Bilder sollen sich in einer Endlosschleife wiederholen können,
wobei man mit der Esc Taste das Programm beenden kann.
Kann mir jemand sagen wie ich diese Linkedlist anwenden kann?
Ich weiß dass man so eine Animation viel einfacher erstellen könnte,
möchte aber unbedingt eine Linkedlist verwenden.
Aber ich hab keine Ahnung wo ich in dieser Linkedlist die Sprites eintragen muss.
Kann mir jemand helfen?

Re: Wie benutz man die Linkedlist?

Verfasst: 19.07.2010 16:15
von Mok
Du könntest die eindeutige ID der Sprites übergeben und dann in der Schleife einen Timer einbauen. Sobald der abgelaufen ist, zeigst du das Bild an, dessen ID im aktuellen Feld ist. Wenn der Timer abgelaufen ist das nächste, usw.

Re: Wie benutz man die Linkedlist?

Verfasst: 19.07.2010 16:50
von Bisonte
Wobei dann evt. ein Array besser passen würde (einfachere Handhabung ?)

Re: Wie benutz man die Linkedlist?

Verfasst: 19.07.2010 16:57
von jojo1541
Die Linkedlist verhält sich eigentlich fast wie eine Variable. du kannst einem Element in ihr einen Wert zuweisen.

Code: Alles auswählen

NewList Test()

AddElement(Test())
Test() = 2

ForEach Test()
   Debug Test()
Next
Hier könntest du nun die Nummern deiner Sprites abspeichern und dann jeweils mit NextElement() weiterschalten.

Re: Wie benutz man die Linkedlist?

Verfasst: 19.07.2010 17:03
von ts-soft

Code: Alles auswählen

Structure Bilder
  ID.i
  FileName.s
EndStructure

Define.i Dir
Define.s Path = "C:\Eigene Bilder\"
NewList Bilder.Bilder()
Dir = ExamineDirectory(#PB_Any, Path, "*.bmp")
If Dir
  While NextDirectoryEntry(Dir)
    If DirectoryEntryType(Dir) = #PB_DirectoryEntry_File
      AddElement(Bilder())
      Bilder()\FileName = DirectoryEntryName(Dir)
      Bilder()\ID = LoadImage(#PB_Any, DirectoryEntryName(Dir))
    EndIf
  Wend
  FinishDirectory(Dir)
EndIf
Das Beispiel liest ein ganzes Verzeichnis Bilder ein, weil für 2 Bilder wäre die Linklist nicht der Brüller :mrgreen: