Class: Miyako::Yuki
- Includes:
- Animation, SpriteBase
- Defined in:
- lib/Miyako/API/yuki.rb
Overview
Yuki本体クラス
Yukiの内容をオブジェクト化したクラス Yukiのプロット処理を外部メソッドで管理可能 プロットは、引数を一つ(Yuki2クラスのインスタンス)を取ったメソッドもしくはブロック として記述する。
Defined Under Namespace
Classes: Canceled, Command, CommandEX, CommandEx
Constant Summary collapse
- ALL_TRUE =
lambda{ true }
- @@common_use =
外部との共用変数を収めるところ
{}
Instance Attribute Summary collapse
-
#bgs ⇒ Object
readonly
Returns the value of attribute bgs.
-
#cancel_checks ⇒ Object
readonly
- release_checks
- ポーズ解除を問い合わせるブロックの配列。 callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。 ok_checks
- コマンド選択決定を問い合わせるブロックの配列。 callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。 cancel_checks
-
コマンド選択解除(キャンセル)を問い合わせるブロックの配列。 callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。.
-
#common_use ⇒ Object
readonly
Returns the value of attribute common_use.
-
#ok_checks ⇒ Object
readonly
- release_checks
- ポーズ解除を問い合わせるブロックの配列。 callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。 ok_checks
- コマンド選択決定を問い合わせるブロックの配列。 callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。 cancel_checks
-
コマンド選択解除(キャンセル)を問い合わせるブロックの配列。 callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。.
-
#on_disable ⇒ Object
readonly
Returns the value of attribute on_disable.
-
#post_cancel ⇒ Object
readonly
Returns the value of attribute post_cancel.
-
#post_command ⇒ Object
readonly
Returns the value of attribute post_command.
-
#post_pause ⇒ Object
readonly
Returns the value of attribute post_pause.
-
#pre_cancel ⇒ Object
readonly
Returns the value of attribute pre_cancel.
-
#pre_command ⇒ Object
readonly
Returns the value of attribute pre_command.
-
#pre_pause ⇒ Object
readonly
Returns the value of attribute pre_pause.
-
#pre_visibles ⇒ Object
readonly
Returns the value of attribute pre_visibles.
-
#release_checks ⇒ Object
readonly
- release_checks
- ポーズ解除を問い合わせるブロックの配列。 callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。 ok_checks
- コマンド選択決定を問い合わせるブロックの配列。 callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。 cancel_checks
-
コマンド選択解除(キャンセル)を問い合わせるブロックの配列。 callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。.
-
#selecting_procs ⇒ Object
readonly
- selecting_procs
-
コマンド選択時に行うブロックの配列。 ブロックは4つの引数を取る必要がある。 (1)コマンド決定ボタンを押した?(true/false) (2)キャンセルボタンを押した?(true/false) (3)キーパッドの移動量を示す配列() (4)マウスの位置を示す配列() <<(2.1.15-追加、省略可能)>> (5)現在指しているコマンドは選択可能?(true/false) (6)現在指しているコマンドの結果 callメソッドを持つブロックが使用可能。.
-
#update_clear(yuki) ⇒ Object
Yuki#clear呼び出し時に行わせる処理を実装するテンプレートメソッド 但し、メソッド本体は、update_clear=メソッドで設定する必要がある yuki:: 実行中のYukiクラスインスタンス.
-
#update_cr(yuki) ⇒ Object
Yuki#cr呼び出し時に行わせる処理を実装するテンプレートメソッド 但し、メソッド本体は、update_cr=メソッドで設定する必要がある yuki:: 実行中のYukiクラスインスタンス.
-
#update_inner(yuki) ⇒ Object
Yuki#update実行中に行わせる処理を実装するテンプレートメソッド 但し、メソッド本体は、update_inner=メソッドで設定する必要がある yuki:: 実行中のYukiクラスインスタンス.
-
#update_text(yuki, ch) ⇒ Object
Yuki#text実行中に行わせる処理を実装するテンプレートメソッド update_textテンプレートメソッドは、textメソッドで渡した文字列全体ではなく、 内部で1文字ずつ分割して、その字が処理されるごとに呼ばれる。 そのため、引数chで入ってくるのは、分割された1文字となる。 但し、メソッド本体は、update_text=メソッドで設定する必要がある yuki:: 実行中のYukiクラスインスタンス ch:: textメソッドで処理中の文字(分割済みの1文字).
-
#valign ⇒ Object
readonly
Returns the value of attribute valign.
-
#visible ⇒ Object
Returns the value of attribute visible.
-
#visibles ⇒ Object
readonly
Returns the value of attribute visibles.
Class Method Summary collapse
- .[](key) ⇒ Object
- .[]=(key, value) ⇒ Object
-
.add_method(name, &block) ⇒ Object
Yukiにメソッドを追加する(すべてのYukiインスタンスに適応) ブロックを渡すことで、Yukiに新しいメソッドを追加できる。 追加したメソッドは、すべてのYukiインスタンスで利用可能となる。 コンテキストはYukiクラスのインスタンスとなるため、Yukiスクリプトと同じ感覚でメソッドを追加できる。 ただし、すでに追加したメソッド(もしくはYukiクラスですでに追加されているメソッド)を追加しようとすると例外が発生する.
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
-
#add_method(name, &block) ⇒ Object
Yukiにメソッドを追加する(指定のYukiインスタンスのみ適応) ブロックを渡すことで、Yukiに新しいメソッドを追加できる。 追加したメソッドは、指定したYukiインスタンスのみ利用可能となる。 コンテキストはYukiクラスのインスタンスとなるため、Yukiスクリプトと同じ感覚でメソッドを追加できる。 ただし、すでに追加したメソッド(もしくはYukiクラスですでに追加されているメソッド)を追加しようとすると例外が発生する.
- #animation_all ⇒ Object
-
#bg_hide(*names) ⇒ Object
パーツで指定した背景を隠蔽する [[Yukiスクリプトとして利用可能]] 描画時に、指定したパーツを描画させないよう指定する names:: パーツ名(シンボル)、複数指定可能 返却値:: 自分自身を返す.
-
#bg_show(*names) ⇒ Object
パーツで指定した背景を表示する [[Yukiスクリプトとして利用可能]] 描画時に、指定したパーツを描画する すでにshowメソッドで表示指定している場合は、先頭に表示させる names:: パーツ名(シンボル)、複数指定可能(指定した順番に描画される) 返却値:: 自分自身を返す.
-
#bgs_names ⇒ Object
現在描画対象のパーツ名のリストを取得する [[Yukiスクリプトとして利用可能]] 現在描画しているパーツ名の配列を参照する。 実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。 Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される (例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。.
-
#bold(&block) ⇒ Object
太文字を描画する [[Yukiスクリプトとして利用可能]] ブロック内で指定した文字列を太文字で表示する (使用すると文字の端が切れてしまう場合あり!) 返却値:: 自分自身を返す.
-
#box_shared? ⇒ Boolean
コマンドボックスとテキストボックスを共用しているか問い合わせる [[Yukiスクリプトとして利用可能]] テキストボックスとコマンドボックスを共用しているときはtrueを返す 共用していなければfalseを返す 返却値:: true/false.
-
#call_plot(plot_proc = nil, &plot_block) ⇒ Object
プロット処理中に別のプロットを呼び出す 呼び出し可能なプロットは以下の2種類。(上から優先度が高い順).
-
#call_plot_block(*params, &plot_block) ⇒ Object
プロット処理中に別のプロットを呼び出す 呼び出し可能なプロットは以下の2種類。(上から優先度が高い順).
-
#call_plot_params(plot_proc, *params) ⇒ Object
プロット処理中に別のプロットを呼び出す 呼び出し可能なプロットは以下の2種類。(上から優先度が高い順).
-
#cancel_checks_during(procs, pre_procs = [], post_procs = []) ⇒ Object
ブロック評価中、コマンド選択キャンセル問い合わせメソッド配列を置き換える 同時に、コマンド選択開始時処理(Yuki#pre_cancel)、コマンド選択終了時処理(Yuki#post_cancel)を引数で設定できる。 ブロックの評価が終われば、メソッド配列・コマンド選択開始時処理・コマンド選択終了時処理を元に戻す procs:: 置き換えるメソッド配列(callメソッドを持ち、true/falseを返すメソッドの配列) pre_proc:: コマンド選択開始時に実行させるProc(デフォルトは[](何もしない)) post_proc:: コマンド選択キャンセル時に実行させるProc(デフォルトは[](何もしない)) 返却値:: 自分自身を返す.
-
#canceled? ⇒ Boolean
コマンド選択がキャンセルされたときの結果を返す [[Yukiスクリプトとして利用可能]] 返却値:: キャンセルされたときはtrue、されていないときはfalseを返す.
-
#clear ⇒ Object
テキストボックスの内容を消去する [[Yukiスクリプトとして利用可能]] 開業後にupdate_clearテンプレートメソッドが1回呼ばれる 返却値:: 自分自身を返す.
-
#color(color, &block) ⇒ Object
文字色を変更する [[Yukiスクリプトとして利用可能]] ブロック内で指定した文字列を、指定の色で描画する color:: 文字色 返却値:: 自分自身を返す.
-
#command(command_list, cancel_to = Miyako::Yuki::Canceled, &chain_block) ⇒ Object
コマンドを表示する [[Yukiスクリプトとして利用可能]] 表示対象のコマンド群をCommand構造体の配列で示す。 キャンセルのときの結果も指定可能(既定ではキャンセル不可状態) body_selectedをnilにした場合は、bodyと同一となる body_selectedを文字列を指定した場合は、文字色が赤色になることに注意 引数無しのブロックを渡せば、コマンド選択開始前に、決定判別・キャンセル判別に必要な前処理を施すことが出来る 選択中、update_innerメソッドを呼び出し、続けて、処理をYuki#startもしくはYuki#update呼び出し直後に戻す Yuki#updateが呼び出されても選択中の場合は、再び上記の処理を繰り返す command_list:: 表示するコマンド群。各要素はCommand構造体/CommandEx構造体の配列 cancel_to:: キャンセルボタンを押したときの結果。デフォルトはnil(キャンセル無効) chain_block:: コマンドの表示方法。TextBox#create_choices_chainメソッド参照 返却値:: 自分自身を返す.
-
#commandbox ⇒ Object
コマンドボックスを取得する [[Yukiスクリプトとして利用可能]] コマンドボックスが登録されていないときはnilを返す 返却値:: コマンドボックス.
-
#commandbox_all ⇒ Object
コマンドボックス全体を取得する [[Yukiスクリプトとして利用可能]] コマンドボックスが登録されていないときはnilを返す 返却値:: コマンドボックス全体.
-
#condition(&block) ⇒ Object
ブロックを条件として設定する [[Yukiスクリプトとして利用可能]] メソッドをMethodクラスのインスタンスに変換する block:: シナリオインスタンスに変換したいメソッド名(シンボル) 返却値:: シナリオインスタンスに変換したメソッド.
-
#cr(tm = 1) ⇒ Object
改行を行う [[Yukiスクリプトとして利用可能]] 開業後にupdate_crテンプレートメソッドが1回呼ばれる tm:: 改行回数。デフォルトは1 返却値:: 自分自身を返す.
-
#disable_mouse ⇒ Object
マウスでの制御を不可にする ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、 マウスでの利用を制限する Yukiクラスインスタンス生成時はマウス利用可能 返却値:: 自分自身を返す.
-
#dispose ⇒ Object
インスタンスで使用しているオブジェクトを解放する.
-
#enable_mouse ⇒ Object
マウスでの制御を可能にする ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、 それに加えて、マウスでもゲームパッド・キーボードでの制御が行える Yukiクラスインスタンス生成時はマウス利用可能 返却値:: 自分自身を返す.
-
#executing? ⇒ Boolean
プロット処理が実行中かどうかを確認する 返却値:: プロット処理実行中の時はtrueを返す.
-
#hide(*names) ⇒ Object
パーツで指定したオブジェクトを隠蔽する [[Yukiスクリプトとして利用可能]] 描画時に、指定したパーツを描画させないよう指定する names:: パーツ名(シンボル)、複数指定可能 返却値:: 自分自身を返す.
-
#hide_commandbox ⇒ Object
コマンドボックスを描画不可能にする [[Yukiスクリプトとして利用可能]] 返却値:: レシーバ.
-
#hide_textbox ⇒ Object
テキストボックスを描画不可能にする [[Yukiスクリプトとして利用可能]] 返却値:: レシーバ.
-
#initialize(*params, &proc) ⇒ Yuki
constructor
Yukiを初期化する.
-
#initialize_copy(obj) ⇒ Object
:nodoc:.
-
#is_scenario?(result) ⇒ Boolean
結果がシナリオかどうかを問い合わせる [[Yukiスクリプトとして利用可能]] 結果がシナリオ(メソッド)のときはtrueを返す 対象の結果は、選択結果、プロット処理結果ともに有効 返却値:: 結果がシナリオかどうか(true/false).
-
#is_scene?(result) ⇒ Boolean
結果がシーンかどうかを問い合わせる [[Yukiスクリプトとして利用可能]] 結果がシーン(シーンクラス名)のときはtrueを返す 対象の結果は、選択結果、プロット処理結果ともに有効 返却値:: 結果がシーンかどうか(true/false).
-
#italic(&block) ⇒ Object
斜体文字を描画する [[Yukiスクリプトとして利用可能]] ブロック内で指定した文字列を斜体で表示する (使用すると文字の端が切れてしまう場合あり!) 返却値:: 自分自身を返す.
-
#load_bg(name, filename) ⇒ Object
背景を登録する [[Yukiスクリプトとして利用可能]] 画面に表示する背景を登録する すでにshowメソッドで表示指定している場合は、先頭に表示させる name:: スプライト名(重複するときは上書き) filename:: 読み込むファイル名 返却値:: 自分自身を返す.
-
#load_bgm(name, filename) ⇒ Object
BGMを登録する [[Yukiスクリプトとして利用可能]] 音声ファイルを読み込み、BGMとして登録する 登録したBGMはpartsメソッドを使って参照できる name:: スプライト名(重複するときは上書き) filename:: 読み込むファイル名 返却値:: 自分自身を返す.
-
#load_se(name, filename) ⇒ Object
効果音を登録する [[Yukiスクリプトとして利用可能]] 音声ファイルを読み込み、効果音として登録する 登録した効果音はpartsメソッドを使って参照できる name:: スプライト名(重複するときは上書き) filename:: 読み込むファイル名 返却値:: 自分自身を返す.
-
#load_sprite(name, filename, pre = false) ⇒ Object
ファイル名で指定したスプライトを登録する [[Yukiスクリプトとして利用可能]] 画面に表示するスプライトを登録する すでにshowメソッドで表示指定している場合は、先頭に表示させる name:: スプライト名(重複するときは上書き) filename:: 読み込むファイル名 pre:: pre_visiblesに登録するときはtrue、visiblesに登録するときはfalseを渡す 省略時はfalse 返却値:: 自分自身を返す.
-
#mouse_enable? ⇒ Boolean
マウスでの制御を可・不可を問い合わせる マウスを利用できるときはtrue、利用できないときはfalseを返す 返却値:: true/false.
-
#now_page ⇒ Object
シナリオ上の現在のページを返す [[Yukiスクリプトとして利用可能]] 呼び出し当時、シナリオ上、pageメソッドでくくられていない場合は、nilを返す 返却値:: ページ名.
-
#ok_checks_during(procs, pre_procs = [], post_procs = []) ⇒ Object
ブロック評価中、コマンド選択決定問い合わせメソッド配列を置き換える 同時に、コマンド選択開始時処理(Yuki#pre_command)、コマンド選択終了時処理(Yuki#post_command)を引数で設定できる。 ブロックの評価が終われば、メソッド配列・コマンド選択開始時処理・コマンド選択終了時処理を元に戻す procs:: 置き換えるメソッド配列(callメソッドを持ち、true/falseを返すメソッドの配列) pre_proc:: コマンド選択開始時に実行させるProc(デフォルトは[](何もしない)) post_proc:: コマンド選択決定時に実行させるProc(デフォルトは[](何もしない)) 返却値:: 自分自身を返す.
- #over_engine ⇒ Object
- #over_engine=(engine) ⇒ Object
-
#over_exec(yuki = nil, plot = nil, *params) ⇒ Object
別のYukiエンジンを実行する [[Yukiスクリプトとして利用可能]] もう一つのYukiエンジンを実行させ、並行実行させることができる ウインドウの上にウインドウを表示したりするときに、このメソッドを使う renderメソッドで描画する際は、自分のインスタンスが描画した直後に描画される 自分自身を実行しようとするとMiyakoValueError例外が発生する yuki:: 実行対象のYukiインスタンス(事前にsetupの呼び出しが必要) plot:: プロットインスタンス。すでにsetupなどで登録しているときはnilを渡す params:: プロット実行開始時に、プロットに渡す引数 返却値:: 自分自身を返す.
-
#page(name, use_pause = true) ⇒ Object
シナリオ上の括り(ページ)を実装する [[Yukiスクリプトとして利用可能]] シナリオ上、「このプロットの明示的な範囲」を示すために使用する(セーブ時の再現位置の指定など) Yuki#select_first_pageメソッドで開始位置が指定されている場合、以下の処理を行う。 (1)select_first_pageメソッドで指定されたページから処理する。それまでのページは無視される (2)開始ページを処理する前に、select_first_pageメソッドの内容をクリアする(nilに変更する) このメソッドはブロックが必須。ブロックがないと例外が発生する。 name:: ページ名。select_first_pageメソッドは、この名前を検索する。また、now_pageメソッドの返却値でもある use_pause::ページの処理が終了した後、必ずpauseメソッドを呼び出すかどうかのフラグ。デフォルトはtrue 返却値:: select_first_pageメソッドで指定されていないページのときはnil、指定されているページの場合は引数nameの値.
-
#parts ⇒ Object
パーツを参照する [[Yukiスクリプトとして利用可能]] パーツの管理オブジェクトを、ハッシュとして参照する。 パーツ名nameを指定して、インスタンスを参照できる 未登録のパーツはnilが返る (例)parts.
-
#parts_names ⇒ Object
パーツ名の一覧を参照する [[Yukiスクリプトとして利用可能]] パーツ管理オブジェクトに登録されているパーツ名の一覧を配列として返す。 順番は登録順。 まだ何も登録されていないときは空の配列が返る。 (例)regist_parts :chr1, hoge regist_parts :chr2, fuga parts_names # => [:chr1, :chr2].
-
#pause ⇒ Object
ポーズを行う [[Yukiスクリプトとして利用可能]] ポーズが行われると、ポーズ用のカーソルが表示される 所定のボタンを押すとポーズが解除され、カーソルが消える 解除後は、プロットの続きを処理する 引数無しのブロックを渡せば、ポーズ開始前に行いたい処理を施すことが出来る ポーズ中、update_innerメソッドを呼び出し、続けて、処理をYuki#startもしくはYuki#update呼び出し直後に戻す Yuki#updateが呼び出されてもポーズ中の場合は、再び上記の処理を繰り返す (たとえば、一定時間後に自動的にポーズ解除する場合、そのタイマーを開始させるなど) 返却値:: 自分自身を返す.
-
#pause_and_clear ⇒ Object
ポーズをかけて、テキストボックスの内容を消去する [[Yukiスクリプトとして利用可能]] ポーズをかけ、ポーズを解除するときにテキストボックスの内容を消去する 返却値:: 自分自身を返す.
-
#pausing ⇒ Object
:nodoc:.
-
#pausing? ⇒ Boolean
メッセージ送り待ちの問い合わせメソッド [[Yukiスクリプトとして利用可能]] 返却値:: メッセージ送り待ちの時はtrueを返す.
-
#play(name) ⇒ Object
パーツで指定したオブジェクトを再生する [[Yukiスクリプトとして利用可能]] nameで指定したパーツを再生(例:BGM)する。 (但し、パーツで指定したオブジェクトがplayメソッドを持つことが条件) name:: パーツ名(シンボル) 返却値:: 自分自身を返す.
-
#plot_facade(plot_proc = nil, *params, &plot_block) ⇒ Object
:nodoc:.
-
#pre_hide(*names) ⇒ Object
パーツで指定したオブジェクトを隠蔽する [[Yukiスクリプトとして利用可能]] 描画時に、指定したパーツを描画させないよう指定する names:: パーツ名(シンボル)、複数指定可能 返却値:: 自分自身を返す.
-
#pre_show(*names) ⇒ Object
パーツで指定したオブジェクトを先頭に表示する [[Yukiスクリプトとして利用可能]] 描画時に、指定したパーツを描画する すでにshowメソッドで表示指定している場合は、先頭に表示させる names:: パーツ名(シンボル)、複数指定可能(指定した順番に描画される) 返却値:: 自分自身を返す.
-
#pre_visibles_names ⇒ Object
現在描画対象のパーツ名のリストを取得する [[Yukiスクリプトとして利用可能]] 現在描画しているパーツ名の配列を参照する。 実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。 Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される (例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。.
-
#process(*params) ⇒ Object
一旦処理をメインに戻す [[Yukiスクリプトとして利用可能]] Yukiスクリプト内で定義されているループ内処理から一旦抜け出し、メインループに戻る 追加したYukiスクリプトにループが含まれているとき、 ループを回すごとに画面更新やメイン処理を行いたいときに使う 但し、ページ名を指定しないときはnilを指定する。 params:: メインループに返す引数 返却値:: メインループから渡ってきた引数.
-
#regist_parts(name, parts) ⇒ Object
オブジェクトを登録する [[Yukiスクリプトとして利用可能]] オブジェクトをパーツnameとして登録する。 Yuki::partsで参照可能 name:: パーツ名(シンボル) parts:: 登録対象のインスタンス.
-
#release_checks_during(procs, pre_procs = [], post_procs = []) ⇒ Object
ブロック評価中、ポーズ解除問い合わせメソッド配列を置き換える 同時に、ポーズ時処理(Yuki#pre_pause)、ポーズ解除時処理(Yuki#post_pause)を引数で設定できる。 ブロックの評価が終われば、メソッド配列・ポーズ時処理・ポーズ解除時処理を元に戻す procs:: 置き換えるメソッド配列(callメソッドを持ち、true/falseを返すメソッドの配列) pre_proc:: ポーズ開始時に実行させるProc(デフォルトは[](何もしない)) post_proc:: ポーズ解除時に実行させるProc(デフォルトは[](何もしない)) 返却値:: 自分自身を返す.
-
#remove_parts(name) ⇒ Object
オブジェクトの登録を解除する [[Yukiスクリプトとして利用可能]] パーツnameとして登録されているオブジェクトを登録から解除する。 name:: パーツ名(シンボル).
-
#render ⇒ Object
Yuki#showで表示指定した画像を描画する 描画順は、showメソッドで指定した順に描画される(先に指定した画像は後ろに表示される) なお、visibleの値がfalseの時は描画されない。 返却値:: 自分自身を返す.
- #render_all ⇒ Object
-
#render_to(dst) ⇒ Object
Yuki#showで表示指定した画像を描画する 描画順は、showメソッドで指定した順に描画される(先に指定した画像は後ろに表示される) なお、visibleの値がfalseの時は描画されない。 返却値:: 自分自身を返す.
- #render_to_all(dst) ⇒ Object
- #reset_all ⇒ Object
-
#reset_cancel_checks ⇒ Object
コマンド選択キャンセル問い合わせメソッド配列を初期状態に戻す 返却値:: 自分自身を返す.
-
#reset_ok_checks ⇒ Object
コマンド選択決定問い合わせメソッド配列を初期状態に戻す 返却値:: 自分自身を返す.
-
#reset_pre_post_cancel ⇒ Object
コマンド選択キャンセル前後処理メソッド配列を初期状態に戻す pre_cancel/post_cancelの処理を初期状態([])に戻す 返却値:: 自分自身を返す.
-
#reset_pre_post_command ⇒ Object
コマンド選択前後処理メソッド配列を初期状態に戻す pre_command/post_commandの処理を初期状態([])に戻す 返却値:: 自分自身を返す.
-
#reset_pre_post_release ⇒ Object
ポーズ前後処理メソッド配列を初期状態に戻す pre_pause/post_pauseの処理を初期状態([])に戻す 返却値:: 自分自身を返す.
-
#reset_release_checks ⇒ Object
ポーズ解除問い合わせメソッド配列を初期状態に戻す 返却値:: 自分自身を返す.
-
#reset_selecting ⇒ Object
:nodoc:.
-
#result ⇒ Object
プロットの処理結果を返す [[Yukiスクリプトとして利用可能]] プロット処理の結果を返す。 まだ結果が得られていない場合はnilを得る プロット処理が終了していないのに結果を得られるので注意! 返却値:: プロットの処理結果.
-
#result=(ret = nil) ⇒ Object
プロット処理の結果を設定する [[Yukiスクリプトとして利用可能]] ret:: 設定する結果。デフォルトはnil 返却値:: 自分自身を返す.
-
#select_commandbox(box, box_all = nil) ⇒ Object
表示・描画対象のコマンドボックスを選択する 第2引数として、テキストボックス全体を渡せる(省略可能) 第1引数が、PartsやSpriteListの1部分のときに、第2引数を渡すことで、 テキストボックス全体を制御可能 第2引数を省略時は、全バージョンに引き続いて、テキストボックス本体のみを制御する [[Yukiスクリプトとして利用可能]] box:: テキストボックス本体 box_all:: テキストボックス全体.
-
#select_first_page(name) ⇒ Object
プロット上の最初に実行するページを指定知る [[Yukiスクリプトとして利用可能]] 但し、ページ名を指定しないときはnilを指定する。 name:: 最初に実行するページ名.
-
#select_plot(plot_proc) ⇒ Object
実行するプロットと登録する plot_proc:: プロットの実行部をインスタンス化したオブジェクト 返却値:: 自分自身を返す.
-
#select_result ⇒ Object
コマンドの選択結果を返す [[Yukiスクリプトとして利用可能]] コマンド選択の結果を返す。 まだ結果が得られていない場合はnilを得る プロット処理・コマンド選択が終了していないのに結果を得られるので注意! 返却値:: コマンドの選択結果.
-
#select_textbox(box, box_all = nil) ⇒ Object
表示・描画対象のテキストボックスを選択する 第2引数として、テキストボックス全体を渡せる(省略可能) 第1引数が、PartsやSpriteListの1部分のときに、第2引数を渡すことで、 テキストボックス全体を制御可能 第2引数を省略時は、全バージョンに引き続いて、テキストボックス本体のみを制御する [[Yukiスクリプトとして利用可能]] box:: テキストボックス本体 box_all:: テキストボックス全体.
-
#selecting ⇒ Object
:nodoc:.
-
#selecting? ⇒ Boolean
コマンド選択中の問い合わせメソッド [[Yukiスクリプトとして利用可能]] 返却値:: コマンド選択中の時はtrueを返す.
-
#setup(*params, &proc) ⇒ Object
シーンのセットアップ時に実行する処理.
-
#show(*names) ⇒ Object
パーツで指定したオブジェクトを先頭に表示する [[Yukiスクリプトとして利用可能]] 描画時に、指定したパーツを描画する すでにshowメソッドで表示指定している場合は、先頭に表示させる names:: パーツ名(シンボル)、複数指定可能(指定した順番に描画される) 返却値:: 自分自身を返す.
-
#show_commandbox ⇒ Object
コマンドボックスを描画可能にする [[Yukiスクリプトとして利用可能]] 返却値:: レシーバ.
-
#show_textbox ⇒ Object
テキストボックスを描画可能にする [[Yukiスクリプトとして利用可能]] 返却値:: レシーバ.
-
#size(size, valign = @valign, &block) ⇒ Object
文字の大きさを変更する [[Yukiスクリプトとして利用可能]] ブロック内で指定した文字列を、指定の大きさで描画する size:: 文字の大きさ(整数) valign:: 文字の縦の位置(top, middle, bottom)。デフォルトは:middle(Yuki#valign=,Yuki#valign_duringで変更可能) 返却値:: 自分自身を返す.
-
#start(name) ⇒ Object
パーツで指定したオブジェクトの処理を開始する [[Yukiスクリプトとして利用可能]] nameで指定したパーツが持つ処理(例:アニメーション)を開始する。 (但し、パーツで指定したオブジェクトがstartメソッドを持つことが条件) name:: パーツ名(シンボル) 返却値:: 自分自身を返す.
- #start_all ⇒ Object
-
#start_plot(plot_proc = nil, *params, &plot_block) ⇒ Object
プロット処理を実行する(明示的に呼び出す必要がある場合) 引数もしくはブロックで指定したプロット処理を非同期に実行する。 呼び出し可能なプロットは以下の3種類。(上から優先度が高い順) プロットが見つからなければ例外が発生する.
-
#stop(name) ⇒ Object
パーツで指定したオブジェクトの処理を停止する [[Yukiスクリプトとして利用可能]] nameで指定したパーツが持つ処理を停止する。 (但し、パーツで指定したオブジェクトがstopメソッドを持つことが条件) name:: パーツ名(シンボル) 返却値:: 自分自身を返す.
- #stop_all ⇒ Object
-
#text(txt) ⇒ Object
テキストボックスに文字を表示する [[Yukiスクリプトとして利用可能]] テキストボックスとして用意している画像に文字を描画する。 描画する単位(文字単位、文字列単位)によって、挙動が違う。 (文字単位の時) Yuki#text_by_charメソッドと同じ挙動。 (文字列単位の時) Yuki#text_by_strメソッドと同じ挙動。 デフォルトは文字単位。 引数txtの値は、内部で1文字ずつ分割され、1文字描画されるごとに、 update_textメソッドが呼び出され、続けてYuki#start_plotもしくはYuki#updateメソッド呼び出し直後に戻る txt:: 表示させるテキスト 返却値:: 自分自身を返す.
-
#text_by_char(txt) ⇒ Object
テキストボックスに文字を1文字ずつ表示する [[Yukiスクリプトとして利用可能]] 引数txtの値は、内部で1文字ずつ分割され、1文字描画されるごとに、 update_textメソッドが呼び出され、続けてYuki#start_plotもしくはYuki#updateメソッド呼び出し直後に戻る 注意として、改行が文字列中にあれば改行、タブやフィードが文字列中にあれば、nilを返す。 txt:: 表示させるテキスト 返却値:: 自分自身を返す.
-
#text_by_char_rapid(txt) ⇒ Object
テキストボックスに文字を1文字ずつ表示する [[Yukiスクリプトとして利用可能]] 引数txtの値は、内部で1文字ずつ分割され、1文字描画されるごとに、 update_textメソッドが呼び出され、続けてYuki#start_plotもしくはYuki#updateメソッド呼び出し直後に戻る 注意として、改行が文字列中にあれば改行、タブやフィードが文字列中にあれば、nilを返す。 txt:: 表示させるテキスト 返却値:: 自分自身を返す.
-
#text_by_str(txt) ⇒ Object
テキストボックスに文字を表示する [[Yukiスクリプトとして利用可能]] 文字列が描画されるごとに、update_textメソッドが呼び出され、 続けてYuki#start_plotもしくはYuki#updateメソッド呼び出し直後に戻る 注意として、改行が文字列中にあれば改行、タブやフィードが文字列中にあれば、nilを返す。 txt:: 表示させるテキスト 返却値:: 自分自身を返す.
-
#text_by_str_rapid(txt) ⇒ Object
テキストボックスに文字を表示する [[Yukiスクリプトとして利用可能]] 文字列が描画されるごとに、update_textメソッドが呼び出され、 続けてYuki#start_plotもしくはYuki#updateメソッド呼び出し直後に戻る 注意として、改行が文字列中にあれば改行、タブやフィードが文字列中にあれば、nilを返す。 txt:: 表示させるテキスト 返却値:: 自分自身を返す.
-
#text_method(mode) ⇒ Object
テキストボックスに文字を表示する方法を指定する 引数に、:charを渡すと1文字ごと、:stringを渡すと文字列ごとに表示される。それ以外を指定したときは例外が発生 ブロックを渡せば、ブロックの評価中のみ設定が有効になる。 ブロック評価終了後、呼び出し前の設定に戻る mode:: テキストの表示方法。:charのときは文字ごと、:stringのときは文字列ごとに表示される。それ以外を指定したときは例外が発生 返却値:: 自分自身を返す.
-
#textbox ⇒ Object
テキストボックスを取得する [[Yukiスクリプトとして利用可能]] テキストボックスが登録されていないときはnilを返す 返却値:: テキストボックス.
-
#textbox_all ⇒ Object
テキストボックス全体を取得する [[Yukiスクリプトとして利用可能]] テキストボックスが登録されていないときはnilを返す 返却値:: テキストボックス全体.
-
#to_plot(&plot) ⇒ Object
プロット用ブロックをYukiへ渡すためのインスタンスを作成する プロット用に用意したブロック(ブロック引数無し)を、Yukiでの選択結果や移動先として利用できる インスタンスに変換する 返却値:: ブロックをオブジェクトに変換したものを返す.
- #under_engine ⇒ Object
- #under_engine=(engine) ⇒ Object
-
#under_line(&block) ⇒ Object
下線付き文字を描画する [[Yukiスクリプトとして利用可能]] ブロック内で指定した文字列を下線付きで表示する 返却値:: 自分自身を返す.
-
#update ⇒ Object
プロット処理を更新する ポーズ中、コマンド選択中、 Yuki#wait メソッドによるウェイトの状態確認を行う。 プロット処理の実行確認は出来ない.
-
#update_animation ⇒ Object
Yuki#showで表示指定した画像のアニメーションを更新する showメソッドで指定した画像のupdate_animationメソッドを呼び出す 返却値:: 描く画像のupdate_spriteメソッドを呼び出した結果を配列で返す.
-
#update_plot_input ⇒ Object
プロット処理に使用する入力情報を更新する ポーズ中、コマンド選択中に使用する入力デバイスの押下状態を更新する (但し、プロット処理の実行中にのみ更新する) Yuki#update メソッドをそのまま使う場合は呼び出す必要がないが、 Yuki#exec_plot メソッドを呼び出す プロット処理の場合は、メインスレッドから明示的に呼び出す必要がある 返却値:: nil を返す.
-
#valign_during(valign) ⇒ Object
ブロック評価中、行中の表示位置を変更する [[Yukiスクリプトとして利用可能]] ブロックを評価している間だけ、デフォルトの縦の表示位置を変更する 変更できる値は、:top、:middle、:bottomの3種類。 ブロックを渡していないときはエラーを返す valign:: 文字の縦の位置(top, middle, bottom) 返却値:: 自分自身を返す.
- #vars ⇒ Object
- #vars_names ⇒ Object
-
#visibles_names ⇒ Object
現在描画対象のパーツ名のリストを取得する [[Yukiスクリプトとして利用可能]] 現在描画しているパーツ名の配列を参照する。 実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。 Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される (例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。.
-
#wait(length) ⇒ Object
プロットの処理を待機する [[Yukiスクリプトとして利用可能]] 指定の秒数(少数可)、プロットの処理を待機する。 待機中、update_innerメソッドを呼び出し、続けて、処理をYuki#startもしくはYuki#update呼び出し直後に戻す Yuki#updateが呼び出されても待機中の場合は、再び上記の処理を繰り返す length:: 待機する長さ。単位は秒。少数可。 返却値:: 自分自身を返す.
-
#wait_by_cond(cond = nil) ⇒ Object
条件に合っていればポーズをかける [[Yukiスクリプトとして利用可能]] 引数で設定した条件(Proc,メソッドインスタンス,ブロック)を評価した結果、trueのときはポーズを行い、 condの値がnilで、ブロックが渡されていないときは何もしない falseのときは改行してプロットの処理を継続する cond:: 条件を示すオブジェクト(返却値はtrue/false)。デフォルトはnil(渡されたブロックを評価する) 返却値:: 自分自身を返す.
-
#wait_by_finish(name) ⇒ Object
遷移図の処理が終了するまで待つ [[Yukiスクリプトとして利用可能]] nameで指定した遷移図の処理が終了するまで、プロットを停止する name: 遷移図名(シンボル) 返却値:: 自分自身を返す.
-
#wait_over_exec ⇒ Object
別のYukiエンジンの実行が終わるまで待つ [[Yukiスクリプトとして利用可能]] over_execを呼び出した時、処理がすぐに次の行へ移るため、 over_execの処理が終了するのを待たせるためのメソッド 返却値:: 自分自身を返す.
-
#waiting ⇒ Object
:nodoc:.
-
#waiting? ⇒ Boolean
Yuki#waitメソッドによる処理待ちの問い合わせメソッド [[Yukiスクリプトとして利用可能]] 返却値:: 処理待ちの時はtrueを返す.
Methods included from Animation
anim_hash, #reset, reset, start, stop, update, update_animation
Methods included from SpriteBase
#bitmap, #image_rect, #image_size, #oh, #oh=, #ow, #ow=, #ox, #ox=, #oy, #oy=, #part_rect, #rect, #render_d, #render_xy, #render_xy_to, #to_sprite, #to_unit
Constructor Details
#initialize(*params, &proc) ⇒ Yuki
Yukiを初期化する
ブロック引数として、テキストボックスの変更などの処理をブロック内に記述することが出来る。 引数の数とブロック引数の数が違っていれば例外が発生する
- params
-
ブロックに渡す引数リスト(ただし、ブロックを渡しているときのみに有効)
238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 |
# File 'lib/Miyako/API/yuki.rb', line 238 def initialize(*params, &proc) @yuki = { } @over_yuki = nil @under_yuki = nil @over_exec = false @text_box = nil @command_box = nil @text_box_all = nil @command_box_all = nil @executing = false @exec_plot = nil @pausing = false @selecting = false @waiting = false @pause_release = false @select_ok = false @select_cancel = false @select_amount = [0, 0] @cencel = nil @mouse_amount = nil @mouse_enable = true @result = nil @plot_result = nil @update_inner = lambda{|yuki|} @update_text = lambda{|yuki, ch|} @update_cr = lambda{|yuki|} @update_clear = lambda{|yuki|} @parts = {} @visibles = SpriteList.new @pre_visibles = SpriteList.new @bgs = SpriteList.new @vars = {} @visible = true @executing_fiber = nil @text_methods = {:char => self.method(:text_by_char), :char_rapid => self.method(:text_by_char_rapid), :string => self.method(:text_by_str), :string_rapid => self.method(:text_by_str_rapid) } @text_method_name = :char @valign = :middle @release_checks_default = [ lambda{ Input.pushed_any?(:btn1, :spc) }, lambda{ @mouse_enable && Input.click?(:left) } ] @release_checks = @release_checks_default.dup @ok_checks_default = [ lambda{ Input.pushed_any?(:btn1, :spc) }, lambda{ @mouse_enable && self.commandbox.attach_any_command?(*Input.get_mouse_position) && Input.click?(:left) } ] @ok_checks = @ok_checks_default.dup @cancel_checks_default = [ lambda{ Input.pushed_any?(:btn2, :esc) }, lambda{ @mouse_enable && Input.click?(:right) } ] @cancel_checks = @cancel_checks_default.dup @key_amount_proc = lambda{ Input.pushed_amount } @mouse_amount_proc = lambda{ Input.mouse_cursor_inner? ? Input.get_mouse_position : nil } @pre_pause = [] @pre_command = [] @pre_cancel = [] @post_pause = [] @post_command = [] @post_cancel = [] @on_disable = [] @selecting_procs = [] @is_outer_height = self.method(:is_outer_height) @now_page = nil @first_page = nil @common_use = {} raise MiyakoProcError, "Argument count is not same block parameter count!" if proc && proc.arity.abs != params.length instance_exec(*params, &proc) if block_given? end |
Instance Attribute Details
#bgs ⇒ Object (readonly)
Returns the value of attribute bgs.
182 183 184 |
# File 'lib/Miyako/API/yuki.rb', line 182 def bgs @bgs end |
#cancel_checks ⇒ Object (readonly)
- release_checks
-
ポーズ解除を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
- ok_checks
-
コマンド選択決定を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
- cancel_checks
-
コマンド選択解除(キャンセル)を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
189 190 191 |
# File 'lib/Miyako/API/yuki.rb', line 189 def cancel_checks @cancel_checks end |
#common_use ⇒ Object (readonly)
Returns the value of attribute common_use.
179 180 181 |
# File 'lib/Miyako/API/yuki.rb', line 179 def common_use @common_use end |
#ok_checks ⇒ Object (readonly)
- release_checks
-
ポーズ解除を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
- ok_checks
-
コマンド選択決定を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
- cancel_checks
-
コマンド選択解除(キャンセル)を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
189 190 191 |
# File 'lib/Miyako/API/yuki.rb', line 189 def ok_checks @ok_checks end |
#on_disable ⇒ Object (readonly)
Returns the value of attribute on_disable.
190 191 192 |
# File 'lib/Miyako/API/yuki.rb', line 190 def on_disable @on_disable end |
#post_cancel ⇒ Object (readonly)
Returns the value of attribute post_cancel.
190 191 192 |
# File 'lib/Miyako/API/yuki.rb', line 190 def post_cancel @post_cancel end |
#post_command ⇒ Object (readonly)
Returns the value of attribute post_command.
190 191 192 |
# File 'lib/Miyako/API/yuki.rb', line 190 def post_command @post_command end |
#post_pause ⇒ Object (readonly)
Returns the value of attribute post_pause.
190 191 192 |
# File 'lib/Miyako/API/yuki.rb', line 190 def post_pause @post_pause end |
#pre_cancel ⇒ Object (readonly)
Returns the value of attribute pre_cancel.
190 191 192 |
# File 'lib/Miyako/API/yuki.rb', line 190 def pre_cancel @pre_cancel end |
#pre_command ⇒ Object (readonly)
Returns the value of attribute pre_command.
190 191 192 |
# File 'lib/Miyako/API/yuki.rb', line 190 def pre_command @pre_command end |
#pre_pause ⇒ Object (readonly)
Returns the value of attribute pre_pause.
190 191 192 |
# File 'lib/Miyako/API/yuki.rb', line 190 def pre_pause @pre_pause end |
#pre_visibles ⇒ Object (readonly)
Returns the value of attribute pre_visibles.
182 183 184 |
# File 'lib/Miyako/API/yuki.rb', line 182 def pre_visibles @pre_visibles end |
#release_checks ⇒ Object (readonly)
- release_checks
-
ポーズ解除を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
- ok_checks
-
コマンド選択決定を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
- cancel_checks
-
コマンド選択解除(キャンセル)を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
189 190 191 |
# File 'lib/Miyako/API/yuki.rb', line 189 def release_checks @release_checks end |
#selecting_procs ⇒ Object (readonly)
- selecting_procs
-
コマンド選択時に行うブロックの配列。
ブロックは4つの引数を取る必要がある。 (1)コマンド決定ボタンを押した?(true/false) (2)キャンセルボタンを押した?(true/false) (3)キーパッドの移動量を示す配列() (4)マウスの位置を示す配列() <<(2.1.15-追加、省略可能)>> (5)現在指しているコマンドは選択可能?(true/false) (6)現在指しているコマンドの結果 callメソッドを持つブロックが使用可能。
201 202 203 |
# File 'lib/Miyako/API/yuki.rb', line 201 def selecting_procs @selecting_procs end |
#update_clear(yuki) ⇒ Object
Yuki#clear呼び出し時に行わせる処理を実装するテンプレートメソッド
但し、メソッド本体は、update_clear=メソッドで設定する必要がある
- yuki
-
実行中のYukiクラスインスタンス
176 177 |
# File 'lib/Miyako/API/yuki.rb', line 176 def update_clear(yuki) end |
#update_cr(yuki) ⇒ Object
Yuki#cr呼び出し時に行わせる処理を実装するテンプレートメソッド
但し、メソッド本体は、update_cr=メソッドで設定する必要がある
- yuki
-
実行中のYukiクラスインスタンス
170 171 |
# File 'lib/Miyako/API/yuki.rb', line 170 def update_cr(yuki) end |
#update_inner(yuki) ⇒ Object
Yuki#update実行中に行わせる処理を実装するテンプレートメソッド
但し、メソッド本体は、update_inner=メソッドで設定する必要がある
- yuki
-
実行中のYukiクラスインスタンス
154 155 |
# File 'lib/Miyako/API/yuki.rb', line 154 def update_inner(yuki) end |
#update_text(yuki, ch) ⇒ Object
Yuki#text実行中に行わせる処理を実装するテンプレートメソッド
update_textテンプレートメソッドは、textメソッドで渡した文字列全体ではなく、 内部で1文字ずつ分割して、その字が処理されるごとに呼ばれる。 そのため、引数chで入ってくるのは、分割された1文字となる。 但し、メソッド本体は、update_text=メソッドで設定する必要がある
- yuki
-
実行中のYukiクラスインスタンス
- ch
-
textメソッドで処理中の文字(分割済みの1文字)
164 165 |
# File 'lib/Miyako/API/yuki.rb', line 164 def update_text(yuki, ch) end |
#valign ⇒ Object (readonly)
Returns the value of attribute valign.
182 183 184 |
# File 'lib/Miyako/API/yuki.rb', line 182 def valign @valign end |
#visible ⇒ Object
Returns the value of attribute visible.
180 181 182 |
# File 'lib/Miyako/API/yuki.rb', line 180 def visible @visible end |
#visibles ⇒ Object (readonly)
Returns the value of attribute visibles.
182 183 184 |
# File 'lib/Miyako/API/yuki.rb', line 182 def visibles @visibles end |
Class Method Details
.[](key) ⇒ Object
142 143 144 |
# File 'lib/Miyako/API/yuki.rb', line 142 def Yuki.[](key) @@common_use[key] end |
.[]=(key, value) ⇒ Object
146 147 148 149 |
# File 'lib/Miyako/API/yuki.rb', line 146 def Yuki.[]=(key, value) @@common_use[key] = value value end |
.add_method(name, &block) ⇒ Object
Yukiにメソッドを追加する(すべてのYukiインスタンスに適応)
ブロックを渡すことで、Yukiに新しいメソッドを追加できる。 追加したメソッドは、すべてのYukiインスタンスで利用可能となる。 コンテキストはYukiクラスのインスタンスとなるため、Yukiスクリプトと同じ感覚でメソッドを追加できる。 ただし、すでに追加したメソッド(もしくはYukiクラスですでに追加されているメソッド)を追加しようとすると例外が発生する
- name
-
ブロックに渡す引数リスト
- block
-
メソッドとして実行させるブロック
211 212 213 214 215 216 |
# File 'lib/Miyako/API/yuki.rb', line 211 def Yuki.add_method(name, &block) name = name.to_sym raise MiyakoError, "Already added method! : #{name.to_s}" if self.methods.include?(name) define_method(name, block) return nil end |
Instance Method Details
#[](key) ⇒ Object
452 453 454 |
# File 'lib/Miyako/API/yuki.rb', line 452 def [](key) @common_use[key] || @@common_use[key] end |
#[]=(key, value) ⇒ Object
456 457 458 459 |
# File 'lib/Miyako/API/yuki.rb', line 456 def []=(key, value) @common_use[key] = value value end |
#add_method(name, &block) ⇒ Object
Yukiにメソッドを追加する(指定のYukiインスタンスのみ適応)
ブロックを渡すことで、Yukiに新しいメソッドを追加できる。 追加したメソッドは、指定したYukiインスタンスのみ利用可能となる。 コンテキストはYukiクラスのインスタンスとなるため、Yukiスクリプトと同じ感覚でメソッドを追加できる。 ただし、すでに追加したメソッド(もしくはYukiクラスですでに追加されているメソッド)を追加しようとすると例外が発生する
- name
-
ブロックに渡す引数リスト
- block
-
メソッドとして実行させるブロック
226 227 228 229 230 231 |
# File 'lib/Miyako/API/yuki.rb', line 226 def add_method(name, &block) name = name.to_sym raise MiyakoError, "Already added method! : #{name.to_s}" if self.methods.include?(name) self.define_singleton_method(name, block) return nil end |
#animation_all ⇒ Object
437 438 439 440 441 442 443 |
# File 'lib/Miyako/API/yuki.rb', line 437 def animation_all self.bgs.update_animation self.visibles.update_animation self.textbox_all.update_animation self.commandbox_all.update_animation unless self.box_shared? self.pre_visibles.update_animation end |
#bg_hide(*names) ⇒ Object
パーツで指定した背景を隠蔽する
- [Yukiスクリプトとして利用可能]
-
描画時に、指定したパーツを描画させないよう指定する
- names
-
パーツ名(シンボル)、複数指定可能
- 返却値
-
自分自身を返す
775 776 777 778 779 780 781 782 |
# File 'lib/Miyako/API/yuki.rb', line 775 def bg_hide(*names) if names.length == 0 @bgs.each_value{|sprite| sprite.hide} return self end names.each{|name| @bgs[name].hide } return self end |
#bg_show(*names) ⇒ Object
パーツで指定した背景を表示する
- [Yukiスクリプトとして利用可能]
-
描画時に、指定したパーツを描画する すでにshowメソッドで表示指定している場合は、先頭に表示させる
- names
-
パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
- 返却値
-
自分自身を返す
758 759 760 761 762 763 764 765 766 767 768 |
# File 'lib/Miyako/API/yuki.rb', line 758 def bg_show(*names) if names.length == 0 @bgs.each_value{|sprite| sprite.show} return self end names.each{|name| @bgs.add(name, @parts[name]) unless @bgs.include?(name) @bgs[name].show } return self end |
#bgs_names ⇒ Object
現在描画対象のパーツ名のリストを取得する
- [Yukiスクリプトとして利用可能]
-
現在描画しているパーツ名の配列を参照する。 実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。 Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される (例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。
- 返却値
-
描画対象リスト
551 552 553 |
# File 'lib/Miyako/API/yuki.rb', line 551 def bgs_names @bgs.names end |
#bold(&block) ⇒ Object
太文字を描画する
- [Yukiスクリプトとして利用可能]
-
ブロック内で指定した文字列を太文字で表示する (使用すると文字の端が切れてしまう場合あり!)
- 返却値
-
自分自身を返す
1469 1470 1471 1472 |
# File 'lib/Miyako/API/yuki.rb', line 1469 def bold(&block) @text_box.font_bold{ text block.call } return self end |
#box_shared? ⇒ Boolean
コマンドボックスとテキストボックスを共用しているか問い合わせる
- [Yukiスクリプトとして利用可能]
-
テキストボックスとコマンドボックスを共用しているときはtrueを返す 共用していなければfalseを返す
- 返却値
-
true/false
673 674 675 |
# File 'lib/Miyako/API/yuki.rb', line 673 def box_shared? @text_box_all.object_id == @command_box_all.object_id end |
#call_plot(plot_proc = nil, &plot_block) ⇒ Object
プロット処理中に別のプロットを呼び出す
呼び出し可能なプロットは以下の2種類。(上から優先度が高い順)
1)引数prot_proc(Procクラスのインスタンス)
2)引数として渡したブロック
- plot_proc
-
プロットの実行部をインスタンス化したオブジェクト
- 返却値
-
プロットの実行結果を返す
1046 1047 1048 1049 |
# File 'lib/Miyako/API/yuki.rb', line 1046 def call_plot(plot_proc = nil, &plot_block) return plot_proc ? self.instance_exec(&plot_proc) : self.instance_exec(&plot_block) end |
#call_plot_block(*params, &plot_block) ⇒ Object
プロット処理中に別のプロットを呼び出す
呼び出し可能なプロットは以下の2種類。(上から優先度が高い順)
1)引数prot_proc(Procクラスのインスタンス)
2)引数として渡したブロック
- plot_proc
-
プロットの実行部をインスタンス化したオブジェクト
- 返却値
-
プロットの実行結果を返す
1073 1074 1075 |
# File 'lib/Miyako/API/yuki.rb', line 1073 def call_plot_block(*params, &plot_block) return self.instance_exec(*params, &plot_block) end |
#call_plot_params(plot_proc, *params) ⇒ Object
プロット処理中に別のプロットを呼び出す
呼び出し可能なプロットは以下の2種類。(上から優先度が高い順)
1)引数prot_proc(Procクラスのインスタンス)
2)引数として渡したブロック
- plot_proc
-
プロットの実行部をインスタンス化したオブジェクト
- 返却値
-
プロットの実行結果を返す
1060 1061 1062 |
# File 'lib/Miyako/API/yuki.rb', line 1060 def call_plot_params(plot_proc, *params) return self.instance_exec(*params, &plot_proc) end |
#cancel_checks_during(procs, pre_procs = [], post_procs = []) ⇒ Object
ブロック評価中、コマンド選択キャンセル問い合わせメソッド配列を置き換える
同時に、コマンド選択開始時処理(Yuki#pre_cancel)、コマンド選択終了時処理(Yuki#post_cancel)を引数で設定できる。 ブロックの評価が終われば、メソッド配列・コマンド選択開始時処理・コマンド選択終了時処理を元に戻す
- procs
-
置き換えるメソッド配列(callメソッドを持ち、true/falseを返すメソッドの配列)
- pre_proc
-
コマンド選択開始時に実行させるProc(デフォルトは[](何もしない))
- post_proc
-
コマンド選択キャンセル時に実行させるProc(デフォルトは[](何もしない))
- 返却値
-
自分自身を返す
1170 1171 1172 1173 1174 1175 1176 1177 |
# File 'lib/Miyako/API/yuki.rb', line 1170 def cancel_checks_during(procs, pre_procs = [], post_procs = []) raise MiyakoProcError, "Can't find block!" unless block_given? backup = [@cancel_checks, @pre_cancel, @post_cancel] @cancel_checks, @pre_cancel, @post_cancel = procs, pre_proc, post_proc yield @cancel_checks, @pre_cancel, @post_cancel = backup.pop(3) return self end |
#canceled? ⇒ Boolean
コマンド選択がキャンセルされたときの結果を返す
- [Yukiスクリプトとして利用可能]
- 返却値
-
キャンセルされたときはtrue、されていないときはfalseを返す
1219 1220 1221 |
# File 'lib/Miyako/API/yuki.rb', line 1219 def canceled? return @result == @cancel end |
#clear ⇒ Object
テキストボックスの内容を消去する
- [Yukiスクリプトとして利用可能]
-
開業後にupdate_clearテンプレートメソッドが1回呼ばれる
- 返却値
-
自分自身を返す
1510 1511 1512 1513 1514 |
# File 'lib/Miyako/API/yuki.rb', line 1510 def clear @text_box.clear @update_clear.call(self) return self end |
#color(color, &block) ⇒ Object
文字色を変更する
- [Yukiスクリプトとして利用可能]
-
ブロック内で指定した文字列を、指定の色で描画する
- color
-
文字色
- 返却値
-
自分自身を返す
1431 1432 1433 1434 |
# File 'lib/Miyako/API/yuki.rb', line 1431 def color(color, &block) @text_box.color_during(Color.to_rgb(color)){ text block.call } return self end |
#command(command_list, cancel_to = Miyako::Yuki::Canceled, &chain_block) ⇒ Object
コマンドを表示する
- [Yukiスクリプトとして利用可能]
-
表示対象のコマンド群をCommand構造体の配列で示す。 キャンセルのときの結果も指定可能(既定ではキャンセル不可状態) body_selectedをnilにした場合は、bodyと同一となる body_selectedを文字列を指定した場合は、文字色が赤色になることに注意 引数無しのブロックを渡せば、コマンド選択開始前に、決定判別・キャンセル判別に必要な前処理を施すことが出来る 選択中、update_innerメソッドを呼び出し、続けて、処理をYuki#startもしくはYuki#update呼び出し直後に戻す Yuki#updateが呼び出されても選択中の場合は、再び上記の処理を繰り返す
- command_list
-
表示するコマンド群。各要素はCommand構造体/CommandEx構造体の配列
- cancel_to
-
キャンセルボタンを押したときの結果。デフォルトはnil(キャンセル無効)
- chain_block
-
コマンドの表示方法。TextBox#create_choices_chainメソッド参照
- 返却値
-
自分自身を返す
1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 |
# File 'lib/Miyako/API/yuki.rb', line 1567 def command(command_list, cancel_to = Miyako::Yuki::Canceled, &chain_block) raise MiyakoValueError, "Yuki Error! Commandbox is not selected!" unless @command_box @cancel = cancel_to if command_list.kind_of?(Choices) @pre_command.each{|proc| proc.call} @pre_cancel.each{|proc| proc.call} @command_box_all.show if @command_box_all.object_id != @text_box_all.object_id @command_box.command(command_list) else choices = [] command_list.each{|cm| if (cm[:condition] == nil || cm[:condition].call) cm_array = [cm[:body], cm[:body_selected], cm[:body_disable], cm[:enable], cm[:result]] methods = cm.methods cm_array << (methods.include?(:end_select_proc) ? cm[:end_select_proc] : nil) choices.push(cm_array) end } return self if choices.length == 0 @pre_command.each{|proc| proc.call} @pre_cancel.each{|proc| proc.call} @command_box_all.show if @command_box_all.object_id != @text_box_all.object_id @command_box.command(@command_box.create_choices_chain(choices, &chain_block)) end @result = nil @selecting = true while @selecting @update_inner.call(self) Fiber.yield end @post_cancel.each{|proc| proc.call} @post_command.each{|proc| proc.call} return self end |
#commandbox ⇒ Object
コマンドボックスを取得する
- [Yukiスクリプトとして利用可能]
-
コマンドボックスが登録されていないときはnilを返す
- 返却値
-
コマンドボックス
616 617 618 |
# File 'lib/Miyako/API/yuki.rb', line 616 def commandbox return @command_box end |
#commandbox_all ⇒ Object
コマンドボックス全体を取得する
- [Yukiスクリプトとして利用可能]
-
コマンドボックスが登録されていないときはnilを返す
- 返却値
-
コマンドボックス全体
632 633 634 |
# File 'lib/Miyako/API/yuki.rb', line 632 def commandbox_all return @command_box_all end |
#condition(&block) ⇒ Object
ブロックを条件として設定する
- [Yukiスクリプトとして利用可能]
-
メソッドをMethodクラスのインスタンスに変換する
- block
-
シナリオインスタンスに変換したいメソッド名(シンボル)
- 返却値
-
シナリオインスタンスに変換したメソッド
1228 1229 1230 |
# File 'lib/Miyako/API/yuki.rb', line 1228 def condition(&block) return block end |
#cr(tm = 1) ⇒ Object
改行を行う
- [Yukiスクリプトとして利用可能]
-
開業後にupdate_crテンプレートメソッドが1回呼ばれる
- tm
-
改行回数。デフォルトは1
- 返却値
-
自分自身を返す
1498 1499 1500 1501 1502 1503 1504 |
# File 'lib/Miyako/API/yuki.rb', line 1498 def cr(tm = 1) tm.times{|n| @text_box.cr @update_cr.call(self) } return self end |
#disable_mouse ⇒ Object
マウスでの制御を不可にする
ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、 マウスでの利用を制限する Yukiクラスインスタンス生成時はマウス利用可能
- 返却値
-
自分自身を返す
367 368 369 370 |
# File 'lib/Miyako/API/yuki.rb', line 367 def disable_mouse @mouse_enable = false return self end |
#dispose ⇒ Object
インスタンスで使用しているオブジェクトを解放する
1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 |
# File 'lib/Miyako/API/yuki.rb', line 1736 def dispose @update_inner = nil @update_text = nil @update_cr = nil @update_clear = nil @executing_fiber = nil @parts.clear @parts = nil @visibles.clear @visibles = nil @vars.clear @vars = nil @is_outer_height = nil end |
#enable_mouse ⇒ Object
マウスでの制御を可能にする
ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、 それに加えて、マウスでもゲームパッド・キーボードでの制御が行える Yukiクラスインスタンス生成時はマウス利用可能
- 返却値
-
自分自身を返す
357 358 359 360 |
# File 'lib/Miyako/API/yuki.rb', line 357 def enable_mouse @mouse_enable = true return self end |
#executing? ⇒ Boolean
プロット処理が実行中かどうかを確認する
- 返却値
-
プロット処理実行中の時はtrueを返す
1079 1080 1081 |
# File 'lib/Miyako/API/yuki.rb', line 1079 def executing? return @executing end |
#hide(*names) ⇒ Object
パーツで指定したオブジェクトを隠蔽する
- [Yukiスクリプトとして利用可能]
-
描画時に、指定したパーツを描画させないよう指定する
- names
-
パーツ名(シンボル)、複数指定可能
- 返却値
-
自分自身を返す
711 712 713 714 715 716 717 718 |
# File 'lib/Miyako/API/yuki.rb', line 711 def hide(*names) if names.length == 0 @visibles.each_value{|sprite| sprite.hide} return self end names.each{|name| @visibles[name].hide } return self end |
#hide_commandbox ⇒ Object
コマンドボックスを描画不可能にする
- [Yukiスクリプトとして利用可能]
- 返却値
-
レシーバ
663 664 665 666 |
# File 'lib/Miyako/API/yuki.rb', line 663 def hide_commandbox @command_box_all.hide return self end |
#hide_textbox ⇒ Object
テキストボックスを描画不可能にする
- [Yukiスクリプトとして利用可能]
- 返却値
-
レシーバ
655 656 657 658 |
# File 'lib/Miyako/API/yuki.rb', line 655 def hide_textbox @text_box_all.hide return self end |
#initialize_copy(obj) ⇒ Object
:nodoc:
331 332 333 |
# File 'lib/Miyako/API/yuki.rb', line 331 def initialize_copy(obj) #:nodoc: raise MiyakoCopyError.not_copy("Yuki") end |
#is_scenario?(result) ⇒ Boolean
結果がシナリオかどうかを問い合わせる
- [Yukiスクリプトとして利用可能]
-
結果がシナリオ(メソッド)のときはtrueを返す 対象の結果は、選択結果、プロット処理結果ともに有効
- 返却値
-
結果がシナリオかどうか(true/false)
1212 1213 1214 |
# File 'lib/Miyako/API/yuki.rb', line 1212 def is_scenario?(result) return (result.kind_of?(Proc) || result.kind_of?(Method)) end |
#is_scene?(result) ⇒ Boolean
結果がシーンかどうかを問い合わせる
- [Yukiスクリプトとして利用可能]
-
結果がシーン(シーンクラス名)のときはtrueを返す 対象の結果は、選択結果、プロット処理結果ともに有効
- 返却値
-
結果がシーンかどうか(true/false)
1203 1204 1205 |
# File 'lib/Miyako/API/yuki.rb', line 1203 def is_scene?(result) return (result.class == Class && result.include?(Story::Scene)) end |
#italic(&block) ⇒ Object
斜体文字を描画する
- [Yukiスクリプトとして利用可能]
-
ブロック内で指定した文字列を斜体で表示する (使用すると文字の端が切れてしまう場合あり!)
- 返却値
-
自分自身を返す
1479 1480 1481 1482 |
# File 'lib/Miyako/API/yuki.rb', line 1479 def italic(&block) @text_box.font_italic{ text block.call } return self end |
#load_bg(name, filename) ⇒ Object
背景を登録する
- [Yukiスクリプトとして利用可能]
-
画面に表示する背景を登録する すでにshowメソッドで表示指定している場合は、先頭に表示させる
- name
-
スプライト名(重複するときは上書き)
- filename
-
読み込むファイル名
- 返却値
-
自分自身を返す
808 809 810 811 812 813 814 |
# File 'lib/Miyako/API/yuki.rb', line 808 def load_bg(name, filename) spr = Sprite.new(:file=>filename, :type=>:ac) @parts[name] = spr @parts[name].hide @bgs.add(name, @parts[name]) return self end |
#load_bgm(name, filename) ⇒ Object
BGMを登録する
- [Yukiスクリプトとして利用可能]
-
音声ファイルを読み込み、BGMとして登録する 登録したBGMはpartsメソッドを使って参照できる
- name
-
スプライト名(重複するときは上書き)
- filename
-
読み込むファイル名
- 返却値
-
自分自身を返す
823 824 825 826 |
# File 'lib/Miyako/API/yuki.rb', line 823 def load_bgm(name, filename) @parts[name] = Audio::BGM.new(filename) return self end |
#load_se(name, filename) ⇒ Object
効果音を登録する
- [Yukiスクリプトとして利用可能]
-
音声ファイルを読み込み、効果音として登録する 登録した効果音はpartsメソッドを使って参照できる
- name
-
スプライト名(重複するときは上書き)
- filename
-
読み込むファイル名
- 返却値
-
自分自身を返す
835 836 837 838 |
# File 'lib/Miyako/API/yuki.rb', line 835 def load_se(name, filename) @parts[name] = Audio::SE.new(filename) return self end |
#load_sprite(name, filename, pre = false) ⇒ Object
ファイル名で指定したスプライトを登録する
- [Yukiスクリプトとして利用可能]
-
画面に表示するスプライトを登録する すでにshowメソッドで表示指定している場合は、先頭に表示させる
- name
-
スプライト名(重複するときは上書き)
- filename
-
読み込むファイル名
- pre
-
pre_visiblesに登録するときはtrue、visiblesに登録するときはfalseを渡す
省略時はfalse
- 返却値
-
自分自身を返す
793 794 795 796 797 798 799 |
# File 'lib/Miyako/API/yuki.rb', line 793 def load_sprite(name, filename, pre=false) spr = Sprite.new(:file=>filename, :type=>:ac) @parts[name] = spr @parts[name].hide pre ? @pre_visibles.add(name, @parts[name]) : @visibles.add(name, @parts[name]) return self end |
#mouse_enable? ⇒ Boolean
マウスでの制御を可・不可を問い合わせる
マウスを利用できるときはtrue、利用できないときはfalseを返す
- 返却値
-
true/false
375 376 377 |
# File 'lib/Miyako/API/yuki.rb', line 375 def mouse_enable? @mouse_enable end |
#now_page ⇒ Object
シナリオ上の現在のページを返す
- [Yukiスクリプトとして利用可能]
-
呼び出し当時、シナリオ上、pageメソッドでくくられていない場合は、nilを返す
- 返却値
-
ページ名
1710 1711 1712 |
# File 'lib/Miyako/API/yuki.rb', line 1710 def now_page return @now_page end |
#ok_checks_during(procs, pre_procs = [], post_procs = []) ⇒ Object
ブロック評価中、コマンド選択決定問い合わせメソッド配列を置き換える
同時に、コマンド選択開始時処理(Yuki#pre_command)、コマンド選択終了時処理(Yuki#post_command)を引数で設定できる。 ブロックの評価が終われば、メソッド配列・コマンド選択開始時処理・コマンド選択終了時処理を元に戻す
- procs
-
置き換えるメソッド配列(callメソッドを持ち、true/falseを返すメソッドの配列)
- pre_proc
-
コマンド選択開始時に実行させるProc(デフォルトは[](何もしない))
- post_proc
-
コマンド選択決定時に実行させるProc(デフォルトは[](何もしない))
- 返却値
-
自分自身を返す
1154 1155 1156 1157 1158 1159 1160 1161 |
# File 'lib/Miyako/API/yuki.rb', line 1154 def ok_checks_during(procs, pre_procs = [], post_procs = []) raise MiyakoProcError, "Can't find block!" unless block_given? backup = [@ok_checks, @pre_command, @post_command] @ok_checks, @pre_command, @post_command = procs, pre_proc, post_proc yield @ok_checks, @pre_command, @post_command = backup.pop(3) return self end |
#over_engine ⇒ Object
335 336 337 |
# File 'lib/Miyako/API/yuki.rb', line 335 def over_engine @over_yuki end |
#over_engine=(engine) ⇒ Object
339 340 341 342 |
# File 'lib/Miyako/API/yuki.rb', line 339 def over_engine=(engine) @over_yuki = engine engine.under_engine = self end |
#over_exec(yuki = nil, plot = nil, *params) ⇒ Object
別のYukiエンジンを実行する
- [Yukiスクリプトとして利用可能]
-
もう一つのYukiエンジンを実行させ、並行実行させることができる ウインドウの上にウインドウを表示したりするときに、このメソッドを使う renderメソッドで描画する際は、自分のインスタンスが描画した直後に描画される 自分自身を実行しようとするとMiyakoValueError例外が発生する
- yuki
-
実行対象のYukiインスタンス(事前にsetupの呼び出しが必要)
- plot
-
プロットインスタンス。すでにsetupなどで登録しているときはnilを渡す
- params
-
プロット実行開始時に、プロットに渡す引数
- 返却値
-
自分自身を返す
895 896 897 898 899 900 |
# File 'lib/Miyako/API/yuki.rb', line 895 def over_exec(yuki = nil, plot = nil, *params) raise MiyakoValueError, "This Yuki engine is same as self!" if yuki.eql?(self) self.over_engine = yuki if yuki @over_yuki.start_plot(plot, *params) return self end |
#page(name, use_pause = true) ⇒ Object
シナリオ上の括り(ページ)を実装する
- [Yukiスクリプトとして利用可能]
-
シナリオ上、「このプロットの明示的な範囲」を示すために使用する(セーブ時の再現位置の指定など) Yuki#select_first_pageメソッドで開始位置が指定されている場合、以下の処理を行う。 (1)select_first_pageメソッドで指定されたページから処理する。それまでのページは無視される (2)開始ページを処理する前に、select_first_pageメソッドの内容をクリアする(nilに変更する) このメソッドはブロックが必須。ブロックがないと例外が発生する。
- name
-
ページ名。select_first_pageメソッドは、この名前を検索する。また、now_pageメソッドの返却値でもある
use_pause::ページの処理が終了した後、必ずpauseメソッドを呼び出すかどうかのフラグ。デフォルトはtrue
- 返却値
-
select_first_pageメソッドで指定されていないページのときはnil、指定されているページの場合は引数nameの値
1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 |
# File 'lib/Miyako/API/yuki.rb', line 1695 def page(name, use_pause = true) raise MiyakoProcError, "Yuki#page needs block!" unless block_given? return nil if (@first_page && name != @first_page) @first_page = nil @now_page = name yield pause if use_pause @now_page = nil return name end |
#parts ⇒ Object
パーツを参照する
- [Yukiスクリプトとして利用可能]
-
パーツの管理オブジェクトを、ハッシュとして参照する。 パーツ名nameを指定して、インスタンスを参照できる 未登録のパーツはnilが返る (例)parts
- 返却値
-
パーツ管理ハッシュ
501 502 503 |
# File 'lib/Miyako/API/yuki.rb', line 501 def parts @parts end |
#parts_names ⇒ Object
パーツ名の一覧を参照する
- [Yukiスクリプトとして利用可能]
-
パーツ管理オブジェクトに登録されているパーツ名の一覧を配列として返す。 順番は登録順。 まだ何も登録されていないときは空の配列が返る。 (例)regist_parts :chr1, hoge
regist_parts :chr2, fuga parts_names # => [:chr1, :chr2]
- 返却値
-
パーツ管理ハッシュ
515 516 517 |
# File 'lib/Miyako/API/yuki.rb', line 515 def parts_names @parts.keys end |
#pause ⇒ Object
ポーズを行う
- [Yukiスクリプトとして利用可能]
-
ポーズが行われると、ポーズ用のカーソルが表示される 所定のボタンを押すとポーズが解除され、カーソルが消える 解除後は、プロットの続きを処理する 引数無しのブロックを渡せば、ポーズ開始前に行いたい処理を施すことが出来る ポーズ中、update_innerメソッドを呼び出し、続けて、処理をYuki#startもしくはYuki#update呼び出し直後に戻す Yuki#updateが呼び出されてもポーズ中の場合は、再び上記の処理を繰り返す (たとえば、一定時間後に自動的にポーズ解除する場合、そのタイマーを開始させるなど)
- 返却値
-
自分自身を返す
1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 |
# File 'lib/Miyako/API/yuki.rb', line 1526 def pause @pre_pause.each{|proc| proc.call} yield if block_given? @text_box.pause @pausing = true while @pausing @update_inner.call(self) Fiber.yield end @post_pause.each{|proc| proc.call} return self end |
#pause_and_clear ⇒ Object
ポーズをかけて、テキストボックスの内容を消去する
- [Yukiスクリプトとして利用可能]
-
ポーズをかけ、ポーズを解除するときにテキストボックスの内容を消去する
- 返却値
-
自分自身を返す
1550 1551 1552 |
# File 'lib/Miyako/API/yuki.rb', line 1550 def pause_and_clear return pause.clear end |
#pausing ⇒ Object
:nodoc:
1539 1540 1541 1542 1543 1544 |
# File 'lib/Miyako/API/yuki.rb', line 1539 def pausing #:nodoc: return unless @pause_release @text_box.release @pausing = false @pause_release = false end |
#pausing? ⇒ Boolean
メッセージ送り待ちの問い合わせメソッド
- [Yukiスクリプトとして利用可能]
- 返却値
-
メッセージ送り待ちの時はtrueを返す
1249 1250 1251 |
# File 'lib/Miyako/API/yuki.rb', line 1249 def pausing? return @pausing end |
#play(name) ⇒ Object
パーツで指定したオブジェクトを再生する
- [Yukiスクリプトとして利用可能]
-
nameで指定したパーツを再生(例:BGM)する。 (但し、パーツで指定したオブジェクトがplayメソッドを持つことが条件)
- name
-
パーツ名(シンボル)
- 返却値
-
自分自身を返す
857 858 859 860 |
# File 'lib/Miyako/API/yuki.rb', line 857 def play(name) @parts[name].play return self end |
#plot_facade(plot_proc = nil, *params, &plot_block) ⇒ Object
:nodoc:
1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 |
# File 'lib/Miyako/API/yuki.rb', line 1026 def plot_facade(plot_proc = nil, *params, &plot_block) #:nodoc: @plot_result = nil @executing = true exec_plot = @exec_plot @plot_result = plot_proc ? self.instance_exec(*params, &plot_proc) : block_given? ? self.instance_exec(*params, &plot_block) : exec_plot ? self.instance_exec(*params, &exec_plot) : raise(MiyakoProcError, "Cannot find plot!") @executing = false end |
#pre_hide(*names) ⇒ Object
パーツで指定したオブジェクトを隠蔽する
- [Yukiスクリプトとして利用可能]
-
描画時に、指定したパーツを描画させないよう指定する
- names
-
パーツ名(シンボル)、複数指定可能
- 返却値
-
自分自身を返す
743 744 745 746 747 748 749 750 |
# File 'lib/Miyako/API/yuki.rb', line 743 def pre_hide(*names) if names.length == 0 @pre_visibles.each_value{|sprite| sprite.hide} return self end names.each{|name| @pre_visibles[name].hide } return self end |
#pre_show(*names) ⇒ Object
パーツで指定したオブジェクトを先頭に表示する
- [Yukiスクリプトとして利用可能]
-
描画時に、指定したパーツを描画する すでにshowメソッドで表示指定している場合は、先頭に表示させる
- names
-
パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
- 返却値
-
自分自身を返す
726 727 728 729 730 731 732 733 734 735 736 |
# File 'lib/Miyako/API/yuki.rb', line 726 def pre_show(*names) if names.length == 0 @pre_visibles.each_value{|sprite| sprite.show} return self end names.each{|name| @pre_visibles.add(name, @parts[name]) unless @pre_visibles.include?(name) @pre_visibles[name].show } return self end |
#pre_visibles_names ⇒ Object
現在描画対象のパーツ名のリストを取得する
- [Yukiスクリプトとして利用可能]
-
現在描画しているパーツ名の配列を参照する。 実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。 Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される (例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。
- 返却値
-
描画対象リスト
539 540 541 |
# File 'lib/Miyako/API/yuki.rb', line 539 def pre_visibles_names @pre_visibles.names end |
#process(*params) ⇒ Object
一旦処理をメインに戻す
- [Yukiスクリプトとして利用可能]
-
Yukiスクリプト内で定義されているループ内処理から一旦抜け出し、メインループに戻る 追加したYukiスクリプトにループが含まれているとき、 ループを回すごとに画面更新やメイン処理を行いたいときに使う 但し、ページ名を指定しないときはnilを指定する。
- params
-
メインループに返す引数
- 返却値
-
メインループから渡ってきた引数
1731 1732 1733 |
# File 'lib/Miyako/API/yuki.rb', line 1731 def process(*params) Fiber.yield *params end |
#regist_parts(name, parts) ⇒ Object
オブジェクトを登録する
- [Yukiスクリプトとして利用可能]
-
オブジェクトをパーツnameとして登録する。 Yuki::partsで参照可能
- name
-
パーツ名(シンボル)
- parts
-
登録対象のインスタンス
- 返却値
-
自分自身を返す
563 564 565 566 |
# File 'lib/Miyako/API/yuki.rb', line 563 def regist_parts(name, parts) @parts[name] = parts return self end |
#release_checks_during(procs, pre_procs = [], post_procs = []) ⇒ Object
ブロック評価中、ポーズ解除問い合わせメソッド配列を置き換える
同時に、ポーズ時処理(Yuki#pre_pause)、ポーズ解除時処理(Yuki#post_pause)を引数で設定できる。 ブロックの評価が終われば、メソッド配列・ポーズ時処理・ポーズ解除時処理を元に戻す
- procs
-
置き換えるメソッド配列(callメソッドを持ち、true/falseを返すメソッドの配列)
- pre_proc
-
ポーズ開始時に実行させるProc(デフォルトは[](何もしない))
- post_proc
-
ポーズ解除時に実行させるProc(デフォルトは[](何もしない))
- 返却値
-
自分自身を返す
1138 1139 1140 1141 1142 1143 1144 1145 |
# File 'lib/Miyako/API/yuki.rb', line 1138 def release_checks_during(procs, pre_procs = [], post_procs = []) raise MiyakoProcError, "Can't find block!" unless block_given? backup = [@release_checks, @pre_pause, @post_pause] @release_checks, @pre_pause, @post_pause = procs, pre_proc, post_proc yield @release_checks, @pre_pause, @post_pause = backup.pop(3) return self end |
#remove_parts(name) ⇒ Object
オブジェクトの登録を解除する
- [Yukiスクリプトとして利用可能]
-
パーツnameとして登録されているオブジェクトを登録から解除する。
- name
-
パーツ名(シンボル)
- 返却値
-
自分自身を返す
683 684 685 686 |
# File 'lib/Miyako/API/yuki.rb', line 683 def remove_parts(name) @parts.delete(name) return self end |
#render ⇒ Object
Yuki#showで表示指定した画像を描画する
描画順は、showメソッドで指定した順に描画される(先に指定した画像は後ろに表示される) なお、visibleの値がfalseの時は描画されない。
- 返却値
-
自分自身を返す
383 384 385 386 |
# File 'lib/Miyako/API/yuki.rb', line 383 def render @over_yuki.render if @over_yuki && @over_yuki.executing? return self end |
#render_all ⇒ Object
397 398 399 400 401 402 403 |
# File 'lib/Miyako/API/yuki.rb', line 397 def render_all self.bgs.render self.visibles.render self.textbox_all.render self.commandbox_all.render unless self.box_shared? self.pre_visibles.render end |
#render_to(dst) ⇒ Object
Yuki#showで表示指定した画像を描画する
描画順は、showメソッドで指定した順に描画される(先に指定した画像は後ろに表示される) なお、visibleの値がfalseの時は描画されない。
- 返却値
-
自分自身を返す
392 393 394 395 |
# File 'lib/Miyako/API/yuki.rb', line 392 def render_to(dst) @over_yuki.render_to(dst) if @over_yuki && @over_yuki.executing? return self end |
#render_to_all(dst) ⇒ Object
405 406 407 408 409 410 411 |
# File 'lib/Miyako/API/yuki.rb', line 405 def render_to_all(dst) self.bgs.render_to(dst) self.visibles.render_to(dst) self.textbox_all.render_to(dst) self.commandbox_all.render_to(dst) unless self.box_shared? self.pre_visibles.render_to(dst) end |
#reset_all ⇒ Object
429 430 431 432 433 434 435 |
# File 'lib/Miyako/API/yuki.rb', line 429 def reset_all self.bgs.reset self.visibles.reset self.textbox_all.reset self.commandbox_all.reset unless self.box_shared? self.pre_visibles.reset end |
#reset_cancel_checks ⇒ Object
コマンド選択キャンセル問い合わせメソッド配列を初期状態に戻す
- 返却値
-
自分自身を返す
1099 1100 1101 1102 |
# File 'lib/Miyako/API/yuki.rb', line 1099 def reset_cancel_checks @cancel_checks = @cancel_checks_default.dup return self end |
#reset_ok_checks ⇒ Object
コマンド選択決定問い合わせメソッド配列を初期状態に戻す
- 返却値
-
自分自身を返す
1092 1093 1094 1095 |
# File 'lib/Miyako/API/yuki.rb', line 1092 def reset_ok_checks @ok_checks = @ok_checks_default.dup return self end |
#reset_pre_post_cancel ⇒ Object
コマンド選択キャンセル前後処理メソッド配列を初期状態に戻す
pre_cancel/post_cancelの処理を初期状態([])に戻す
- 返却値
-
自分自身を返す
1125 1126 1127 1128 1129 |
# File 'lib/Miyako/API/yuki.rb', line 1125 def reset_pre_post_cancel @pre_acncel = [] @post_cancel = [] return self end |
#reset_pre_post_command ⇒ Object
コマンド選択前後処理メソッド配列を初期状態に戻す
pre_command/post_commandの処理を初期状態([])に戻す
- 返却値
-
自分自身を返す
1116 1117 1118 1119 1120 |
# File 'lib/Miyako/API/yuki.rb', line 1116 def reset_pre_post_command @pre_command = [] @post_command = [] return self end |
#reset_pre_post_release ⇒ Object
ポーズ前後処理メソッド配列を初期状態に戻す
pre_pause/post_pauseの処理を初期状態([])に戻す
- 返却値
-
自分自身を返す
1107 1108 1109 1110 1111 |
# File 'lib/Miyako/API/yuki.rb', line 1107 def reset_pre_post_release @pre_pause = [] @post_pause = [] return self end |
#reset_release_checks ⇒ Object
ポーズ解除問い合わせメソッド配列を初期状態に戻す
- 返却値
-
自分自身を返す
1085 1086 1087 1088 |
# File 'lib/Miyako/API/yuki.rb', line 1085 def reset_release_checks @release_checks = @release_checks_default.dup return self end |
#reset_selecting ⇒ Object
:nodoc:
1646 1647 1648 1649 1650 |
# File 'lib/Miyako/API/yuki.rb', line 1646 def reset_selecting #:nodoc: @select_ok = false @select_cancel = false @select_amount = [0, 0] end |
#result ⇒ Object
プロットの処理結果を返す
- [Yukiスクリプトとして利用可能]
-
プロット処理の結果を返す。 まだ結果が得られていない場合はnilを得る プロット処理が終了していないのに結果を得られるので注意!
- 返却値
-
プロットの処理結果
1185 1186 1187 |
# File 'lib/Miyako/API/yuki.rb', line 1185 def result return @plot_result end |
#result=(ret = nil) ⇒ Object
プロット処理の結果を設定する
- [Yukiスクリプトとして利用可能]
- ret
-
設定する結果。デフォルトはnil
- 返却値
-
自分自身を返す
1193 1194 1195 1196 |
# File 'lib/Miyako/API/yuki.rb', line 1193 def result=(ret = nil) @plot_result = ret return self end |
#select_commandbox(box, box_all = nil) ⇒ Object
表示・描画対象のコマンドボックスを選択する
第2引数として、テキストボックス全体を渡せる(省略可能) 第1引数が、PartsやSpriteListの1部分のときに、第2引数を渡すことで、 テキストボックス全体を制御可能 第2引数を省略時は、全バージョンに引き続いて、テキストボックス本体のみを制御する
- [Yukiスクリプトとして利用可能]
- box
-
テキストボックス本体
- box_all
-
テキストボックス全体
- 返却値
-
自分自身を返す
598 599 600 601 602 |
# File 'lib/Miyako/API/yuki.rb', line 598 def select_commandbox(box, box_all = nil) @command_box = box @command_box_all = box_all || box return self end |
#select_first_page(name) ⇒ Object
プロット上の最初に実行するページを指定知る
- [Yukiスクリプトとして利用可能]
-
但し、ページ名を指定しないときはnilを指定する。
- name
-
最初に実行するページ名
1718 1719 1720 |
# File 'lib/Miyako/API/yuki.rb', line 1718 def select_first_page(name) @first_page = name end |
#select_plot(plot_proc) ⇒ Object
実行するプロットと登録する
- plot_proc
-
プロットの実行部をインスタンス化したオブジェクト
- 返却値
-
自分自身を返す
952 953 954 955 |
# File 'lib/Miyako/API/yuki.rb', line 952 def select_plot(plot_proc) @exec_plot = plot_proc return self end |
#select_result ⇒ Object
コマンドの選択結果を返す
- [Yukiスクリプトとして利用可能]
-
コマンド選択の結果を返す。 まだ結果が得られていない場合はnilを得る プロット処理・コマンド選択が終了していないのに結果を得られるので注意!
- 返却値
-
コマンドの選択結果
1658 1659 1660 |
# File 'lib/Miyako/API/yuki.rb', line 1658 def select_result return @result end |
#select_textbox(box, box_all = nil) ⇒ Object
表示・描画対象のテキストボックスを選択する
第2引数として、テキストボックス全体を渡せる(省略可能) 第1引数が、PartsやSpriteListの1部分のときに、第2引数を渡すことで、 テキストボックス全体を制御可能 第2引数を省略時は、全バージョンに引き続いて、テキストボックス本体のみを制御する
- [Yukiスクリプトとして利用可能]
- box
-
テキストボックス本体
- box_all
-
テキストボックス全体
- 返却値
-
自分自身を返す
578 579 580 581 582 583 584 585 586 |
# File 'lib/Miyako/API/yuki.rb', line 578 def select_textbox(box, box_all = nil) @text_box = box @text_box_all = box_all || box unless @command_box @command_box = @text_box @command_box_all = @text_box_all end return self end |
#selecting ⇒ Object
:nodoc:
1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 |
# File 'lib/Miyako/API/yuki.rb', line 1604 def selecting #:nodoc: return unless @selecting return unless @command_box.selecting? @selecting_procs.each{|sp| case sp.arity when 6 sp.call( @select_ok, @select_cansel, @select_amount, @mouse_amount, @command_box.enable_choice?, @command_box.result ) else sp.call( @select_ok, @select_cansel, @select_amount, @mouse_amount ) end } if @select_ok return @on_disable.each{|proc| proc.call} unless @command_box.enable_choice? @result = @command_box.result @command_box.finish_command @command_box_all.hide if @command_box_all.object_id != @text_box_all.object_id @text_box.release @selecting = false reset_selecting elsif @select_cancel @result = @cancel @command_box.finish_command @command_box_all.hide if @command_box_all.object_id != @text_box_all.object_id @text_box.release @selecting = false reset_selecting elsif @select_amount != [0,0] @command_box.move_cursor(*@select_amount) reset_selecting elsif @mouse_amount @command_box.attach_cursor(*@mouse_amount.to_a) if @mouse_enable reset_selecting end end |
#selecting? ⇒ Boolean
コマンド選択中の問い合わせメソッド
- [Yukiスクリプトとして利用可能]
- 返却値
-
コマンド選択中の時はtrueを返す
1235 1236 1237 |
# File 'lib/Miyako/API/yuki.rb', line 1235 def selecting? return @selecting end |
#setup(*params, &proc) ⇒ Object
シーンのセットアップ時に実行する処理
ブロック引数として、テキストボックスの変更などの処理をブロック内に記述することが出来る。 引数の数とブロック引数の数が違っていれば例外が発生する
- params
-
ブロックに渡す引数リスト(ブロックを渡しているときのみ)
- 返却値
-
自分自身を返す
922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 |
# File 'lib/Miyako/API/yuki.rb', line 922 def setup(*params, &proc) @exec_plot = nil @executing = false @pausing = false @selecting = false @waiting = false @pause_release = false @select_ok = false @select_cancel = false @select_amount = [0, 0] @mouse_amount = nil @result = nil @plot_result = nil @now_page = nil @first_page = nil raise MiyakoProcError, "Argument count is not same block parameter count!" if proc && proc.arity.abs != params.length instance_exec(*params, &proc) if proc return self end |
#show(*names) ⇒ Object
パーツで指定したオブジェクトを先頭に表示する
- [Yukiスクリプトとして利用可能]
-
描画時に、指定したパーツを描画する すでにshowメソッドで表示指定している場合は、先頭に表示させる
- names
-
パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
- 返却値
-
自分自身を返す
694 695 696 697 698 699 700 701 702 703 704 |
# File 'lib/Miyako/API/yuki.rb', line 694 def show(*names) if names.length == 0 @visibles.each_value{|sprite| sprite.show} return self end names.each{|name| @visibles.add(name, @parts[name]) unless @visibles.include?(name) @visibles[name].show } return self end |
#show_commandbox ⇒ Object
コマンドボックスを描画可能にする
- [Yukiスクリプトとして利用可能]
- 返却値
-
レシーバ
647 648 649 650 |
# File 'lib/Miyako/API/yuki.rb', line 647 def show_commandbox @command_box_all.show return self end |
#show_textbox ⇒ Object
テキストボックスを描画可能にする
- [Yukiスクリプトとして利用可能]
- 返却値
-
レシーバ
639 640 641 642 |
# File 'lib/Miyako/API/yuki.rb', line 639 def show_textbox @text_box_all.show return self end |
#size(size, valign = @valign, &block) ⇒ Object
文字の大きさを変更する
- [Yukiスクリプトとして利用可能]
-
ブロック内で指定した文字列を、指定の大きさで描画する
- size
-
文字の大きさ(整数)
- valign
-
文字の縦の位置(top, middle, bottom)。デフォルトは:middle(Yuki#valign=,Yuki#valign_duringで変更可能)
- 返却値
-
自分自身を返す
1457 1458 1459 1460 1461 1462 |
# File 'lib/Miyako/API/yuki.rb', line 1457 def size(size, valign = @valign, &block) @text_box.font_size_during(size){ @text_box.margin_during(@text_box.margin_height(valign)){ text block.call } } return self end |
#start(name) ⇒ Object
パーツで指定したオブジェクトの処理を開始する
- [Yukiスクリプトとして利用可能]
-
nameで指定したパーツが持つ処理(例:アニメーション)を開始する。 (但し、パーツで指定したオブジェクトがstartメソッドを持つことが条件)
- name
-
パーツ名(シンボル)
- 返却値
-
自分自身を返す
846 847 848 849 |
# File 'lib/Miyako/API/yuki.rb', line 846 def start(name) @parts[name].start return self end |
#start_all ⇒ Object
413 414 415 416 417 418 419 |
# File 'lib/Miyako/API/yuki.rb', line 413 def start_all self.bgs.start self.visibles.start self.textbox_all.start self.commandbox_all.start unless self.box_shared? self.pre_visibles.start end |
#start_plot(plot_proc = nil, *params, &plot_block) ⇒ Object
プロット処理を実行する(明示的に呼び出す必要がある場合)
引数もしくはブロックで指定したプロット処理を非同期に実行する。 呼び出し可能なプロットは以下の3種類。(上から優先度が高い順) プロットが見つからなければ例外が発生する
1)引数prot_proc(Procクラスのインスタンス)
2)引数として渡したブロック
3)select_plotメソッドで登録したブロック(Procクラスのインスタンス)
- plot_proc
-
プロットの実行部をインスタンス化したオブジェクト。省略時はnil(paramsを指定するときは必ず設定すること)
- params
-
プロットに引き渡す引数リスト
- 返却値
-
自分自身を返す
971 972 973 974 975 976 977 978 979 |
# File 'lib/Miyako/API/yuki.rb', line 971 def start_plot(plot_proc = nil, *params, &plot_block) raise MiyakoValueError, "Yuki Error! Textbox is not selected!" unless @text_box raise MiyakoProcError, "Argument count is not same block parameter count!" if plot_proc && plot_proc.arity.abs != params.length raise MiyakoProcError, "Argument count is not same block parameter count!" if plot_block && plot_block.arity.abs != params.length raise MiyakoProcError, "Argument count is not same block parameter count!" if @exec_plot && @exec_plot.arity.abs != params.length @executing_fiber = Fiber.new{ plot_facade(plot_proc, *params, &plot_block) } @executing_fiber.resume return self end |
#stop(name) ⇒ Object
パーツで指定したオブジェクトの処理を停止する
- [Yukiスクリプトとして利用可能]
-
nameで指定したパーツが持つ処理を停止する。 (但し、パーツで指定したオブジェクトがstopメソッドを持つことが条件)
- name
-
パーツ名(シンボル)
- 返却値
-
自分自身を返す
868 869 870 871 |
# File 'lib/Miyako/API/yuki.rb', line 868 def stop(name) @parts[name].stop return self end |
#stop_all ⇒ Object
421 422 423 424 425 426 427 |
# File 'lib/Miyako/API/yuki.rb', line 421 def stop_all self.bgs.stop self.visibles.stop self.textbox_all.stop self.commandbox_all.stop unless self.box_shared? self.pre_visibles.stop end |
#text(txt) ⇒ Object
テキストボックスに文字を表示する
- [Yukiスクリプトとして利用可能]
-
テキストボックスとして用意している画像に文字を描画する。 描画する単位(文字単位、文字列単位)によって、挙動が違う。 (文字単位の時) Yuki#text_by_charメソッドと同じ挙動。 (文字列単位の時) Yuki#text_by_strメソッドと同じ挙動。 デフォルトは文字単位。 引数txtの値は、内部で1文字ずつ分割され、1文字描画されるごとに、 update_textメソッドが呼び出され、続けてYuki#start_plotもしくはYuki#updateメソッド呼び出し直後に戻る
- txt
-
表示させるテキスト
- 返却値
-
自分自身を返す
1296 1297 1298 |
# File 'lib/Miyako/API/yuki.rb', line 1296 def text(txt) return @text_methods[@text_method_name].call(txt) end |
#text_by_char(txt) ⇒ Object
テキストボックスに文字を1文字ずつ表示する
- [Yukiスクリプトとして利用可能]
-
引数txtの値は、内部で1文字ずつ分割され、1文字描画されるごとに、 update_textメソッドが呼び出され、続けてYuki#start_plotもしくはYuki#updateメソッド呼び出し直後に戻る 注意として、改行が文字列中にあれば改行、タブやフィードが文字列中にあれば、nilを返す。
- txt
-
表示させるテキスト
- 返却値
-
自分自身を返す
1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 |
# File 'lib/Miyako/API/yuki.rb', line 1307 def text_by_char(txt) return self unless txt.class.method_defined?("chars") txt.chars{|ch| if ch == "\n" || ch == "\r" next wait_by_cond(@is_outer_height) elsif @text_box.locate.x + @text_box.font.text_size(ch)[0] >= @text_box.textarea.w wait_by_cond(@is_outer_height) elsif ch == "\t" || ch == "\f" next nil end @text_box.draw_text(ch) @update_text.call(self, ch) Fiber.yield } return self end |
#text_by_char_rapid(txt) ⇒ Object
テキストボックスに文字を1文字ずつ表示する
- [Yukiスクリプトとして利用可能]
-
引数txtの値は、内部で1文字ずつ分割され、1文字描画されるごとに、 update_textメソッドが呼び出され、続けてYuki#start_plotもしくはYuki#updateメソッド呼び出し直後に戻る 注意として、改行が文字列中にあれば改行、タブやフィードが文字列中にあれば、nilを返す。
- txt
-
表示させるテキスト
- 返却値
-
自分自身を返す
1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 |
# File 'lib/Miyako/API/yuki.rb', line 1331 def text_by_char_rapid(txt) return self unless txt.class.method_defined?("chars") txt.chars{|ch| if ch == "\n" || ch == "\r" next wait_by_cond(@is_outer_height) elsif @text_box.locate.x + @text_box.font.text_size(ch)[0] >= @text_box.textarea.w wait_by_cond(@is_outer_height) elsif ch == "\t" || ch == "\f" next nil end @text_box.draw_text(ch) @update_text.call(self, ch) } Fiber.yield return self end |
#text_by_str(txt) ⇒ Object
テキストボックスに文字を表示する
- [Yukiスクリプトとして利用可能]
-
文字列が描画されるごとに、update_textメソッドが呼び出され、 続けてYuki#start_plotもしくはYuki#updateメソッド呼び出し直後に戻る 注意として、改行が文字列中にあれば改行、タブやフィードが文字列中にあれば、nilを返す。
- txt
-
表示させるテキスト
- 返却値
-
自分自身を返す
1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 |
# File 'lib/Miyako/API/yuki.rb', line 1355 def text_by_str(txt) return self unless txt.class.method_defined?("chars") use_cr = false tw = @text_box.textarea.w until txt.empty? do if /[\n\r]/.match(txt) tmp = Regexp.last_match.pre_match txt = Regexp.last_match.post_match use_cr = true elsif @text_box.locate.x + @text_box.font.text_size(txt)[0] >= tw tmp = txt.slice!(0,(tw - @text_box.locate.x) / @text_box.font.size) use_cr = true elsif /[\t\f]/.match(txt) next nil else tmp = txt txt = "" end @text_box.draw_text(tmp) if use_cr self.cr use_cr = false end @update_text.call(self, tmp) Fiber.yield end return self end |
#text_by_str_rapid(txt) ⇒ Object
テキストボックスに文字を表示する
- [Yukiスクリプトとして利用可能]
-
文字列が描画されるごとに、update_textメソッドが呼び出され、 続けてYuki#start_plotもしくはYuki#updateメソッド呼び出し直後に戻る 注意として、改行が文字列中にあれば改行、タブやフィードが文字列中にあれば、nilを返す。
- txt
-
表示させるテキスト
- 返却値
-
自分自身を返す
1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 |
# File 'lib/Miyako/API/yuki.rb', line 1391 def text_by_str_rapid(txt) return self unless txt.class.method_defined?("chars") use_cr = false tw = @text_box.textarea.w until txt.empty? do if /[\n\r]/.match(txt) tmp = Regexp.last_match.pre_match txt = Regexp.last_match.post_match use_cr = true elsif @text_box.locate.x + @text_box.font.text_size(txt)[0] >= tw tmp = txt.slice!(0,(tw - @text_box.locate.x) / @text_box.font.size) use_cr = true elsif /[\t\f]/.match(txt) next nil else tmp = txt txt = "" end @text_box.draw_text(tmp) if use_cr self.cr use_cr = false end end @update_text.call(self, tmp) Fiber.yield return self end |
#text_method(mode) ⇒ Object
テキストボックスに文字を表示する方法を指定する
引数に、:charを渡すと1文字ごと、:stringを渡すと文字列ごとに表示される。それ以外を指定したときは例外が発生 ブロックを渡せば、ブロックの評価中のみ設定が有効になる。 ブロック評価終了後、呼び出し前の設定に戻る
- mode
-
テキストの表示方法。:charのときは文字ごと、:stringのときは文字列ごとに表示される。それ以外を指定したときは例外が発生
- 返却値
-
自分自身を返す
1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 |
# File 'lib/Miyako/API/yuki.rb', line 1272 def text_method(mode) raise MiyakoValueError, "undefined text_mode! #{mode}" unless @text_methods.keys.include?(mode) backup = @text_method_name @text_method_name = mode if block_given? yield @text_method_name = backup end return self end |
#textbox ⇒ Object
テキストボックスを取得する
- [Yukiスクリプトとして利用可能]
-
テキストボックスが登録されていないときはnilを返す
- 返却値
-
テキストボックス
608 609 610 |
# File 'lib/Miyako/API/yuki.rb', line 608 def textbox return @text_box end |
#textbox_all ⇒ Object
テキストボックス全体を取得する
- [Yukiスクリプトとして利用可能]
-
テキストボックスが登録されていないときはnilを返す
- 返却値
-
テキストボックス全体
624 625 626 |
# File 'lib/Miyako/API/yuki.rb', line 624 def textbox_all return @text_box_all end |
#to_plot(&plot) ⇒ Object
プロット用ブロックをYukiへ渡すためのインスタンスを作成する
プロット用に用意したブロック(ブロック引数無し)を、Yukiでの選択結果や移動先として利用できる インスタンスに変換する
- 返却値
-
ブロックをオブジェクトに変換したものを返す
1002 1003 1004 |
# File 'lib/Miyako/API/yuki.rb', line 1002 def to_plot(&plot) return plot end |
#under_engine ⇒ Object
344 345 346 |
# File 'lib/Miyako/API/yuki.rb', line 344 def under_engine @under_yuki end |
#under_engine=(engine) ⇒ Object
348 349 350 |
# File 'lib/Miyako/API/yuki.rb', line 348 def under_engine=(engine) @under_yuki = engine end |
#under_line(&block) ⇒ Object
下線付き文字を描画する
- [Yukiスクリプトとして利用可能]
-
ブロック内で指定した文字列を下線付きで表示する
- 返却値
-
自分自身を返す
1488 1489 1490 1491 |
# File 'lib/Miyako/API/yuki.rb', line 1488 def under_line(&block) @text_box.font_under_line{ text block.call } return self end |
#update ⇒ Object
プロット処理を更新する
ポーズ中、コマンド選択中、 Yuki#wait メソッドによるウェイトの状態確認を行う。 プロット処理の実行確認は出来ない
984 985 986 987 988 989 990 991 992 993 994 995 996 |
# File 'lib/Miyako/API/yuki.rb', line 984 def update return unless @executing return @over_yuki.update if @over_yuki && @over_yuki.executing? && !@over_exec update_plot_input pausing if @pausing selecting if @selecting waiting if @waiting @pause_release = false @select_ok = false @select_cancel = false @select_amount = [0, 0] @executing_fiber.resume end |
#update_animation ⇒ Object
Yuki#showで表示指定した画像のアニメーションを更新する
showメソッドで指定した画像のupdate_animationメソッドを呼び出す
- 返却値
-
描く画像のupdate_spriteメソッドを呼び出した結果を配列で返す
448 449 450 |
# File 'lib/Miyako/API/yuki.rb', line 448 def update_animation @over_yuki.update_animation if @over_yuki && @over_yuki.executing? end |
#update_plot_input ⇒ Object
プロット処理に使用する入力情報を更新する
ポーズ中、コマンド選択中に使用する入力デバイスの押下状態を更新する (但し、プロット処理の実行中にのみ更新する) Yuki#update メソッドをそのまま使う場合は呼び出す必要がないが、 Yuki#exec_plot メソッドを呼び出す プロット処理の場合は、メインスレッドから明示的に呼び出す必要がある
- 返却値
-
nil を返す
1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 |
# File 'lib/Miyako/API/yuki.rb', line 1012 def update_plot_input return nil if @over_yuki && @over_yuki.executing? return nil unless @executing if @pausing && @release_checks.inject(false){|r, c| r |= c.call } @pause_release = true elsif @selecting @select_ok = true if @ok_checks.inject(false){|r, c| r |= c.call } @select_cancel = true if @cancel && @cancel_checks.inject(false){|r, c| r |= c.call } @select_amount = @key_amount_proc.call @mouse_amount = @mouse_amount_proc.call end return nil end |
#valign_during(valign) ⇒ Object
ブロック評価中、行中の表示位置を変更する
- [Yukiスクリプトとして利用可能]
-
ブロックを評価している間だけ、デフォルトの縦の表示位置を変更する 変更できる値は、:top、:middle、:bottomの3種類。 ブロックを渡していないときはエラーを返す
- valign
-
文字の縦の位置(top, middle, bottom)
- 返却値
-
自分自身を返す
1443 1444 1445 1446 1447 1448 1449 |
# File 'lib/Miyako/API/yuki.rb', line 1443 def valign_during(valign) raise MiyakoProcError, "Can't find block!" unless block_given? oalign, @valign = @valign, valign yield @valign = oalign return self end |
#vars ⇒ Object
変数を参照する
- [Yukiスクリプトとして利用可能]
-
変数の管理オブジェクトを、ハッシュとして参照する。 変数名nameを指定して、インスタンスを参照できる。 未登録の変数はnilが変える。 (例)vars = 2 # 変数への代入
vars[:b] = vars[:a] + 5 show vars[:my_name]
- name
-
パーツ名(シンボル)
- 返却値
-
変数管理ハッシュ
473 474 475 |
# File 'lib/Miyako/API/yuki.rb', line 473 def vars @vars end |
#vars_names ⇒ Object
変数を参照する
- [Yukiスクリプトとして利用可能]
-
変数の管理オブジェクトを、ハッシュとして参照する。 変数名nameを指定して、インスタンスを参照できる。 未登録の変数はnilが変える。 (例)vars = 2 # 変数への代入
vars[:b] = vars[:a] + 5 vars_names => [:a, :b]
- name
-
パーツ名(シンボル)
- 返却値
-
変数管理ハッシュ
489 490 491 |
# File 'lib/Miyako/API/yuki.rb', line 489 def vars_names @vars.keys end |
#visibles_names ⇒ Object
現在描画対象のパーツ名のリストを取得する
- [Yukiスクリプトとして利用可能]
-
現在描画しているパーツ名の配列を参照する。 実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。 Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される (例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。
- 返却値
-
描画対象リスト
527 528 529 |
# File 'lib/Miyako/API/yuki.rb', line 527 def visibles_names @visibles.names end |
#wait(length) ⇒ Object
プロットの処理を待機する
- [Yukiスクリプトとして利用可能]
-
指定の秒数(少数可)、プロットの処理を待機する。 待機中、update_innerメソッドを呼び出し、続けて、処理をYuki#startもしくはYuki#update呼び出し直後に戻す Yuki#updateが呼び出されても待機中の場合は、再び上記の処理を繰り返す
- length
-
待機する長さ。単位は秒。少数可。
- 返却値
-
自分自身を返す
1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 |
# File 'lib/Miyako/API/yuki.rb', line 1669 def wait(length) @waiting_timer = WaitCounter.new(length) @waiting_timer.start @waiting = true while @waiting @update_inner.call(self) Fiber.yield end return self end |
#wait_by_cond(cond = nil) ⇒ Object
条件に合っていればポーズをかける
- [Yukiスクリプトとして利用可能]
-
引数で設定した条件(Proc,メソッドインスタンス,ブロック)を評価した結果、trueのときはポーズを行い、 condの値がnilで、ブロックが渡されていないときは何もしない falseのときは改行してプロットの処理を継続する
- cond
-
条件を示すオブジェクト(返却値はtrue/false)。デフォルトはnil(渡されたブロックを評価する)
- 返却値
-
自分自身を返す
1260 1261 1262 1263 1264 |
# File 'lib/Miyako/API/yuki.rb', line 1260 def wait_by_cond(cond = nil) return yield ? pause_and_clear : cr if block_given? return cond.call ? pause_and_clear : cr if cond return self end |
#wait_by_finish(name) ⇒ Object
遷移図の処理が終了するまで待つ
- [Yukiスクリプトとして利用可能]
-
nameで指定した遷移図の処理が終了するまで、プロットを停止する name: 遷移図名(シンボル)
- 返却値
-
自分自身を返す
878 879 880 881 882 883 |
# File 'lib/Miyako/API/yuki.rb', line 878 def wait_by_finish(name) until @parts[name].finish? @update_inner.call(self) end return self end |
#wait_over_exec ⇒ Object
別のYukiエンジンの実行が終わるまで待つ
- [Yukiスクリプトとして利用可能]
-
over_execを呼び出した時、処理がすぐに次の行へ移るため、 over_execの処理が終了するのを待たせるためのメソッド
- 返却値
-
自分自身を返す
907 908 909 910 911 912 913 914 |
# File 'lib/Miyako/API/yuki.rb', line 907 def wait_over_exec @over_exec = true while @over_yuki && @over_yuki.executing? @over_yuki.update Fiber.yield end return self end |
#waiting ⇒ Object
:nodoc:
1680 1681 1682 1683 |
# File 'lib/Miyako/API/yuki.rb', line 1680 def waiting #:nodoc: return if @waiting_timer.waiting? @waiting = false end |
#waiting? ⇒ Boolean
Yuki#waitメソッドによる処理待ちの問い合わせメソッド
- [Yukiスクリプトとして利用可能]
- 返却値
-
処理待ちの時はtrueを返す
1242 1243 1244 |
# File 'lib/Miyako/API/yuki.rb', line 1242 def waiting? return @waiting end |