カスタムマウスカーソル link

Ren'Py はカスタムマウスカーソルを作成する2つのシステムがあります。1つ目はハードウェアマウスカーソルの利用であり、2つ目は Ren'Py を使用してマウスカーソルとして displayable を描画します。

ハードウェアマウスカーソルは以下の利点を持ちます :

  • 高速

  • とても低いオーバーヘッドで Ren'Py に他のことをする時間を残します。

以下の制限があります :

  • カーソルサイズは小さく制限されます。 32x32 が保証され、 64x64 は広く動作します。

  • カーソルは一連の画像ファイルに制限されます。

Ren'Py を使用してカーソルとして Displayable を描画するならこれらの制限は逆になります。カーソルは Ren'Py が描画できるどんなものでも可能な一方 Ren'Py が描画する必要があります。トリプルバッファリングがコンピュータで有効なら、ハードウェアカーソルではなかったラグが発生し得ます。

ハードウェアマウスカーソル link

ハードウェアカーソルは config.mouse 変数によって制御されます。この変数は辞書で構成され、マウス名をフレームリストにマップします。各フレームは 3要素のタプルであり、画像ファイルとその画像内の X, Y オフセットです。

define config.mouse = { }
define config.mouse['default'] = [ ( "gui/arrow.png", 0, 0) ]
define config.mouse['spin' ] = [
    ( "gui/spin0.png", 7, 7 ),
    ( "gui/spin1.png", 7, 7 ),
    ( "gui/spin2.png", 7, 7 ),
    ( "gui/spin3.png", 7, 7 ),
    ( "gui/spin4.png", 7, 7 ),
    ( "gui/spin5.png", 7, 7 ),
    ( "gui/spin6.png", 7, 7 ),
    ( "gui/spin7.png", 7, 7 ),
]

アニメーションが複数のフレームで構成されるなら、フレームは20fpsで再生されます。 Ren'Py は画像またはオフセットが変更されたときのみカーソルを変更します。

Displayable マウスカーソル link

Displayable カーソルは config.mouse_displayable 変数と MouseDisplayable displayable を使用します。例

image "mouse spin":
    "gui/spin0.png"
    rotate 0.0
    linear 1.0 rotate 360.0

    # Pause so image prediction can happen.
    pause 1.0

    repeat

define config.mouse_displayable = MouseDisplayable(
    "gui/arrow.png", 0, 0).add("spin", "spin mouse", 9.9, 9.9)
MouseDisplayable(cursor, x, y) link

マウスカーソル Displayable をラップして、プレイヤーがマウスを動かすときに画面に表示させる Displayable です。

cursor

マウスの描画に使用される Displayable です。

x, y

マウスの左上に対するピクセル数でのホットスポットの座標です。

マウスカーソルの使用 link

マウスカーソルの通常の使用方法では、そのカーソル名を指定する mouse プロパティーをスクリーンのフォーカス可能なもの(ボタンやバー)に提供します。例

screen test():
    textbutton "Mouse Test" actiuon NullAction mouse "spin"

default_mouse を使用してグローバルなマウスカーソルの設定も可能です

$ default_mouse = "spin"