Seite 1 von 1

Linked Lists und Dynamische Nummerierung

Verfasst: 18.04.2006 13:23
von wutschel
Hallo!
Ich habe eine Frage zu den wohl passierenden Konflikten zwischen Linked Lists und Dynamische Nummerierung. Also ich möchte eine Procedure schreiben die eine Map lädt. Da es mehrer Maps werden können, werden sie mit Nummern defeniert. Das mache ich mit einer Linked List. Es soll also so sein, dass die Mapnummer 1 einen roten Hintergrund bekommt, die Nummer 2 einen grünen usw. Ich will die Farben auf ein neues Sprite malen. Da es unbekannt viele Sprites werden können und ich kein Konflikt zwischen schon exestierenden Sprites haben will benutzte ich die Dynamische Nummerierung mit #PB_ANY. Das ganze sieht dann so bei mir aus:

Code: Alles auswählen

Procedure CreateMap(Mapnumbre,Lenght,Hight,Texturfarbe)
 AddElement(Map())
 Map()\MapSprite = CreateSprite(#PB_ANY,Lenght,Hight) 
 StartDrawing(SpriteOutput(Map()\MapSprite))
  If Texturfarbe = 0
   Box(0,0,Lenght,Hight,RGB(255,0,0)
  Else 
   Box(0,0,Lenght,Hight,RGB(0,255,0)
  Endif
 StopDrawing()
EndProcedure
Hier bekomm ich doch den Fehler bei "StartDrawing(SpriteOutput(Map()\MapSprite))", der sagt das dass Sprite Object nicht intilizierd wurde. Wenn ich das Ganze ohne eine Linked Liste schriebe, also statt "Map()\MapSprite" nur "MapSprite" schriebe funktioniert es, aber ich kann dann leider nicht die erwünschte Farbe aneigen lassen wenn es mehr als 1 Map gibt. Gibt es eine Möglichkeit es trotzdem wie von mit gewünscht zu machen? Wie gesagt ich habe mehrer Sprites und da es unbekjannt viele werden können kann ich die Spritenummer nicht einfach festlegen. Danke schonmal für eure Hilfe

Verfasst: 18.04.2006 13:48
von Kaeru Gaman
wie sieht denn die struct aus?

wenn es ohne LL funktioniert, sehe ich an dem code aktuell keinen grund, warum es nicht gehen sollte...

vielleicht ein typenkonflikt?

Verfasst: 18.04.2006 13:59
von wutschel
Mit meiner Struktur ist alles in Ordnung. Hab als Typ von Mapsrpiter in der Struktur schon Float angegeben, aber es will trotzdem nicht klappen. Rechtschreibfehler sind auch nicht im Code. Was soll ich tun??

Verfasst: 18.04.2006 14:03
von Kaeru Gaman
> Mapsrpiter in der Struktur schon Float angegeben

es sollte mE auf jeden fall long sein...


> Was soll ich tun??

wenn das hier funktioniert:

Code: Alles auswählen

 MapSprite = CreateSprite(#PB_ANY,Lenght,Hight) 
 StartDrawing(SpriteOutput(MapSprite)) 
aber das nicht:

Code: Alles auswählen

 Map()\MapSprite = CreateSprite(#PB_ANY,Lenght,Hight) 
 StartDrawing(SpriteOutput(Map()\MapSprite)) 
und du beide male long benutzt hast, dann kann der fehler nicht speziell dort liegen, sondern er liegt ganz wo anders...

...da musste man dann schon den kompletten code haben...