Darstellung eines Sprite geht nicht

Anfängerfragen zum Programmieren mit PureBasic.
Martin66119
Beiträge: 282
Registriert: 03.01.2005 11:36

Darstellung eines Sprite geht nicht

Beitrag von Martin66119 »

Hallo und einen schönen guten Morgen!

Als Beginner mit Sprites habe ich das ein oder andere Problem. Folgender code klappt nicht. Das 3DSprite hat wie in der Hilfe die Größe 256x256. Jedoch erfolgt die Darstellung nicht korrekt. Was mache ich da falsch?

Code: Alles auswählen

;------------------------------Initialisierungen durchführen------------
If InitSprite() = 0 Or InitKeyboard() = 0 
  MessageRequester("Error", "Fehler Sprite", 0)
  End
EndIf

If InitSprite3D() = 0
  MessageRequester("Error", "Fehler 3D", 0)
  End
EndIf
;---------------------------------------------------------------------
If OpenWindow(0, 10, 10, 800, 600, "PureBasic Window", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)

 If OpenWindowedScreen(WindowID(0), 0, 0, 640, 480, 0, 0, 0)
      
   LoadSprite(1,"\Movie\Data\Bild.bmp", #PB_Sprite_Texture)

   CreateSprite3D(1, 1)
   Sprite3DQuality(1)   

   Repeat
     EventID = WaitWindowEvent()

 ;---------------------Sprite darstellen--------------------------------
      If Start3D()
        ZoomSprite3D(1, 200, 200)
        DisplaySprite3D(1, 40, 170)    
      EndIf
      Stop3D()  
      FlipBuffers()

      If EventID = #PB_Event_CloseWindow  ; If the user has pressed on   the close button
       Quit = 1
     EndIf
;----------------------------Ende Programmbereich------------------------     
     ExamineKeyboard()
  Until Quit = 1 Or KeyboardPushed(#PB_Key_Escape)
 EndIf  
EndIf

End  
Kann mir bitte jemand auf die Sprünge helfen?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

sehe auf den ersten blick keine fehler.

mir fällt auf, dass du waitwindowevent() verwendest.
also wird das sprite erst dargestellt, wenn ein event stattfindet...

aber ansonsten siehts ok aus... was genau geht denn nicht?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Martin66119
Beiträge: 282
Registriert: 03.01.2005 11:36

Beitrag von Martin66119 »

Der 3D Sprite den ich anzeigen will ist einfach mal ein Photo von mir.
Obwohl das Phot in Farbe ist wird es sw dargestellt mit horizontalen linien dargestellt. Und nicht nur das! Ich bin in sw auch noch mehrfach nebeneinander.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

wow.. das is ja mal ein fehler....

äh.. am system kanns glaubich nicht liegen...
bei mir läuft das proggi einwandfrei...

prüf mal, ob die ursprungsgrafik evtl. nur 256 farben hat...
schraub das mal auf 24bit farben hoch...

is im moment das einzige, was mir dazu einfällt..
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Martin66119
Beiträge: 282
Registriert: 03.01.2005 11:36

Beitrag von Martin66119 »

Danke für die schnelle Antworten. 24bit bitmap Farbe ist eingestellt. Wenn ich den code verändere und nur openscreen(640, 480, 16, "Sprite") verwende (also OpenWindow und OpenWindowedScreen weglasse) wird das Sprite korrekt geöffnet. Wenn ich jedoch auch in diesem
OpenScreen(640, 480, 24, "Sprite") 24bit Farbe verwende gehts genauso schief.

Das ganze verstehe ich nicht!!!!!!!!
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

so ein fehler ist mir noch nie untergekommen.

die 24bit farben einstellung beim screen funktioniert auch nicht auf jeder graka reibungslos, teste auch noch mal die 32bit an...

aber zumindest aufm desktop mit windowedscreen müßte es ja laufen...

hat du es nochmal getestet mit 24bit im bmp und 16/32 aufm desktop?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Martin66119
Beiträge: 282
Registriert: 03.01.2005 11:36

Beitrag von Martin66119 »

Deine Infos waren sehr gut! Ich habe das ganze mal auf einem anderen Rechner getestet und siehe da! es geht alles so wie es soll.

Nun stellt sich nur noch die Frage wie ich die 24Bit Farbtiefe in 16Bit Farbtife umkonvertieren kann in PB.

geht das irgendwie?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

gibt bestimmt grafikprogramme, mit denen man das machen kann, ich weiß aber im moment keines...

ist eigentlich auch nicht nötig, denn wenn man nen 16bit screen öffnet wird das sprite automatisch als 16bit geladen...

geht es denn nun auf deinem desktop? mit welchen einstellungen?

..du solltest sowohl bei deinem rechner als auch bei dem anderen wo es lief mal auf die farbtiefe des desktops achten...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Martin66119
Beiträge: 282
Registriert: 03.01.2005 11:36

Beitrag von Martin66119 »

Das Problem ist gelöst! Der Bildschirm war auf 24bit eingestellt. Wennich unter unter Windows die Einstellungen "16Bit" nehme klappts.

Nur wie kann ich mit PB im Programm auf diese Einstellung wechseln?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

24bit beim desktop?

absolut ungewöhnlich... welches system?

normal ist 16 oder 32.
24 gibts gar nicht mehr...


> Nur wie kann ich mit PB im Programm auf diese Einstellung wechseln?

lass es!
wenn du nen screen machst, kannst du die farbtiefe bestimmen.
wenn dein prog aufm desktop laufen soll, darf es die einstellungen nicht verändern.
das mag keiner, und programme die das tun, werden nicht benutzt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten