Seite 1 von 1
Schriftgröße bei Loadfont
Verfasst: 14.08.2011 12:27
von DarkSoul
Hallo Forum,
ich habe ein Problem. Und zwar bei Loadfond(). Wenn ich da zum Beispiel die Schriftgröße 8 angebe, lädt er auch Schriftgröße 8 - aber nur, solange im Windows die Schriftvergrößerung aus ist. Bei meinem Großvater lädt er also tatsächlich z.B. Schriftgröße 12. Dabei kommt es zu Überschneidungen und geclippten Textstellen im DX-Screen.
Kann ich irgendwie dafür sorgen, dass wirklich IMMER Schriftgröße xy geladen wird, unabhängig von den Einstellungen im Windows?
mfG
Re: Schriftgröße bei Loadfont
Verfasst: 14.08.2011 12:58
von ts-soft
Umgekehrt wird ein Schuh draus, wie sorge ich dafür, das mein Dialog/Screen immer vollständig
lesbar ist unter Berücksichtigung der Font DPI des Anwenders.
Dein Großvater hat die Schrift ja nicht vergrößert um Dich zu ärgern
Da sind wohl komplexere Berechnungen notwendig, die sich nicht pauschal beantworten lassen.
Gruß
Thomas
Re: Schriftgröße bei Loadfont
Verfasst: 14.08.2011 13:27
von Kiffi
vielleicht ein Ansatzpunkt?
Calculate minimum gadget sizes (all OS)
Grüße ... Kiffi
Re: Schriftgröße bei Loadfont
Verfasst: 14.08.2011 15:12
von DarkSoul
Die Schriften des Spiels sind von haus aus sehr groß (16-24 Pixel). Die benötigen eigentlich keine weitere Vergrößerung, da diese auf 800x600 verwendet werden.
Re: Schriftgröße bei Loadfont
Verfasst: 14.08.2011 15:15
von ts-soft
Dann nimm doch Bitmap-Fonts, wie es IMHO in Spielen üblich ist.
Re: Schriftgröße bei Loadfont
Verfasst: 14.08.2011 16:40
von Danilo
Für Windows kannst Du auch gDrawing nehmen, wenn Du magst:
http://forums.purebasic.com/german/view ... =8&t=24539
Kleines Beispiel:
Code: Alles auswählen
EnableExplicit
XIncludeFile "gDrawing.pbi"
Define mainWin, quit
InitSprite()
InitKeyboard()
Procedure Screen()
ClearScreen(0)
If gStartDrawing(ScreenOutput())
gSetFont("Arial",200,#PB_Font_Bold)
gDrawText(100,100,"Text",RGBA($00,$00,$FF,$FF))
gDrawingMode(#PB_2DDrawing_Outlined)
gDrawText(100,100,"Text",RGBA($FF,$FF,$FF,$FF))
gBox(100,100,gTextWidth("Text"),gTextHeight(),RGBA($FF,$FF,$FF,$FF))
gStopdrawing()
EndIf
FlipBuffers()
EndProcedure
If gInit()
mainWin = OpenWindow(#PB_Any,0,0,800,600,"gDrawing",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(mainWin),0,0,800,600,0,0,0)
Repeat
Select WindowEvent()
Case #PB_Event_CloseWindow
quit = #True
EndSelect
Screen()
Until quit=#True
gEnd()
EndIf