トップへ戻る Cdrom || Color || Cursors || Display || Draw || Event || Examples || Font || Gfxdraw || Image || Joystick || Key || Locals || Mixer || Mouse || Movie || Music || Overlay || Pixelarray || Pygame || Rect || Scrap || Sndarray || Sprite || Surface || Surfarray || Tests || Time || Transform
pygame.font
    フォントの読み込みと文字描写を行うためのpygameモジュール

    fontモジュールを使用することで、新規にSurfaceを作成してその上にTrueTypeフォントの文字を描写することができます。このモジュール単体だけでは文字描写処理ができないので、SDL_ttfファイルを同じ階層に用意する必要があります。このpygame.fontモジュールを使用する前には、使用できる状態かを確認して初期化した方がよいでしょう。

    文字を描写する処理の殆どは、pygame.font.Font命令で作成したFontオブジェクトを使用して実行することになります。このモジュール自体は自身を初期化する機能とpygame.font.Font命令でFontオブジェクトを使用する機能しか持っていません。

    pygame.font.SysFont命令を使用してシステム上からfont情報を読み込むこともできます。他にもシステムフォントの検索に役立ついくつかの機能があります。

    Pygameの内部には既定のフォントが付属しています。命令を実行する際にフォント名にNoneを引数として渡すことで、その既定フォントを読み込むことができます。



    pygame.font.init
      pygame.fontモジュールを初期化します。
      pygame.font.init(): return None

      この命令はpygame.init命令を実行した時に自動的に呼び出されます。pygame.fontモジュールを初期化します。他の文字描写命令を実行する前には、モジュールの初期化を行わなくてはいけません。

      この命令を複数回実行したとしても特に問題ありません。



    pygame.font.quit
      pygame.fontモジュールの初期化を解除します。
      pygame.font.quit(): return None

      SDL_ttfのフォントシステムの初期化を手動で解除します。この命令はpygame.quit命令が実行された時に自動的に呼び出されます。

      フォントが初期化されていない状態でこの命令を実行しても、特に問題はありません。



    pygame.font.get_init
      pygame.fontモジュールが初期化されているか確認します。
      pygame.font.get_init(): return bool
      pygame.fontモジュールが初期化されているか確認します。

    pygame.font.get_default_font
      既定で使用されるフォントのファイル名を取得します。
      pygame.font.get_default_font(): return string

      システムフォントのファイル名を戻り値として返します。取得されるのはファイルのある階層も含んだフルパスではなく、ファイルの名前のみです。 これらのファイルは大抵フォントモジュールとおなじ階層にありますが、別の階層に保存することもできます。



    pygame.font.get_fonts
      使用できる全てのフォント名を取得します。
      pygame.font.get_fonts(): return list of strings

      ユーザーの環境で使用できる全てのフォント名をlist型の戻り値として返します。フォント名はスペースや句読点が削除された小文字の状態で取得されます。この命令は殆どの環境で使用できますが、使用可能フォントが見つからない場合は空のリストが戻り値として返されることもあります。



    pygame.font.match_font
      ユーザーの使用環境から指定したフォントを探します。
      pygame.font.match_font(name, bold=False, italic=False): return path

      ユーザーの使用環境にある指定したフォントファイルの、階層も含んだフルパスを戻り値として返します。bold引数やitalic引数にtrueを設定した場合は、それらの条件に最も近いフォントが取得されます。

      複数のフォント名をコンマで区切ったlist型にして指定することで、それらのフォントをまとめて検索することができます。指定した名前のフォントが見つからなかった場合は、Noneが戻り値として取得されます。

      使用例:

          print pygame.font.match_font('bitstreamverasans')
          # output is: /usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf
          # (but only if you have Vera on your system)
      


    pygame.font.SysFont
      システムフォントからフォントオブジェクトを作成します。
      pygame.font.SysFont(name, size, bold=False, italic=False): return Font

      システムフォントから条件に合うフォントを読み込み、それを戻り値として取得します。bold(太字)やitalic(斜体)といったフラグを設定していればそれが反映されたフォントが作成されます。 条件に合うシステムフォントが見つからない場合は、代わりにデフォルトのpygameフォントが読み込まれます。複数のフォントをまとめて検索する場合は、探したいフォント名をコンマで区切ったlist型にして引数に指定します。



    pygame.font.Font
      ファイルから情報を読み込んでフォントオブジェクトを作成します。
      pygame.font.Font(filename, size): return Font
      pygame.font.Font(object, size): return Font
        Font.render - Surfaceに文字を描写します。
        Font.size - 文字を描写するのに必要なスペース幅を取得します。
        Font.set_underline - 文字に下線を付けられる場合、その設定を有効にします。
        Font.get_underline - 文字に下線が付けられるかどうかチェックします。
        Font.set_bold - テキストの擬似的な太字描写を有効にします。
        Font.get_bold - 文字の太字設定が有効になっているかチェックします。
        Font.set_italic - 文字の擬似的な斜体描写を有効にします。
        Font.metrics - 指定した文字列の各文字のフォントメトリックを取得します。
        Font.get_italic - 文字の斜体設定が有効になっているかチェックします。
        Font.get_linesize - 描写する文字の行間幅を取得します。
        Font.get_height - フォントの縦幅を取得します。
        Font.get_ascent - フォントのアセント幅を取得します。
        Font.get_descent - フォントのディセント幅を取得します。

      引数として渡されたファイル名やpythonのファイルオブジェクトから、フォントを新規に読み込みます。size引数で指定するのはピクセル単位でのフォントの高さです。filename引数にNone値が設定された場合は、Pygameの既定フォントを読み込みます。指定した名前のフォントが読み込めなかった場合は例外が発生します。一度フォントを作成すると、後から高さを変更することができません。

      作成したFontオブジェクトは主にSurfaceへ文章を描写する際に使用します。太字や斜体といった描写条件を設定することもできますが、そういった設定をするよりは元々太字や斜体が設定されているフォントを読み込んだほうがいいでしょう。The rendered text can be regular strings or unicode.



      Font.render
        Surfaceに文字を描写します。
        Font.render(text, antialias, color, background=None): return Surface

        この命令では、指定した文字の描写されたSurfaceを新規に作成します。 Pygameでは作成済みのSurfaceに直接文字を描写することができません。:描写するためにはFont.render命令を使用して文字の画像 (Surface)をその都度作成し、作成済みSurfaceにコピー描写しなければならないのです。

        文字列は一行のみ描写することができます: のような改行文字は使用できません。 antialias引数にはtrueかfalseを設定します:trueを設定した場合は文字の角部分が滑らかに描写されます。 color引数では描写する文字の色を設定します:文字を青にするには(0,0,255)を設定します。追加で指定できるbackground引数では文字の背景色を設定します。background引数が設定されなかった場合、文字の背景は透明になります。

        作成されるSurfaceのサイズは、描写する文字が収まりきるのに必要な大きさとなります。(この大きさはFont.size()命令で取得できる値と同じものです)。""のように空の文字を引数に設定した場合、幅が1ピクセルで高さがフォントの大きさに等しい空のSurfaceが作成されます。

        設定した背景色やアンチエイリス使用の有無などによって、作成されるSurfacesのタイプも変わってきます。プログラムのパフォーマンスに関わるので、設定によってどういったタイプの画像描写が行われるのかを知っておいたほうがよいでしょう。 antialias引数にfalseを設定してアンチエイリスを使用しない場合、は二つのカラーパレットを持つ8bitの画像が作成され、背景色を透明にすると透明色が設定されます。antialias引数にtrueを設定してアンチエイリスを使用する場合は24bitのRGB形式の画像が作成され、背景色を透明にすると透明度が設定されます。

        最適化について:文字を表示する描写面の背景色が常に一色に限定されており、なおかつ文字にアンチエイリスが使用されている場合は、文字の背景色を透明にするのではなく描写面の背景色と同じ色に設定することでパフォーマンスを向上させることができます。この最適化によって、文字を描写する際には処理に時間がかかるが透明度ではなくより軽い透明色を参照して透明処理を行うので 、動きがよくなるのです。

        もじ改行文字' 'を画面に描写した場合、文字化けして判別不明の文字が表示されるでしょう。大抵は□マークが表示されます。文字を改行するためには自分で改行処理で作成する必要があります。

        この文字描写処理はマルチスレッドに対応している処理ではありません:シングルスレッドでのみ処理を行うことができます。



      Font.size
        文字を描写するのに必要なスペース幅を取得します。
        Font.size(text): return (width, height)

        文字を描写するのに必要な縦横サイズを戻り値として取得します。この命令を使用することで、文字を描写する際の表示位置を決める作業が楽になるでしょう。改行処理に使用できますし、他にも文字の配置変更が必要な特殊効果などで使用できるでしょう。

        大抵のフォントでは、特定の文字の組み合わせを描写する際に文字間隔の調整が行われるので注意してください。例えば"a"と"e"の二文字を描写する場合、 " ae"と続けて描写する際には文字の間隔調整が行われるので、"a" と "e"を個別に描写する際と比べてサイズが変わることもあります。



      Font.set_underline
        文字に下線を付けられる場合、その設定を有効にします。
        Font.set_underline(bool): return None

        可能な場合、全ての文字に下線を付けて描写します。この下線の太さは常に1ピクセルとなり、この1ピクセルはフォントの大きさには含まれません。この設定は太字や斜体の設定を組み合わせて使用することができます。



      Font.get_underline
        文字に下線が付けられるかどうかチェックします。
        Font.get_underline(): return bool

        文字に下線が付けられる場合はTrueが戻り値として返されます。



      Font.set_bold
        テキストの擬似的な太字描写を有効にします。
        Font.set_bold(bool): return None

        テキストの太字描写を有効にします。文字を引き伸ばして擬似的に太字に見せているだけなので、大抵のフォントで文字の見栄えが悪くなってしまいます。 可能ならば既に太字が設定されているフォントファイルを読み込んで描写したほうがよいでしょう。太字描写を有効にすると、通常の状態と比較して文字描写面の横幅が広くなります。この設定は斜体や下線の設定を組み合わせて使用することができます。



      Font.get_bold
        文字の太字設定が有効になっているかチェックします。
        Font.get_bold(): return bool

        文字の太字設定が有効になっている場合は戻り値としてTrueが返されます。



      Font.set_italic
        文字の擬似的な斜体描写を有効にします。
        Font.set_italic(bool): return None

        文字の擬似的な斜体描写を有効にします。文字を傾けて擬似的に斜体に見せているだけなので、大抵のフォントで文字の見栄えが悪くなってしまいます。 可能ならば既に斜体が設定されているフォントファイルを読み込んで描写したほうがよいでしょう。斜体描写を有効にすると、通常の状態と比較して文字描写面の横幅が広くなります。この設定は太字や下線の設定を組み合わせて使用することができます。

        ※原文では「Font.set_bold(bool)」と記載されていますが、誤りの可能性があるため「Font.set_italic(bool)」に変更しています。



      Font.metrics
        指定した文字列の各文字のフォントメトリックを取得します。
        Font.metrics(text): return list

        The list contains tuples for each character, which contain the minimum X offset, the maximum X offset, the minimum Y offset, the maximum Y offset and the advance offset (bearing plus width) of the character. [(minx, maxx, miny, maxy, advance), (minx, maxx, miny, maxy, advance), ...]



      Font.get_italic
        文字の斜体設定が有効になっているかチェックします。
        Font.get_italic(): return bool

        文字の斜体設定が有効になっている場合は戻り値としてTrueが返されます。



      Font.get_linesize
        描写する文字の行間幅を取得します。
        Font.get_linesize(): return int

        このフォントで描写する文字の、一行分の縦幅ピクセルを戻り値として取得します。 文字を改行したい場合は、この命令で取得した値分だけ文字の位置を下げて描写するのをお勧めします。



      Font.get_height
        フォントの縦幅を取得します。
        Font.get_height(): return int

        描写する文字の縦幅ピクセルを戻り値として返します。ここで取得できる値はフォントで使用される文字イメージの平均サイズです。



      Font.get_ascent
        フォントのアセント幅を取得します。
        Font.get_ascent(): return int

        フォントアセントの縦幅ピクセルを戻り値として返します。アセントとはフォントのベースラインから文字上部までのピクセル値です。



      Font.get_descent
        フォントのディセント幅を取得します。
        Font.get_descent(): return int

        フォントディセントの縦幅ピクセルを戻り値として返します。ディセントとはフォントのベースラインから文字下部までのピクセル値です。



トップへ戻る Cdrom || Color || Cursors || Display || Draw || Event || Examples || Font || Gfxdraw || Image || Joystick || Key || Locals || Mixer || Mouse || Movie || Music || Overlay || Pixelarray || Pygame || Rect || Scrap || Sndarray || Sprite || Surface || Surfarray || Tests || Time || Transform