Aktuelle Zeit: 09.07.2020 09:45

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3
Autor Nachricht
 Betreff des Beitrags: Re: Sprite laden funktioniert nicht
BeitragVerfasst: 11.04.2020 13:05 
Offline

Registriert: 10.04.2020 12:19
Danke. Das Beispiel nutzt mir null Komma null in Sachen png-Sprites und ich will hier auch nicht länger nerven damit. Ich muß jetzt nach fast 10 Jahren Pause generell wieder auf die Beine kommen und dabei ist png-Sprite-Load nur eine ärgerliche Rand-Episode. Man muß sich ja nicht auf biegen und brechen verbeißen, und erst recht nicht dann, wenn so ein Beispiel-Code einen png-Sprite obendrein noch sogar ohne UsePNGImageDecoder() lädt, WOW. Ich will mit png-Sprites nichts mehr zu tun haben und früher ging es ja generell nur mit jpg.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sprite laden funktioniert nicht
BeitragVerfasst: 11.04.2020 19:36 
Offline
Benutzeravatar

Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg
Hallo Re57,

hier mal eine angepasste Version deines codes.
Du musst noch das Loadsprite ein-/auskommentieren, da mein sprite woanders liegt.

Code:
EnableExplicit

#Flags = #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget

UsePNGImageDecoder()

If InitSprite() = 0
   MessageRequester("InitSprite fehlgeschlagen", "Programm endet")
   End
EndIf

If OpenWindow(1,0,0,1366,700,"",#Flags) = 0
   MessageRequester("OpenWindow fehlgeschlagen", "Programm endet")
   End
EndIf

If OpenWindowedScreen(WindowID(1),0,0,1366,700) = 0
   MessageRequester("OpenWindowedScreen fehlgeschlagen", "Programm endet")
   End
EndIf

;LoadSprite(0, "C:\Users\lenovo\Desktop\Vsl.png")
LoadSprite(0, "D:\sprite.png")

StartDrawing(ScreenOutput())
   Box(0,0,1366,700,RGB(0,200,0)) ; grüner Hintergrund
StopDrawing()

DisplaySprite(0, 300, 300)
FlipBuffers()

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
End


GPI hat geschrieben:
WaitWindowEvent() würde ich nicht benutzen, sondern WindowEvent() - du musst ja im prinzip 60bilder pro sekunde Zeichnen und das geht nicht mit WaitWindowEvent()

Nein man muss nicht zwingend 60 mal pro Sekunde die ganze Szene neu zeichnen, wenn sich nichts darin ändert.
Man zeichent "in Ruhe" alles nötige auf den Buffer im Hintergrund und flippt ihn dann nach vorn, wenn alle Zeichenoperationen erledigt sind. Da kann er dann stundenlang ohne ein erneutes FlipBuffers() rumliegen und wird durchgehend auf dem Monitor angezeigt. Ist generell auch GPU schonender. Wenn man auf diese Weise eine Uhr mit Sekundenzeiger programmiert, dann muss die Szene nur 1 mal pro Sekunde geflippt werden.

Gruß Kurzer

_________________
"Never run a changing system!"
PB 5.72 x64, OS: Windows 7 Pro x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Ich bin Baujahr 1968, also aktuell 52.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sprite laden funktioniert nicht
BeitragVerfasst: 11.04.2020 20:38 
Offline

Registriert: 10.04.2020 12:19
Vielen Dank für die Code-Änderung und die weiteren Erklärungen zu LoadSprite() Ich hatte das nun so verstanden, daß ich versuchen sollte, die png-Datei unmittelbar zum dem Speicherort zu bringen, in welchem auch PureBasic selber liegt. Das habe ich ausprobiert, aber auch dann kam wieder die "not initialized"-Anzeige. Auch dann, wenn ich versuchsweise den ganzen Pfad zum neuen Speicherort angab. War gut gemeint, aber png-Sprite soll für mich erstmal kein weiteres Thema sein. Notfalls konvertiere ich einfach ganz wenige Sprites in jpg und damit kann ich dann arbeiten. Nochmals Danke.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 23 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Majestic-12 [Bot] und 12 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye