カスタムマウスカーソル 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 は画像またはオフセットが変更されたときのみカーソルを変更します。
次の表はカーソルがなる様々な状態と対応する使用方法を示しています。 :
状態 |
使用方法 |
---|---|
|
他の状態が指定されない限り常に使用されます。より具体的キーがないときに使用されるため、常になければなりません。 |
|
プレイヤーが "Say" スクリーン上にいれば使用されます。 |
|
トランジション中使用されます。 |
|
(選択肢など)メニューで使用されます。 |
|
入力を求められると使用されます。 |
|
イメージマップで使用されます。 |
|
ボタンやイメージボタン上にプレイヤーがあれば使用されます。 |
|
ポーズや renpy.pause() 中に使用されます。 |
|
メインメニューで使用されます。 |
|
ゲームメニューで使用されます。 |
すべてのキーにはオプションで pressed_
という接頭辞をつけるられ、マウスが押されたときに使用するカーソルを示せます。例えば、 pressed_button
はユーザーがボタンをクリックしたときに使用されます。デフォルトの押されたカーソルのスタイルを定義するには、 pressed_default
キーを使用します。これは、他の押されたカーソルが定義されていない場合に使用されます。
例
define config.mouse = { }
define config.mouse['default'] = [ ( "gui/arrow.png", 0, 0) ]
define config.mouse['pressed_default'] = [ ( "gui/arrow_pressed.png", 0, 0) ]
define config.mouse['button'] = [ ( "gui/arrow_button.png", 0, 0) ]
define config.mouse['pressed_button'] = [ ( "gui/arrow_button_pressed.png", 0, 0) ]
define config.mouse['menu'] = [ ( "gui/arrow_menu.png", 0, 0) ] # This cursor will be used when the player is in a menu
# Since there is no "pressed_menu" cursor, "pressed_default" cursor will be used instead
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", "mouse spin", 9.9, 9.9)
マウスカーソルの使用 link
マウスカーソルの通常の使用方法では、そのカーソル名を指定する mouse
プロパティーをスクリーンのフォーカス可能なもの(ボタンやバー)に提供します。例
screen test():
textbutton "Mouse Test" action NullAction() mouse "spin"
default_mouse
を使用してグローバルなマウスカーソルの設定も可能です
$ default_mouse = "spin"