Bild kann ncht angezeigt werden??!!

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Sephka

Betreff: Bild kann ncht angezeigt werden??!!

BeitragSa, Nov 27, 2010 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich lompile spuckt BMax "Unhandled Exeption:Attempt to access fiel or method of Null object"
Der Error kommt bei "DrawImage Panzer,1,1"
Code: [AUSKLAPPEN]
Global Number_of_Tanks = 10
'TYPE DEKLARIEREN
Type Tank
   Field X#,Y#
   Field Dir%, Armor%=100
   Field Speed#=2,Size%=25
   Global TankNumber=0 'Die aktuelle Zahl der Panzer     
End Type
'_____________________________________
'BILDER
Global Panzer:Timage = LoadImage("Panzer.bmp")
If Not Panzer Then RuntimeError("Bild kann nicht geladen werden")
Global bpanzer:Timage[359]
Global a:Int
'SetRotation(220)
DrawImage Panzer,1,1
Flip
WaitKey
'_____________________________________


Global Width :Int = 1024,Height:Int = 768
Graphics Width,Height

Global TankList:TList = CreateList() 'Liste machen

For Local Nr:Int = 1 To Number_of_Tanks
 Global NewTank:Tank   
   NewTank = New Tank
   
  NewTank.Armor = Rand(1,5)*10 'Erzeugt eine Zufallsbewaffnung 10,20,30,40 or 50
   NewTank.X = Rand(5,800) ;NewTank.Y = Rand(5,600)'Zufalls Startposition
   NewTank.Dir = Rand(0,360) 'Zufalls Richtung
   ListAddLast TankList,NewTank 'Gibt den neuen Panzer in die Panzerliste ein.
   Tank.TankNumber:+1 'Die Panzeranzahl wird um 1 erhöht
Next   

While Not KeyDown(Key_Escape)
   
   For T:Tank = EachIn TankList  'Lokale T hält jeweils den aktuellen Panzer in der Schleife
  SetColor 128,64,0 
  DrawRect(T.X,T.Y,T.Size,T.Size)
 ' DrawImage bpanzer[T.dir],T.X,T.Y
      SetColor 255,255,255;DrawText "Number of Tanks : "+Tank.TankNumber,20,20
      T.X:+T.Speed*Cos(T.Dir)
      T.Y:+T.Speed*Sin(T.Dir)
      If T.X > Width Then T.Dir = Rand(0,360);T.X = Width
      If T.X < 0 Then T.Dir = Rand(0,360);T.X = 0
      If T.Y > Height Then T.Dir = Rand(0,360);T.Y = Height
      If T.Y < 0 Then T.Dir = Rand(0,360);T.Y = 0
     
   Next 'Dieser Loop wird für jeden Panzer in der Liste ausgeführt, bis zum letzten.
   
Flip   ;Cls
Wend
Mein Freund und Helfer:
Win7 Home Premium SP1
AMD Athlon II X4 645 3.1GHZ
8GB Ram
64bit

ChaosCoder

BeitragSa, Nov 27, 2010 19:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast zwar nen merkwürdigen Aufbau deines Codes, aber was mir aufgefallen ist:

Du hast noch kein Grafikfenster bevor du DrawImage Panzer,1,1 aufrufst. Verlagere deine beiden Zeilen Code: [AUSKLAPPEN]
Global Width :Int = 1024,Height:Int = 768
Graphics Width,Height
nach oben und schau was dann passiert.

Ach, was ich gerade sehe, du möchtest alle Richtungen des Panzers in einem Array speichern. Das musste man nur beim alten BlitzBasic machen, da es keine Hardwarebeschleunigung hatte. Male deinen Panzer so: Code: [AUSKLAPPEN]
SetRotation T.Dir
DrawImage Panzer,T.X,T.Y
und alles wird gut. Smile
Projekte: Geolaria | aNemy
Webseite: chaosspace.de

Sephka

BeitragSa, Nov 27, 2010 19:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh ich Depp danke für den Tipp
Mein Freund und Helfer:
Win7 Home Premium SP1
AMD Athlon II X4 645 3.1GHZ
8GB Ram
64bit

Xeres

Moderator

BeitragSa, Nov 27, 2010 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Gewöhne dir auch gleich einen mehr OOP-artigen Stil an, und schreibe Globale, Methoden und Funktionen in den Type rein.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group