Seite 1 von 1

Bild wird nicht geladen

Verfasst: 14.05.2010 16:01
von mbuettner
Ich hoffe, ich bin hier richtig, wenn nicht, verschieben.
Hallo,

wenn ich ein Bild laden will (ca. 4 MB), dann erscheint nur ein blauer Bildschirm. Ich kann das Programm nicht Beenden und nicht zum Desktop zurückkehren. :bluescreen: Dann kann ich nur eins machen: Windows neu starten. Warum? Ist das Bild zu groß?

Code: Alles auswählen

If InitSprite() = 0 Or InitKeyboard() = 0
  MessageRequester("Error", "Can't open DirectX 7 Or later", 0)
  End
EndIf

If InitSprite3D() = 0
  MessageRequester("Error", "Direct3D system can't be initialized correctly", 0)
  End
EndIf

If OpenScreen(800, 600, 16, "Präsentation")

  LoadSprite(0, "Data\ueberschrift.bmp", #PB_Sprite_Texture)
  CreateSprite3D(0, 0)
  
  Sprite3DQuality(1)

  Repeat
    
    FlipBuffers()    
    ClearScreen(0,50,128)
    
    ; Draw our sprite
    ;
    If Start3D()
      If x <= 255
        DisplaySprite3D(0, x-20, 100, x)
      Else
        DisplaySprite3D(0, 235, 100, 255)
      EndIf
      
      Stop3D()
    EndIf
    
    ExamineKeyboard()
    
    x+1
  Until x > 500 Or KeyboardPushed(#PB_Key_Escape)
  x = 0
  LoadSprite(0, "Data\folie1.bmp", #PB_Sprite_Texture)
  CreateSprite3D(1, 0)
  Repeat
    FlipBuffers()
    ClearScreen(0,50,128)
    If Start3D()
      If x <= 255
        DisplaySprite3D(1,0,50,x)
      Else
        DisplaySprite3D(1,0,50,255)
      EndIf
      Stop3D()
    EndIf
  Until x > 500 Or KeyboardPushed(#PB_Key_Right)
Else
  MessageRequester("Error", "Can't open a 800*600 - 16 bit screen !", 0)
EndIf

End

Re: Bild wird nicht geladen

Verfasst: 14.05.2010 16:08
von STARGÅTE
ein paar SYSTEM Informationen wäre nciht schlecht.

Außerdem würde ich es erst mal auf einem WindowedScreen testen, wenn kannst du "einfacher" ausmachen^^

Wen du mit "blauer Bildschirm" einenen klassischen BlueScreen meinst, dann liegt es wahrscheinlcih an deiner Hardware und nicht speziell bei PB ...

4MB Bild (*.bmp) wäre dann 1000x1000 Pixel , das sollte locker machbar sein ...

Re: Bild wird nicht geladen

Verfasst: 14.05.2010 17:31
von mbuettner
OS: Windows 2000
Prozessor: AMD Athlon(tm) XP 2400+
RAM: 523760 KB
Mit blauen Bildschirm meine ich keinen Bluescreen, sondern den, den ich eingestellt habe.

Code: Alles auswählen

ClearScreen(0,50,128)

Re: Bild wird nicht geladen

Verfasst: 14.05.2010 17:43
von ts-soft
Zunächst mal sicherstellen, das Deine relativen Pfade auch stimmen, dann das Ergebnis von
LoadSprite überprüfen (das macht man grundsätzlich).

Gruß
Thomas

Re: Bild wird nicht geladen

Verfasst: 14.05.2010 17:53
von STARGÅTE
jetzt versteh ich erst was du meinst^^

Du hast in der unteren schleife n Fehler:

Code: Alles auswählen

Repeat
    FlipBuffers()
    ClearScreen(0,50,128)
    If Start3D()
      If x <= 255
        DisplaySprite3D(1,0,50,x)
      Else
        DisplaySprite3D(1,0,50,255)
      EndIf
      Stop3D()
    EndIf
  Until x > 500 Or KeyboardPushed(#PB_Key_Right)
Die läuft nämlich unendlich ...
weil die Abbruchbedingung nie erfüllt ist!
x wird nie größer als 500, weil x nicht mehr wächst sonden bei 0 bleibt,
da fehlt das x+1 von oben
genauso gibts nie ein KeyboardPushed(#PB_Key_Right)
weil du die Tastatur nicht mehr abfragst, wie oben:
ExamineKeyboard()

Re: Bild wird nicht geladen

Verfasst: 14.05.2010 22:17
von STARGÅTE
jo, weil es da nie auftaucht, es also "grob fahrlässig ist"

aber in dem Code oben, kam es ja min einmal vor, aber "schlechte Schleifenstruktur" erkennt auch nicht der Debugger/Compiler