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 :mrgreen:

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