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
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を返すインスタンスを配列操作で追加・削除できる。.
-
#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)マウスの位置を示す配列() 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
-
.add_method(name, &block) ⇒ Object
Yukiにメソッドを追加する(すべてのYukiインスタンスに適応) ブロックを渡すことで、Yukiに新しいメソッドを追加できる。 追加したメソッドは、すべてのYukiインスタンスで利用可能となる。 コンテキストはYukiクラスのインスタンスとなるため、Yukiスクリプトと同じ感覚でメソッドを追加できる。 ただし、すでに追加したメソッド(もしくはYukiクラスですでに追加されているメソッド)を追加しようとすると例外が発生する.
Instance Method Summary collapse
-
#add_method(name, &block) ⇒ Object
Yukiにメソッドを追加する(指定のYukiインスタンスのみ適応) ブロックを渡すことで、Yukiに新しいメソッドを追加できる。 追加したメソッドは、指定したYukiインスタンスのみ利用可能となる。 コンテキストはYukiクラスのインスタンスとなるため、Yukiスクリプトと同じ感覚でメソッドを追加できる。 ただし、すでに追加したメソッド(もしくはYukiクラスですでに追加されているメソッド)を追加しようとすると例外が発生する.
-
#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種類。(上から優先度が高い順).
-
#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_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_plot(plot_proc = nil, *params, &plot_block) ⇒ Object
プロット処理を実行する(明示的に呼び出す必要がある場合) 引数もしくはブロックで指定したプロット処理を非同期に実行する。 呼び出し可能なプロットは以下の3種類。(上から優先度が高い順) プロットが見つからなければ例外が発生する.
-
#stop(name) ⇒ Object
パーツで指定したオブジェクトの処理を停止する [[Yukiスクリプトとして利用可能]] nameで指定したパーツが持つ処理を停止する。 (但し、パーツで指定したオブジェクトがstopメソッドを持つことが条件) name:: パーツ名(シンボル) 返却値:: 自分自身を返す.
-
#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_str(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, #ow, #ox, #oy, #part_rect, #rect, #render_xy, #render_xy_to, #to_sprite, #to_unit
Constructor Details
#initialize(*params, &proc) ⇒ Yuki
Yukiを初期化する
ブロック引数として、テキストボックスの変更などの処理をブロック内に記述することが出来る。 引数の数とブロック引数の数が違っていれば例外が発生する
- params
-
ブロックに渡す引数リスト(ただし、ブロックを渡しているときのみに有効)
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 |
# File 'lib/Miyako/API/yuki.rb', line 146 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), :string => self.method(:text_by_str) } @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 raise MiyakoProcError, "Aagument 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.
93 94 95 |
# File 'lib/Miyako/API/yuki.rb', line 93 def bgs @bgs end |
#cancel_checks ⇒ Object (readonly)
- release_checks
-
ポーズ解除を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
- ok_checks
-
コマンド選択決定を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
- cancel_checks
-
コマンド選択解除(キャンセル)を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
100 101 102 |
# File 'lib/Miyako/API/yuki.rb', line 100 def cancel_checks @cancel_checks end |
#ok_checks ⇒ Object (readonly)
- release_checks
-
ポーズ解除を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
- ok_checks
-
コマンド選択決定を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
- cancel_checks
-
コマンド選択解除(キャンセル)を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
100 101 102 |
# File 'lib/Miyako/API/yuki.rb', line 100 def ok_checks @ok_checks end |
#on_disable ⇒ Object (readonly)
Returns the value of attribute on_disable.
101 102 103 |
# File 'lib/Miyako/API/yuki.rb', line 101 def on_disable @on_disable end |
#post_cancel ⇒ Object (readonly)
Returns the value of attribute post_cancel.
101 102 103 |
# File 'lib/Miyako/API/yuki.rb', line 101 def post_cancel @post_cancel end |
#post_command ⇒ Object (readonly)
Returns the value of attribute post_command.
101 102 103 |
# File 'lib/Miyako/API/yuki.rb', line 101 def post_command @post_command end |
#post_pause ⇒ Object (readonly)
Returns the value of attribute post_pause.
101 102 103 |
# File 'lib/Miyako/API/yuki.rb', line 101 def post_pause @post_pause end |
#pre_cancel ⇒ Object (readonly)
Returns the value of attribute pre_cancel.
101 102 103 |
# File 'lib/Miyako/API/yuki.rb', line 101 def pre_cancel @pre_cancel end |
#pre_command ⇒ Object (readonly)
Returns the value of attribute pre_command.
101 102 103 |
# File 'lib/Miyako/API/yuki.rb', line 101 def pre_command @pre_command end |
#pre_pause ⇒ Object (readonly)
Returns the value of attribute pre_pause.
101 102 103 |
# File 'lib/Miyako/API/yuki.rb', line 101 def pre_pause @pre_pause end |
#pre_visibles ⇒ Object (readonly)
Returns the value of attribute pre_visibles.
93 94 95 |
# File 'lib/Miyako/API/yuki.rb', line 93 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を返すインスタンスを配列操作で追加・削除できる。
100 101 102 |
# File 'lib/Miyako/API/yuki.rb', line 100 def release_checks @release_checks end |
#selecting_procs ⇒ Object (readonly)
- selecting_procs
-
コマンド選択時に行うブロックの配列。
ブロックは4つの引数を取る必要がある。 (1)コマンド決定ボタンを押した?(true/false) (2)キャンセルボタンを押した?(true/false) (3)キーパッドの移動量を示す配列() (4)マウスの位置を示す配列() callメソッドを持つブロックが使用可能。
109 110 111 |
# File 'lib/Miyako/API/yuki.rb', line 109 def selecting_procs @selecting_procs end |
#update_clear(yuki) ⇒ Object
Yuki#clear呼び出し時に行わせる処理を実装するテンプレートメソッド
但し、メソッド本体は、update_clear=メソッドで設定する必要がある
- yuki
-
実行中のYukiクラスインスタンス
88 89 |
# File 'lib/Miyako/API/yuki.rb', line 88 def update_clear(yuki) end |
#update_cr(yuki) ⇒ Object
Yuki#cr呼び出し時に行わせる処理を実装するテンプレートメソッド
但し、メソッド本体は、update_cr=メソッドで設定する必要がある
- yuki
-
実行中のYukiクラスインスタンス
82 83 |
# File 'lib/Miyako/API/yuki.rb', line 82 def update_cr(yuki) end |
#update_inner(yuki) ⇒ Object
Yuki#update実行中に行わせる処理を実装するテンプレートメソッド
但し、メソッド本体は、update_inner=メソッドで設定する必要がある
- yuki
-
実行中のYukiクラスインスタンス
66 67 |
# File 'lib/Miyako/API/yuki.rb', line 66 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文字)
76 77 |
# File 'lib/Miyako/API/yuki.rb', line 76 def update_text(yuki, ch) end |
#valign ⇒ Object (readonly)
Returns the value of attribute valign.
93 94 95 |
# File 'lib/Miyako/API/yuki.rb', line 93 def valign @valign end |
#visible ⇒ Object
Returns the value of attribute visible.
91 92 93 |
# File 'lib/Miyako/API/yuki.rb', line 91 def visible @visible end |
#visibles ⇒ Object (readonly)
Returns the value of attribute visibles.
93 94 95 |
# File 'lib/Miyako/API/yuki.rb', line 93 def visibles @visibles end |
Class Method Details
.add_method(name, &block) ⇒ Object
Yukiにメソッドを追加する(すべてのYukiインスタンスに適応)
ブロックを渡すことで、Yukiに新しいメソッドを追加できる。 追加したメソッドは、すべてのYukiインスタンスで利用可能となる。 コンテキストはYukiクラスのインスタンスとなるため、Yukiスクリプトと同じ感覚でメソッドを追加できる。 ただし、すでに追加したメソッド(もしくはYukiクラスですでに追加されているメソッド)を追加しようとすると例外が発生する
- name
-
ブロックに渡す引数リスト
- block
-
メソッドとして実行させるブロック
119 120 121 122 123 124 |
# File 'lib/Miyako/API/yuki.rb', line 119 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
#add_method(name, &block) ⇒ Object
Yukiにメソッドを追加する(指定のYukiインスタンスのみ適応)
ブロックを渡すことで、Yukiに新しいメソッドを追加できる。 追加したメソッドは、指定したYukiインスタンスのみ利用可能となる。 コンテキストはYukiクラスのインスタンスとなるため、Yukiスクリプトと同じ感覚でメソッドを追加できる。 ただし、すでに追加したメソッド(もしくはYukiクラスですでに追加されているメソッド)を追加しようとすると例外が発生する
- name
-
ブロックに渡す引数リスト
- block
-
メソッドとして実行させるブロック
134 135 136 137 138 139 |
# File 'lib/Miyako/API/yuki.rb', line 134 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 |
#bg_hide(*names) ⇒ Object
パーツで指定した背景を隠蔽する
- [Yukiスクリプトとして利用可能]
-
描画時に、指定したパーツを描画させないよう指定する
- names
-
パーツ名(シンボル)、複数指定可能
- 返却値
-
自分自身を返す
638 639 640 641 642 643 644 645 |
# File 'lib/Miyako/API/yuki.rb', line 638 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
-
パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
- 返却値
-
自分自身を返す
621 622 623 624 625 626 627 628 629 630 631 |
# File 'lib/Miyako/API/yuki.rb', line 621 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が指すインスタンスが一番前に描画される。
- 返却値
-
描画対象リスト
414 415 416 |
# File 'lib/Miyako/API/yuki.rb', line 414 def bgs_names @bgs.names end |
#bold(&block) ⇒ Object
太文字を描画する
- [Yukiスクリプトとして利用可能]
-
ブロック内で指定した文字列を太文字で表示する (使用すると文字の端が切れてしまう場合あり!)
- 返却値
-
自分自身を返す
1246 1247 1248 1249 |
# File 'lib/Miyako/API/yuki.rb', line 1246 def bold(&block) @text_box.font_bold{ text block.call } return self end |
#box_shared? ⇒ Boolean
コマンドボックスとテキストボックスを共用しているか問い合わせる
- [Yukiスクリプトとして利用可能]
-
テキストボックスとコマンドボックスを共用しているときはtrueを返す 共用していなければfalseを返す
- 返却値
-
true/false
536 537 538 |
# File 'lib/Miyako/API/yuki.rb', line 536 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
-
プロットの実行部をインスタンス化したオブジェクト
- 返却値
-
プロットの実行結果を返す
909 910 911 912 |
# File 'lib/Miyako/API/yuki.rb', line 909 def call_plot(plot_proc = nil, &plot_block) return plot_proc ? self.instance_exec(&plot_proc) : self.instance_exec(&plot_block) 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(デフォルトは[](何もしない))
- 返却値
-
自分自身を返す
1007 1008 1009 1010 1011 1012 1013 1014 |
# File 'lib/Miyako/API/yuki.rb', line 1007 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を返す
1056 1057 1058 |
# File 'lib/Miyako/API/yuki.rb', line 1056 def canceled? return @result == @cancel end |
#clear ⇒ Object
テキストボックスの内容を消去する
- [Yukiスクリプトとして利用可能]
-
開業後にupdate_clearテンプレートメソッドが1回呼ばれる
- 返却値
-
自分自身を返す
1287 1288 1289 1290 1291 |
# File 'lib/Miyako/API/yuki.rb', line 1287 def clear @text_box.clear @update_clear.call(self) return self end |
#color(color, &block) ⇒ Object
文字色を変更する
- [Yukiスクリプトとして利用可能]
-
ブロック内で指定した文字列を、指定の色で描画する
- color
-
文字色
- 返却値
-
自分自身を返す
1208 1209 1210 1211 |
# File 'lib/Miyako/API/yuki.rb', line 1208 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メソッド参照
- 返却値
-
自分自身を返す
1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 |
# File 'lib/Miyako/API/yuki.rb', line 1344 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 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} yield if block_given? @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)) @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を返す
- 返却値
-
コマンドボックス
479 480 481 |
# File 'lib/Miyako/API/yuki.rb', line 479 def commandbox return @command_box end |
#commandbox_all ⇒ Object
コマンドボックス全体を取得する
- [Yukiスクリプトとして利用可能]
-
コマンドボックスが登録されていないときはnilを返す
- 返却値
-
コマンドボックス全体
495 496 497 |
# File 'lib/Miyako/API/yuki.rb', line 495 def commandbox_all return @command_box_all end |
#condition(&block) ⇒ Object
ブロックを条件として設定する
- [Yukiスクリプトとして利用可能]
-
メソッドをMethodクラスのインスタンスに変換する
- block
-
シナリオインスタンスに変換したいメソッド名(シンボル)
- 返却値
-
シナリオインスタンスに変換したメソッド
1065 1066 1067 |
# File 'lib/Miyako/API/yuki.rb', line 1065 def condition(&block) return block end |
#cr(tm = 1) ⇒ Object
改行を行う
- [Yukiスクリプトとして利用可能]
-
開業後にupdate_crテンプレートメソッドが1回呼ばれる
- tm
-
改行回数。デフォルトは1
- 返却値
-
自分自身を返す
1275 1276 1277 1278 1279 1280 1281 |
# File 'lib/Miyako/API/yuki.rb', line 1275 def cr(tm = 1) tm.times{|n| @text_box.cr @update_cr.call(self) } return self end |
#disable_mouse ⇒ Object
マウスでの制御を不可にする
ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、 マウスでの利用を制限する Yukiクラスインスタンス生成時はマウス利用可能
- 返却値
-
自分自身を返す
271 272 273 274 |
# File 'lib/Miyako/API/yuki.rb', line 271 def disable_mouse @mouse_enable = false return self end |
#dispose ⇒ Object
インスタンスで使用しているオブジェクトを解放する
1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 |
# File 'lib/Miyako/API/yuki.rb', line 1495 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クラスインスタンス生成時はマウス利用可能
- 返却値
-
自分自身を返す
261 262 263 264 |
# File 'lib/Miyako/API/yuki.rb', line 261 def enable_mouse @mouse_enable = true return self end |
#executing? ⇒ Boolean
プロット処理が実行中かどうかを確認する
- 返却値
-
プロット処理実行中の時はtrueを返す
916 917 918 |
# File 'lib/Miyako/API/yuki.rb', line 916 def executing? return @executing end |
#hide(*names) ⇒ Object
パーツで指定したオブジェクトを隠蔽する
- [Yukiスクリプトとして利用可能]
-
描画時に、指定したパーツを描画させないよう指定する
- names
-
パーツ名(シンボル)、複数指定可能
- 返却値
-
自分自身を返す
574 575 576 577 578 579 580 581 |
# File 'lib/Miyako/API/yuki.rb', line 574 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スクリプトとして利用可能]
- 返却値
-
レシーバ
526 527 528 529 |
# File 'lib/Miyako/API/yuki.rb', line 526 def hide_commandbox @command_box_all.hide return self end |
#hide_textbox ⇒ Object
テキストボックスを描画不可能にする
- [Yukiスクリプトとして利用可能]
- 返却値
-
レシーバ
518 519 520 521 |
# File 'lib/Miyako/API/yuki.rb', line 518 def hide_textbox @text_box_all.hide return self end |
#initialize_copy(obj) ⇒ Object
:nodoc:
235 236 237 |
# File 'lib/Miyako/API/yuki.rb', line 235 def initialize_copy(obj) #:nodoc: raise MiyakoCopyError.not_copy("Yuki") end |
#is_scenario?(result) ⇒ Boolean
結果がシナリオかどうかを問い合わせる
- [Yukiスクリプトとして利用可能]
-
結果がシナリオ(メソッド)のときはtrueを返す 対象の結果は、選択結果、プロット処理結果ともに有効
- 返却値
-
結果がシナリオかどうか(true/false)
1049 1050 1051 |
# File 'lib/Miyako/API/yuki.rb', line 1049 def is_scenario?(result) return (result.kind_of?(Proc) || result.kind_of?(Method)) end |
#is_scene?(result) ⇒ Boolean
結果がシーンかどうかを問い合わせる
- [Yukiスクリプトとして利用可能]
-
結果がシーン(シーンクラス名)のときはtrueを返す 対象の結果は、選択結果、プロット処理結果ともに有効
- 返却値
-
結果がシーンかどうか(true/false)
1040 1041 1042 |
# File 'lib/Miyako/API/yuki.rb', line 1040 def is_scene?(result) return (result.class == Class && result.include?(Story::Scene)) end |
#italic(&block) ⇒ Object
斜体文字を描画する
- [Yukiスクリプトとして利用可能]
-
ブロック内で指定した文字列を斜体で表示する (使用すると文字の端が切れてしまう場合あり!)
- 返却値
-
自分自身を返す
1256 1257 1258 1259 |
# File 'lib/Miyako/API/yuki.rb', line 1256 def italic(&block) @text_box.font_italic{ text block.call } return self end |
#load_bg(name, filename) ⇒ Object
背景を登録する
- [Yukiスクリプトとして利用可能]
-
画面に表示する背景を登録する すでにshowメソッドで表示指定している場合は、先頭に表示させる
- name
-
スプライト名(重複するときは上書き)
- filename
-
読み込むファイル名
- 返却値
-
自分自身を返す
671 672 673 674 675 676 677 |
# File 'lib/Miyako/API/yuki.rb', line 671 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
-
読み込むファイル名
- 返却値
-
自分自身を返す
686 687 688 689 |
# File 'lib/Miyako/API/yuki.rb', line 686 def load_bgm(name, filename) @parts[name] = Audio::BGM.new(filename) return self end |
#load_se(name, filename) ⇒ Object
効果音を登録する
- [Yukiスクリプトとして利用可能]
-
音声ファイルを読み込み、効果音として登録する 登録した効果音はpartsメソッドを使って参照できる
- name
-
スプライト名(重複するときは上書き)
- filename
-
読み込むファイル名
- 返却値
-
自分自身を返す
698 699 700 701 |
# File 'lib/Miyako/API/yuki.rb', line 698 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
- 返却値
-
自分自身を返す
656 657 658 659 660 661 662 |
# File 'lib/Miyako/API/yuki.rb', line 656 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
279 280 281 |
# File 'lib/Miyako/API/yuki.rb', line 279 def mouse_enable? @mouse_enable end |
#now_page ⇒ Object
シナリオ上の現在のページを返す
- [Yukiスクリプトとして利用可能]
-
呼び出し当時、シナリオ上、pageメソッドでくくられていない場合は、nilを返す
- 返却値
-
ページ名
1469 1470 1471 |
# File 'lib/Miyako/API/yuki.rb', line 1469 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(デフォルトは[](何もしない))
- 返却値
-
自分自身を返す
991 992 993 994 995 996 997 998 |
# File 'lib/Miyako/API/yuki.rb', line 991 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
239 240 241 |
# File 'lib/Miyako/API/yuki.rb', line 239 def over_engine @over_yuki end |
#over_engine=(engine) ⇒ Object
243 244 245 246 |
# File 'lib/Miyako/API/yuki.rb', line 243 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
-
プロット実行開始時に、プロットに渡す引数
- 返却値
-
自分自身を返す
758 759 760 761 762 763 |
# File 'lib/Miyako/API/yuki.rb', line 758 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の値
1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 |
# File 'lib/Miyako/API/yuki.rb', line 1454 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
- 返却値
-
パーツ管理ハッシュ
364 365 366 |
# File 'lib/Miyako/API/yuki.rb', line 364 def parts @parts end |
#parts_names ⇒ Object
パーツ名の一覧を参照する
- [Yukiスクリプトとして利用可能]
-
パーツ管理オブジェクトに登録されているパーツ名の一覧を配列として返す。 順番は登録順。 まだ何も登録されていないときは空の配列が返る。 (例)regist_parts :chr1, hoge
regist_parts :chr2, fuga parts_names # => [:chr1, :chr2]
- 返却値
-
パーツ管理ハッシュ
378 379 380 |
# File 'lib/Miyako/API/yuki.rb', line 378 def parts_names @parts.keys end |
#pause ⇒ Object
ポーズを行う
- [Yukiスクリプトとして利用可能]
-
ポーズが行われると、ポーズ用のカーソルが表示される 所定のボタンを押すとポーズが解除され、カーソルが消える 解除後は、プロットの続きを処理する 引数無しのブロックを渡せば、ポーズ開始前に行いたい処理を施すことが出来る ポーズ中、update_innerメソッドを呼び出し、続けて、処理をYuki#startもしくはYuki#update呼び出し直後に戻す Yuki#updateが呼び出されてもポーズ中の場合は、再び上記の処理を繰り返す (たとえば、一定時間後に自動的にポーズ解除する場合、そのタイマーを開始させるなど)
- 返却値
-
自分自身を返す
1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 |
# File 'lib/Miyako/API/yuki.rb', line 1303 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スクリプトとして利用可能]
-
ポーズをかけ、ポーズを解除するときにテキストボックスの内容を消去する
- 返却値
-
自分自身を返す
1327 1328 1329 |
# File 'lib/Miyako/API/yuki.rb', line 1327 def pause_and_clear return pause.clear end |
#pausing ⇒ Object
:nodoc:
1316 1317 1318 1319 1320 1321 |
# File 'lib/Miyako/API/yuki.rb', line 1316 def pausing #:nodoc: return unless @pause_release @text_box.release @pausing = false @pause_release = false end |
#pausing? ⇒ Boolean
メッセージ送り待ちの問い合わせメソッド
- [Yukiスクリプトとして利用可能]
- 返却値
-
メッセージ送り待ちの時はtrueを返す
1086 1087 1088 |
# File 'lib/Miyako/API/yuki.rb', line 1086 def pausing? return @pausing end |
#play(name) ⇒ Object
パーツで指定したオブジェクトを再生する
- [Yukiスクリプトとして利用可能]
-
nameで指定したパーツを再生(例:BGM)する。 (但し、パーツで指定したオブジェクトがplayメソッドを持つことが条件)
- name
-
パーツ名(シンボル)
- 返却値
-
自分自身を返す
720 721 722 723 |
# File 'lib/Miyako/API/yuki.rb', line 720 def play(name) @parts[name].play return self end |
#plot_facade(plot_proc = nil, *params, &plot_block) ⇒ Object
:nodoc:
889 890 891 892 893 894 895 896 897 898 |
# File 'lib/Miyako/API/yuki.rb', line 889 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
-
パーツ名(シンボル)、複数指定可能
- 返却値
-
自分自身を返す
606 607 608 609 610 611 612 613 |
# File 'lib/Miyako/API/yuki.rb', line 606 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
-
パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
- 返却値
-
自分自身を返す
589 590 591 592 593 594 595 596 597 598 599 |
# File 'lib/Miyako/API/yuki.rb', line 589 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が指すインスタンスが一番前に描画される。
- 返却値
-
描画対象リスト
402 403 404 |
# File 'lib/Miyako/API/yuki.rb', line 402 def pre_visibles_names @pre_visibles.names end |
#process(*params) ⇒ Object
一旦処理をメインに戻す
- [Yukiスクリプトとして利用可能]
-
Yukiスクリプト内で定義されているループ内処理から一旦抜け出し、メインループに戻る 追加したYukiスクリプトにループが含まれているとき、 ループを回すごとに画面更新やメイン処理を行いたいときに使う 但し、ページ名を指定しないときはnilを指定する。
- params
-
メインループに返す引数
- 返却値
-
メインループから渡ってきた引数
1490 1491 1492 |
# File 'lib/Miyako/API/yuki.rb', line 1490 def process(*params) Fiber.yield *params end |
#regist_parts(name, parts) ⇒ Object
オブジェクトを登録する
- [Yukiスクリプトとして利用可能]
-
オブジェクトをパーツnameとして登録する。 Yuki::partsで参照可能
- name
-
パーツ名(シンボル)
- parts
-
登録対象のインスタンス
- 返却値
-
自分自身を返す
426 427 428 429 |
# File 'lib/Miyako/API/yuki.rb', line 426 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(デフォルトは[](何もしない))
- 返却値
-
自分自身を返す
975 976 977 978 979 980 981 982 |
# File 'lib/Miyako/API/yuki.rb', line 975 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
-
パーツ名(シンボル)
- 返却値
-
自分自身を返す
546 547 548 549 |
# File 'lib/Miyako/API/yuki.rb', line 546 def remove_parts(name) @parts.delete(name) return self end |
#render ⇒ Object
Yuki#showで表示指定した画像を描画する
描画順は、showメソッドで指定した順に描画される(先に指定した画像は後ろに表示される) なお、visibleの値がfalseの時は描画されない。
- 返却値
-
自分自身を返す
287 288 289 290 |
# File 'lib/Miyako/API/yuki.rb', line 287 def render @over_yuki.render if @over_yuki && @over_yuki.executing? return self end |
#render_all ⇒ Object
301 302 303 304 305 306 307 |
# File 'lib/Miyako/API/yuki.rb', line 301 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の時は描画されない。
- 返却値
-
自分自身を返す
296 297 298 299 |
# File 'lib/Miyako/API/yuki.rb', line 296 def render_to(dst) @over_yuki.render_to(dst) if @over_yuki && @over_yuki.executing? return self end |
#render_to_all(dst) ⇒ Object
309 310 311 312 313 314 315 |
# File 'lib/Miyako/API/yuki.rb', line 309 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_cancel_checks ⇒ Object
コマンド選択キャンセル問い合わせメソッド配列を初期状態に戻す
- 返却値
-
自分自身を返す
936 937 938 939 |
# File 'lib/Miyako/API/yuki.rb', line 936 def reset_cancel_checks @cancel_checks = @cancel_checks_default.dup return self end |
#reset_ok_checks ⇒ Object
コマンド選択決定問い合わせメソッド配列を初期状態に戻す
- 返却値
-
自分自身を返す
929 930 931 932 |
# File 'lib/Miyako/API/yuki.rb', line 929 def reset_ok_checks @ok_checks = @ok_checks_default.dup return self end |
#reset_pre_post_cancel ⇒ Object
コマンド選択キャンセル前後処理メソッド配列を初期状態に戻す
pre_cancel/post_cancelの処理を初期状態([])に戻す
- 返却値
-
自分自身を返す
962 963 964 965 966 |
# File 'lib/Miyako/API/yuki.rb', line 962 def reset_pre_post_cancel @pre_acncel = [] @post_cancel = [] return self end |
#reset_pre_post_command ⇒ Object
コマンド選択前後処理メソッド配列を初期状態に戻す
pre_command/post_commandの処理を初期状態([])に戻す
- 返却値
-
自分自身を返す
953 954 955 956 957 |
# File 'lib/Miyako/API/yuki.rb', line 953 def reset_pre_post_command @pre_command = [] @post_command = [] return self end |
#reset_pre_post_release ⇒ Object
ポーズ前後処理メソッド配列を初期状態に戻す
pre_pause/post_pauseの処理を初期状態([])に戻す
- 返却値
-
自分自身を返す
944 945 946 947 948 |
# File 'lib/Miyako/API/yuki.rb', line 944 def reset_pre_post_release @pre_pause = [] @post_pause = [] return self end |
#reset_release_checks ⇒ Object
ポーズ解除問い合わせメソッド配列を初期状態に戻す
- 返却値
-
自分自身を返す
922 923 924 925 |
# File 'lib/Miyako/API/yuki.rb', line 922 def reset_release_checks @release_checks = @release_checks_default.dup return self end |
#reset_selecting ⇒ Object
:nodoc:
1405 1406 1407 1408 1409 |
# File 'lib/Miyako/API/yuki.rb', line 1405 def reset_selecting #:nodoc: @select_ok = false @select_cancel = false @select_amount = [0, 0] end |
#result ⇒ Object
プロットの処理結果を返す
- [Yukiスクリプトとして利用可能]
-
プロット処理の結果を返す。 まだ結果が得られていない場合はnilを得る プロット処理が終了していないのに結果を得られるので注意!
- 返却値
-
プロットの処理結果
1022 1023 1024 |
# File 'lib/Miyako/API/yuki.rb', line 1022 def result return @plot_result end |
#result=(ret = nil) ⇒ Object
プロット処理の結果を設定する
- [Yukiスクリプトとして利用可能]
- ret
-
設定する結果。デフォルトはnil
- 返却値
-
自分自身を返す
1030 1031 1032 1033 |
# File 'lib/Miyako/API/yuki.rb', line 1030 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
-
テキストボックス全体
- 返却値
-
自分自身を返す
461 462 463 464 465 |
# File 'lib/Miyako/API/yuki.rb', line 461 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
-
最初に実行するページ名
1477 1478 1479 |
# File 'lib/Miyako/API/yuki.rb', line 1477 def select_first_page(name) @first_page = name end |
#select_plot(plot_proc) ⇒ Object
実行するプロットと登録する
- plot_proc
-
プロットの実行部をインスタンス化したオブジェクト
- 返却値
-
自分自身を返す
815 816 817 818 |
# File 'lib/Miyako/API/yuki.rb', line 815 def select_plot(plot_proc) @exec_plot = plot_proc return self end |
#select_result ⇒ Object
コマンドの選択結果を返す
- [Yukiスクリプトとして利用可能]
-
コマンド選択の結果を返す。 まだ結果が得られていない場合はnilを得る プロット処理・コマンド選択が終了していないのに結果を得られるので注意!
- 返却値
-
コマンドの選択結果
1417 1418 1419 |
# File 'lib/Miyako/API/yuki.rb', line 1417 def select_result return @result end |
#select_textbox(box, box_all = nil) ⇒ Object
表示・描画対象のテキストボックスを選択する
第2引数として、テキストボックス全体を渡せる(省略可能) 第1引数が、PartsやSpriteListの1部分のときに、第2引数を渡すことで、 テキストボックス全体を制御可能 第2引数を省略時は、全バージョンに引き続いて、テキストボックス本体のみを制御する
- [Yukiスクリプトとして利用可能]
- box
-
テキストボックス本体
- box_all
-
テキストボックス全体
- 返却値
-
自分自身を返す
441 442 443 444 445 446 447 448 449 |
# File 'lib/Miyako/API/yuki.rb', line 441 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:
1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 |
# File 'lib/Miyako/API/yuki.rb', line 1375 def selecting #:nodoc: return unless @selecting return unless @command_box.selecting? @selecting_procs.each{|sp| sp.call(@select_ok, @select_cansel, @select_amount, @mouse_amount) } 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を返す
1072 1073 1074 |
# File 'lib/Miyako/API/yuki.rb', line 1072 def selecting? return @selecting end |
#setup(*params, &proc) ⇒ Object
シーンのセットアップ時に実行する処理
ブロック引数として、テキストボックスの変更などの処理をブロック内に記述することが出来る。 引数の数とブロック引数の数が違っていれば例外が発生する
- params
-
ブロックに渡す引数リスト(ブロックを渡しているときのみ)
- 返却値
-
自分自身を返す
785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 |
# File 'lib/Miyako/API/yuki.rb', line 785 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, "Aagument 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
-
パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
- 返却値
-
自分自身を返す
557 558 559 560 561 562 563 564 565 566 567 |
# File 'lib/Miyako/API/yuki.rb', line 557 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スクリプトとして利用可能]
- 返却値
-
レシーバ
510 511 512 513 |
# File 'lib/Miyako/API/yuki.rb', line 510 def show_commandbox @command_box_all.show return self end |
#show_textbox ⇒ Object
テキストボックスを描画可能にする
- [Yukiスクリプトとして利用可能]
- 返却値
-
レシーバ
502 503 504 505 |
# File 'lib/Miyako/API/yuki.rb', line 502 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で変更可能)
- 返却値
-
自分自身を返す
1234 1235 1236 1237 1238 1239 |
# File 'lib/Miyako/API/yuki.rb', line 1234 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
-
パーツ名(シンボル)
- 返却値
-
自分自身を返す
709 710 711 712 |
# File 'lib/Miyako/API/yuki.rb', line 709 def start(name) @parts[name].start return self 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
-
プロットに引き渡す引数リスト
- 返却値
-
自分自身を返す
834 835 836 837 838 839 840 841 842 |
# File 'lib/Miyako/API/yuki.rb', line 834 def start_plot(plot_proc = nil, *params, &plot_block) raise MiyakoValueError, "Yuki Error! Textbox is not selected!" unless @text_box raise MiyakoProcError, "Aagument count is not same block parameter count!" if plot_proc && plot_proc.arity.abs != params.length raise MiyakoProcError, "Aagument count is not same block parameter count!" if plot_block && plot_block.arity.abs != params.length raise MiyakoProcError, "Aagument 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
-
パーツ名(シンボル)
- 返却値
-
自分自身を返す
731 732 733 734 |
# File 'lib/Miyako/API/yuki.rb', line 731 def stop(name) @parts[name].stop return self end |
#text(txt) ⇒ Object
テキストボックスに文字を表示する
- [Yukiスクリプトとして利用可能]
-
テキストボックスとして用意している画像に文字を描画する。 描画する単位(文字単位、文字列単位)によって、挙動が違う。 (文字単位の時) Yuki#text_by_charメソッドと同じ挙動。 (文字列単位の時) Yuki#text_by_strメソッドと同じ挙動。 デフォルトは文字単位。 引数txtの値は、内部で1文字ずつ分割され、1文字描画されるごとに、 update_textメソッドが呼び出され、続けてYuki#start_plotもしくはYuki#updateメソッド呼び出し直後に戻る
- txt
-
表示させるテキスト
- 返却値
-
自分自身を返す
1133 1134 1135 1136 1137 |
# File 'lib/Miyako/API/yuki.rb', line 1133 def text(txt) return self if txt.eql?(self) return self if txt.empty? 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
-
表示させるテキスト
- 返却値
-
自分自身を返す
1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 |
# File 'lib/Miyako/API/yuki.rb', line 1146 def text_by_char(txt) return self if txt.eql?(self) txt.chars{|ch| if /[\n\r]/.match(ch) 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 /[\t\f]/.match(ch) 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
-
表示させるテキスト
- 返却値
-
自分自身を返す
1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 |
# File 'lib/Miyako/API/yuki.rb', line 1170 def text_by_str(txt) return self if txt.eql?(self) use_cr = false 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] >= @text_box.textarea.w w = (@text_box.textarea.w - @text_box.locate.x) / @text_box.font.size tmp = txt.slice!(0,w) use_cr = true elsif /[\t\f]/.match(txt) next nil else tmp = txt txt = "" end @text_box.draw_text(tmp) self.cr if use_cr @update_text.call(self, tmp) Fiber.yield use_cr = false end return self end |
#text_method(mode) ⇒ Object
テキストボックスに文字を表示する方法を指定する
引数に、:charを渡すと1文字ごと、:stringを渡すと文字列ごとに表示される。それ以外を指定したときは例外が発生 ブロックを渡せば、ブロックの評価中のみ設定が有効になる。 ブロック評価終了後、呼び出し前の設定に戻る
- mode
-
テキストの表示方法。:charのときは文字ごと、:stringのときは文字列ごとに表示される。それ以外を指定したときは例外が発生
- 返却値
-
自分自身を返す
1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 |
# File 'lib/Miyako/API/yuki.rb', line 1109 def text_method(mode) raise MiyakoValueError, "undefined text_mode! #{mode}" unless [:char,:string].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を返す
- 返却値
-
テキストボックス
471 472 473 |
# File 'lib/Miyako/API/yuki.rb', line 471 def textbox return @text_box end |
#textbox_all ⇒ Object
テキストボックス全体を取得する
- [Yukiスクリプトとして利用可能]
-
テキストボックスが登録されていないときはnilを返す
- 返却値
-
テキストボックス全体
487 488 489 |
# File 'lib/Miyako/API/yuki.rb', line 487 def textbox_all return @text_box_all end |
#to_plot(&plot) ⇒ Object
プロット用ブロックをYukiへ渡すためのインスタンスを作成する
プロット用に用意したブロック(ブロック引数無し)を、Yukiでの選択結果や移動先として利用できる インスタンスに変換する
- 返却値
-
ブロックをオブジェクトに変換したものを返す
865 866 867 |
# File 'lib/Miyako/API/yuki.rb', line 865 def to_plot(&plot) return plot end |
#under_engine ⇒ Object
248 249 250 |
# File 'lib/Miyako/API/yuki.rb', line 248 def under_engine @under_yuki end |
#under_engine=(engine) ⇒ Object
252 253 254 |
# File 'lib/Miyako/API/yuki.rb', line 252 def under_engine=(engine) @under_yuki = engine end |
#under_line(&block) ⇒ Object
下線付き文字を描画する
- [Yukiスクリプトとして利用可能]
-
ブロック内で指定した文字列を下線付きで表示する
- 返却値
-
自分自身を返す
1265 1266 1267 1268 |
# File 'lib/Miyako/API/yuki.rb', line 1265 def under_line(&block) @text_box.font_under_line{ text block.call } return self end |
#update ⇒ Object
プロット処理を更新する
ポーズ中、コマンド選択中、 Yuki#wait メソッドによるウェイトの状態確認を行う。 プロット処理の実行確認は出来ない
847 848 849 850 851 852 853 854 855 856 857 858 859 |
# File 'lib/Miyako/API/yuki.rb', line 847 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メソッドを呼び出した結果を配列で返す
320 321 322 |
# File 'lib/Miyako/API/yuki.rb', line 320 def update_animation @over_yuki.update_animation if @over_yuki && @over_yuki.executing? end |
#update_plot_input ⇒ Object
プロット処理に使用する入力情報を更新する
ポーズ中、コマンド選択中に使用する入力デバイスの押下状態を更新する (但し、プロット処理の実行中にのみ更新する) Yuki#update メソッドをそのまま使う場合は呼び出す必要がないが、 Yuki#exec_plot メソッドを呼び出す プロット処理の場合は、メインスレッドから明示的に呼び出す必要がある
- 返却値
-
nil を返す
875 876 877 878 879 880 881 882 883 884 885 886 887 |
# File 'lib/Miyako/API/yuki.rb', line 875 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)
- 返却値
-
自分自身を返す
1220 1221 1222 1223 1224 1225 1226 |
# File 'lib/Miyako/API/yuki.rb', line 1220 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
-
パーツ名(シンボル)
- 返却値
-
変数管理ハッシュ
336 337 338 |
# File 'lib/Miyako/API/yuki.rb', line 336 def vars @vars end |
#vars_names ⇒ Object
変数を参照する
- [Yukiスクリプトとして利用可能]
-
変数の管理オブジェクトを、ハッシュとして参照する。 変数名nameを指定して、インスタンスを参照できる。 未登録の変数はnilが変える。 (例)vars = 2 # 変数への代入
vars[:b] = vars[:a] + 5 vars_names => [:a, :b]
- name
-
パーツ名(シンボル)
- 返却値
-
変数管理ハッシュ
352 353 354 |
# File 'lib/Miyako/API/yuki.rb', line 352 def vars_names @vars.keys end |
#visibles_names ⇒ Object
現在描画対象のパーツ名のリストを取得する
- [Yukiスクリプトとして利用可能]
-
現在描画しているパーツ名の配列を参照する。 実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。 Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される (例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。
- 返却値
-
描画対象リスト
390 391 392 |
# File 'lib/Miyako/API/yuki.rb', line 390 def visibles_names @visibles.names end |
#wait(length) ⇒ Object
プロットの処理を待機する
- [Yukiスクリプトとして利用可能]
-
指定の秒数(少数可)、プロットの処理を待機する。 待機中、update_innerメソッドを呼び出し、続けて、処理をYuki#startもしくはYuki#update呼び出し直後に戻す Yuki#updateが呼び出されても待機中の場合は、再び上記の処理を繰り返す
- length
-
待機する長さ。単位は秒。少数可。
- 返却値
-
自分自身を返す
1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 |
# File 'lib/Miyako/API/yuki.rb', line 1428 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(渡されたブロックを評価する)
- 返却値
-
自分自身を返す
1097 1098 1099 1100 1101 |
# File 'lib/Miyako/API/yuki.rb', line 1097 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: 遷移図名(シンボル)
- 返却値
-
自分自身を返す
741 742 743 744 745 746 |
# File 'lib/Miyako/API/yuki.rb', line 741 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の処理が終了するのを待たせるためのメソッド
- 返却値
-
自分自身を返す
770 771 772 773 774 775 776 777 |
# File 'lib/Miyako/API/yuki.rb', line 770 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:
1439 1440 1441 1442 |
# File 'lib/Miyako/API/yuki.rb', line 1439 def waiting #:nodoc: return if @waiting_timer.waiting? @waiting = false end |
#waiting? ⇒ Boolean
Yuki#waitメソッドによる処理待ちの問い合わせメソッド
- [Yukiスクリプトとして利用可能]
- 返却値
-
処理待ちの時はtrueを返す
1079 1080 1081 |
# File 'lib/Miyako/API/yuki.rb', line 1079 def waiting? return @waiting end |