TList, Denkfehler?

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

s_m_w

Betreff: TList, Denkfehler?

BeitragMo, Jan 04, 2010 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe folgenden Type:
Code: [AUSKLAPPEN]
Type TFallingTile
  Global TFallingTileList:TList = New TList
 
  Global Sprite:TImage
  Global X:Float, Y:Float
  Global XVel:Float, YVel:Float
  Global R:Float
 
  Function Create:TFallingTile(x:Int, y:Int, Img:TImage = Null)
    Local NewFallingTile:TFallingTile = New TFallingTile
    If (Img)
      NewFallingTile.Sprite = Img
    Else
      NewFallingTile.Sprite = TTile.DefaultTile ' Funktioniert defintiv, nicht das Problem
   EndIf
   NewFallingTile.X = x
   NewFallingTile.Y = y
   TFallingTileList.AddLast(NewFallingTile)
   Return NewFallingTile
  End Function
   
  Method Draw(Cam:TCam)
     SetRotation Self.R
     DrawImage Self.Sprite, Self.X, Self.Y
     SetRotation 0
  End Method
End Type

erzeuge davon ein paar mit
Code: [AUSKLAPPEN]
      TFallingTile.Create(Rand(0, 300) + 50, Rand(0, 300) + 50)

Und zeichne sie schließlich in meiner Hauptschleife mit
Code: [AUSKLAPPEN]
   For Local FTile:TFallingTile = EachIn TFallingTile.TFallingTileList
      FTile.Draw(MyCam)
   Next

jedoch wird irgendwie nur das letzte Element gezeichnet? Wenn ich die Funktionalität für X/YVel einbaue wird das ganze noch komischer, er zeichnet nur ein Element und das wird immer schneller, je mehr Objekte ich erstelle, obwohl sich die Geschwindigkeitsvariablen nicht ändern. Wo ist mein Problem?
Sheep Happens

D2006

Administrator

BeitragMo, Jan 04, 2010 17:26
Antworten mit Zitat
Benutzer-Profile anzeigen
X und Y und die ganzen anderen Instanz-bezogenen Variablen dürfen nicht global sein. Ersetze an den Stellen Global mit Field. Wink
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

s_m_w

BeitragMo, Jan 04, 2010 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
D2006 hat Folgendes geschrieben:
X und Y und die ganzen anderen Instanz-bezogenen Variablen dürfen nicht global sein. Ersetze an den Stellen Global mit Field. Wink

...oha, das erklärt einiges. Dass so ein offensichtlicher Fehler mir soviel Kopfzerbrechen beschert hat..

edit: Naja, vielen Dank! Thread kann gelöscht/geschlossen werden
Sheep Happens

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group