Seite 1 von 4
wie gibt man text schnell auf grafik aus?
Verfasst: 19.01.2010 13:28
von DenKle
ich will in meinem spiel text transparent anzeigen zb für den highscore oder so...
aber es ruckelt o0
Code: Alles auswählen
InitSprite()
InitKeyboard()
InitMouse()
OpenScreen(800,600,32,"")
CreateSprite(999,8,8)
StartDrawing(SpriteOutput(999))
Box(0,0,8,8,RGB(0,255,255))
StopDrawing()
LoadFont(123,"Impact",28)
Repeat
ExamineKeyboard()
ExamineMouse()
ClearScreen(RGB(50,100,200))
StartDrawing(ScreenOutput())
DrawingFont(FontID(123))
DrawingMode(#PB_2DDrawing_Transparent)
DrawText(100,50,"text text text text text")
DrawText(100,100,"text text text text text")
DrawText(100,150,"text text text text text")
DrawText(100,200,"text text text text text")
DrawText(100,250,"text text text text text")
DrawText(100,300,"text text text text text")
DrawText(100,350,"text text text text text")
DrawText(100,400,"text text text text text")
DrawText(100,450,"text text text text text")
DrawText(100,500,"text text text text text")
StopDrawing()
DisplaySprite(999,MouseX(),MouseY())
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
End
Re: warum ist das so langsam & wie gebe ich text schneller aus?
Verfasst: 19.01.2010 13:47
von Kaeru Gaman
warum ist das so langsam
also, bei mir ist das nicht langsam.
- welche PureBasic Version benutzt du?
- welches Grafik-Subsystem hast du eingestellt?
- welches Betriebssystem benutzt du?
- was für eine Grafikkarte hast du?
- CPU und Hauptspeicher ist auch interessant.
wie gebe ich text schneller aus?
grundsätzlich ist die Darstellung von Sprites schneller, also du kannst einen vorhandenen Sprite-Font code
aus dem Code-Archiv oder dem Forum verwenden, oder dir fix selber was schreiben.
aber wie oben gesagt, eigentlich ist das bißchen Drawing nicht sonderlich langsam,
also erst mal rausfinden woran das liegt, sonst dokterst du an der falschen Baustelle herum.
Re: wie gibt man text schnell auf grafik aus?
Verfasst: 19.01.2010 13:57
von DenKle
probiert habe ich es mit: PB 4.40 & 4.41rc1, 32 & 64Bit, DirectX9 & 7...
mein PC: Windows7 64Bit, 4GBRAM, Core2Quad 4x2500MHz, Radeon HD4850 1GB
also bei mir kann ich den maus zeiger nicht mehr richtig bewegen
Re: wie gibt man text schnell auf grafik aus?
Verfasst: 19.01.2010 14:01
von Kiffi
bei mir (Vista Business 32Bit) läuft's auch zufriedenstellend schnell.
Der Mauszeiger lässt sich flüssig bewegen.
Grüße ... Kiffi
Re: wie gibt man text schnell auf grafik aus?
Verfasst: 19.01.2010 14:28
von DenKle
also wenn bei euch der zeiger nicht hargt ist das wohl ein "purebasic+windows7" bezogenes problem...
Re: wie gibt man text schnell auf grafik aus?
Verfasst: 19.01.2010 14:41
von WPö
Bei mir flimmert der Text nicht, der Mauszeiger aber ruckelt. Das Programm saugt 99% Rechenzeit, da keine Wartezeit eingebaut ist. Allerdings ist mein System schon etwas betagt: Centrino mit 1,86GHz und 2GB RAM, NVidia Go6800.
Warte doch auf ein Auffrischen des Bildinhalts und eine Veränderung des Textes, um neu zu schreiben.
Gruß - WPo
Re: wie gibt man text schnell auf grafik aus?
Verfasst: 19.01.2010 14:51
von Christian+
Bei mir läuft es ohne zu ruckeln mit PB 4.40 (64 Bit und 32 Bit) auf Windows 7 64 Bit. den Text zeigt es aber nur mit DirectX 7 an mit DirectX 9 sehe ich ihn nicht (werde mal schauen ob das Problem in 4.41 rc1 immer noch da ist).
Edit: Nun getestet mit PB 4.41 RC1 64 Bit unter DirectX 7 geht alles bei DirectX 9 sehe ich bei dem Beispiel Code von oben aber weiterhin keinen Text.
mfg Christian+
Re: wie gibt man text schnell auf grafik aus?
Verfasst: 19.01.2010 14:55
von Kaeru Gaman
WPo hat geschrieben:Warte doch auf ein Auffrischen des Bildinhalts und eine Veränderung des Textes, um neu zu schreiben.
für eine Fensteroberfläche hättest du recht, aber beim Screen
muss in jedem Frame alles wieder dargestellt werden.
@DenKle
Ändere mal die Art der Sync:
Code: Alles auswählen
OpenScreen(800,600,32,"Test",#PB_Screen_SmartSynchronization)
ich hatte vermutet, dass es vielleicht ein DX7+Aero Problem ist, deswegen die Frage nach deinem System.
wir sollten jetzt herausfinden, wo die Gemeinsamkeiten von Deinem und WPo's System liegen, dann kommen wir der Ursache auf die Spur.
Re: wie gibt man text schnell auf grafik aus?
Verfasst: 19.01.2010 15:19
von DenKle
geht nicht aber mit
Code: Alles auswählen
OpenScreen(800,600,32,"Test",#PB_Screen_NoSynchronization)
geht es
aber nun habe ich ja kein framerate limit mehr deswegen
aber bei
geht es wieder nicht was mir eigentlich egal ist weil es ja bei 60 geht was ich wollte aber???
Re: wie gibt man text schnell auf grafik aus?
Verfasst: 19.01.2010 15:24
von Kaeru Gaman
also, timing solltest du eher über nen Timer machen als über SetFrameRate.
mal ein beispiel wie man das beginnen kann:
http://www.purebasic.fr/german/viewtopic.php?t=17400
da die GetTickCount-API die ElapsedMilleseconds zugrundeliegt nicht genau genug ist für schneller als 30FpS, solltest du dir mal die Time-API ansehen.