Bild wird nicht geladen

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
mbuettner
Beiträge: 88
Registriert: 14.05.2010 15:53
Computerausstattung: 3 GB RAM, Windows 7 32-Bit Home Premium
Wohnort: daheim
Kontaktdaten:

Bild wird nicht geladen

Beitrag 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
Bild
Bild
Die täglich beförderte Datenmenge des Internets beträgt 415 Petabyte oder 445.602.856.960 Megabyte!
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Bild wird nicht geladen

Beitrag 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 ...
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
mbuettner
Beiträge: 88
Registriert: 14.05.2010 15:53
Computerausstattung: 3 GB RAM, Windows 7 32-Bit Home Premium
Wohnort: daheim
Kontaktdaten:

Re: Bild wird nicht geladen

Beitrag 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)
Bild
Bild
Die täglich beförderte Datenmenge des Internets beträgt 415 Petabyte oder 445.602.856.960 Megabyte!
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Bild wird nicht geladen

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Bild wird nicht geladen

Beitrag 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()
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Bild wird nicht geladen

Beitrag 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
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten