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 }
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クラスですでに追加されているメソッド)を追加しようとすると例外が発生する.
- #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種類。(上から優先度が高い順).
-
#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_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, #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
-
ブロックに渡す引数リスト(ただし、ブロックを渡しているときのみに有効)
222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 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 |
# File 'lib/Miyako/API/yuki.rb', line 222 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, "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.
169 170 171 |
# File 'lib/Miyako/API/yuki.rb', line 169 def bgs @bgs end |
#cancel_checks ⇒ Object (readonly)
- release_checks
-
ポーズ解除を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
- ok_checks
-
コマンド選択決定を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
- cancel_checks
-
コマンド選択解除(キャンセル)を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
176 177 178 |
# File 'lib/Miyako/API/yuki.rb', line 176 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を返すインスタンスを配列操作で追加・削除できる。
176 177 178 |
# File 'lib/Miyako/API/yuki.rb', line 176 def ok_checks @ok_checks end |
#on_disable ⇒ Object (readonly)
Returns the value of attribute on_disable.
177 178 179 |
# File 'lib/Miyako/API/yuki.rb', line 177 def on_disable @on_disable end |
#post_cancel ⇒ Object (readonly)
Returns the value of attribute post_cancel.
177 178 179 |
# File 'lib/Miyako/API/yuki.rb', line 177 def post_cancel @post_cancel end |
#post_command ⇒ Object (readonly)
Returns the value of attribute post_command.
177 178 179 |
# File 'lib/Miyako/API/yuki.rb', line 177 def post_command @post_command end |
#post_pause ⇒ Object (readonly)
Returns the value of attribute post_pause.
177 178 179 |
# File 'lib/Miyako/API/yuki.rb', line 177 def post_pause @post_pause end |
#pre_cancel ⇒ Object (readonly)
Returns the value of attribute pre_cancel.
177 178 179 |
# File 'lib/Miyako/API/yuki.rb', line 177 def pre_cancel @pre_cancel end |
#pre_command ⇒ Object (readonly)
Returns the value of attribute pre_command.
177 178 179 |
# File 'lib/Miyako/API/yuki.rb', line 177 def pre_command @pre_command end |
#pre_pause ⇒ Object (readonly)
Returns the value of attribute pre_pause.
177 178 179 |
# File 'lib/Miyako/API/yuki.rb', line 177 def pre_pause @pre_pause end |
#pre_visibles ⇒ Object (readonly)
Returns the value of attribute pre_visibles.
169 170 171 |
# File 'lib/Miyako/API/yuki.rb', line 169 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を返すインスタンスを配列操作で追加・削除できる。
176 177 178 |
# File 'lib/Miyako/API/yuki.rb', line 176 def release_checks @release_checks end |
#selecting_procs ⇒ Object (readonly)
- selecting_procs
-
コマンド選択時に行うブロックの配列。
ブロックは4つの引数を取る必要がある。 (1)コマンド決定ボタンを押した?(true/false) (2)キャンセルボタンを押した?(true/false) (3)キーパッドの移動量を示す配列() (4)マウスの位置を示す配列() callメソッドを持つブロックが使用可能。
185 186 187 |
# File 'lib/Miyako/API/yuki.rb', line 185 def selecting_procs @selecting_procs end |
#update_clear(yuki) ⇒ Object
Yuki#clear呼び出し時に行わせる処理を実装するテンプレートメソッド
但し、メソッド本体は、update_clear=メソッドで設定する必要がある
- yuki
-
実行中のYukiクラスインスタンス
164 165 |
# File 'lib/Miyako/API/yuki.rb', line 164 def update_clear(yuki) end |
#update_cr(yuki) ⇒ Object
Yuki#cr呼び出し時に行わせる処理を実装するテンプレートメソッド
但し、メソッド本体は、update_cr=メソッドで設定する必要がある
- yuki
-
実行中のYukiクラスインスタンス
158 159 |
# File 'lib/Miyako/API/yuki.rb', line 158 def update_cr(yuki) end |
#update_inner(yuki) ⇒ Object
Yuki#update実行中に行わせる処理を実装するテンプレートメソッド
但し、メソッド本体は、update_inner=メソッドで設定する必要がある
- yuki
-
実行中のYukiクラスインスタンス
142 143 |
# File 'lib/Miyako/API/yuki.rb', line 142 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文字)
152 153 |
# File 'lib/Miyako/API/yuki.rb', line 152 def update_text(yuki, ch) end |
#valign ⇒ Object (readonly)
Returns the value of attribute valign.
169 170 171 |
# File 'lib/Miyako/API/yuki.rb', line 169 def valign @valign end |
#visible ⇒ Object
Returns the value of attribute visible.
167 168 169 |
# File 'lib/Miyako/API/yuki.rb', line 167 def visible @visible end |
#visibles ⇒ Object (readonly)
Returns the value of attribute visibles.
169 170 171 |
# File 'lib/Miyako/API/yuki.rb', line 169 def visibles @visibles end |
Class Method Details
.add_method(name, &block) ⇒ Object
Yukiにメソッドを追加する(すべてのYukiインスタンスに適応)
ブロックを渡すことで、Yukiに新しいメソッドを追加できる。 追加したメソッドは、すべてのYukiインスタンスで利用可能となる。 コンテキストはYukiクラスのインスタンスとなるため、Yukiスクリプトと同じ感覚でメソッドを追加できる。 ただし、すでに追加したメソッド(もしくはYukiクラスですでに追加されているメソッド)を追加しようとすると例外が発生する
- name
-
ブロックに渡す引数リスト
- block
-
メソッドとして実行させるブロック
195 196 197 198 199 200 |
# File 'lib/Miyako/API/yuki.rb', line 195 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
-
メソッドとして実行させるブロック
210 211 212 213 214 215 |
# File 'lib/Miyako/API/yuki.rb', line 210 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
417 418 419 420 421 422 423 |
# File 'lib/Miyako/API/yuki.rb', line 417 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
-
パーツ名(シンボル)、複数指定可能
- 返却値
-
自分自身を返す
746 747 748 749 750 751 752 753 |
# File 'lib/Miyako/API/yuki.rb', line 746 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
-
パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
- 返却値
-
自分自身を返す
729 730 731 732 733 734 735 736 737 738 739 |
# File 'lib/Miyako/API/yuki.rb', line 729 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が指すインスタンスが一番前に描画される。
- 返却値
-
描画対象リスト
522 523 524 |
# File 'lib/Miyako/API/yuki.rb', line 522 def bgs_names @bgs.names end |
#bold(&block) ⇒ Object
太文字を描画する
- [Yukiスクリプトとして利用可能]
-
ブロック内で指定した文字列を太文字で表示する (使用すると文字の端が切れてしまう場合あり!)
- 返却値
-
自分自身を返す
1354 1355 1356 1357 |
# File 'lib/Miyako/API/yuki.rb', line 1354 def bold(&block) @text_box.font_bold{ text block.call } return self end |
#box_shared? ⇒ Boolean
コマンドボックスとテキストボックスを共用しているか問い合わせる
- [Yukiスクリプトとして利用可能]
-
テキストボックスとコマンドボックスを共用しているときはtrueを返す 共用していなければfalseを返す
- 返却値
-
true/false
644 645 646 |
# File 'lib/Miyako/API/yuki.rb', line 644 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
-
プロットの実行部をインスタンス化したオブジェクト
- 返却値
-
プロットの実行結果を返す
1017 1018 1019 1020 |
# File 'lib/Miyako/API/yuki.rb', line 1017 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(デフォルトは[](何もしない))
- 返却値
-
自分自身を返す
1115 1116 1117 1118 1119 1120 1121 1122 |
# File 'lib/Miyako/API/yuki.rb', line 1115 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を返す
1164 1165 1166 |
# File 'lib/Miyako/API/yuki.rb', line 1164 def canceled? return @result == @cancel end |
#clear ⇒ Object
テキストボックスの内容を消去する
- [Yukiスクリプトとして利用可能]
-
開業後にupdate_clearテンプレートメソッドが1回呼ばれる
- 返却値
-
自分自身を返す
1395 1396 1397 1398 1399 |
# File 'lib/Miyako/API/yuki.rb', line 1395 def clear @text_box.clear @update_clear.call(self) return self end |
#color(color, &block) ⇒ Object
文字色を変更する
- [Yukiスクリプトとして利用可能]
-
ブロック内で指定した文字列を、指定の色で描画する
- color
-
文字色
- 返却値
-
自分自身を返す
1316 1317 1318 1319 |
# File 'lib/Miyako/API/yuki.rb', line 1316 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メソッド参照
- 返却値
-
自分自身を返す
1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 |
# File 'lib/Miyako/API/yuki.rb', line 1452 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を返す
- 返却値
-
コマンドボックス
587 588 589 |
# File 'lib/Miyako/API/yuki.rb', line 587 def commandbox return @command_box end |
#commandbox_all ⇒ Object
コマンドボックス全体を取得する
- [Yukiスクリプトとして利用可能]
-
コマンドボックスが登録されていないときはnilを返す
- 返却値
-
コマンドボックス全体
603 604 605 |
# File 'lib/Miyako/API/yuki.rb', line 603 def commandbox_all return @command_box_all end |
#condition(&block) ⇒ Object
ブロックを条件として設定する
- [Yukiスクリプトとして利用可能]
-
メソッドをMethodクラスのインスタンスに変換する
- block
-
シナリオインスタンスに変換したいメソッド名(シンボル)
- 返却値
-
シナリオインスタンスに変換したメソッド
1173 1174 1175 |
# File 'lib/Miyako/API/yuki.rb', line 1173 def condition(&block) return block end |
#cr(tm = 1) ⇒ Object
改行を行う
- [Yukiスクリプトとして利用可能]
-
開業後にupdate_crテンプレートメソッドが1回呼ばれる
- tm
-
改行回数。デフォルトは1
- 返却値
-
自分自身を返す
1383 1384 1385 1386 1387 1388 1389 |
# File 'lib/Miyako/API/yuki.rb', line 1383 def cr(tm = 1) tm.times{|n| @text_box.cr @update_cr.call(self) } return self end |
#disable_mouse ⇒ Object
マウスでの制御を不可にする
ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、 マウスでの利用を制限する Yukiクラスインスタンス生成時はマウス利用可能
- 返却値
-
自分自身を返す
347 348 349 350 |
# File 'lib/Miyako/API/yuki.rb', line 347 def disable_mouse @mouse_enable = false return self end |
#dispose ⇒ Object
インスタンスで使用しているオブジェクトを解放する
1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 |
# File 'lib/Miyako/API/yuki.rb', line 1609 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クラスインスタンス生成時はマウス利用可能
- 返却値
-
自分自身を返す
337 338 339 340 |
# File 'lib/Miyako/API/yuki.rb', line 337 def enable_mouse @mouse_enable = true return self end |
#executing? ⇒ Boolean
プロット処理が実行中かどうかを確認する
- 返却値
-
プロット処理実行中の時はtrueを返す
1024 1025 1026 |
# File 'lib/Miyako/API/yuki.rb', line 1024 def executing? return @executing end |
#hide(*names) ⇒ Object
パーツで指定したオブジェクトを隠蔽する
- [Yukiスクリプトとして利用可能]
-
描画時に、指定したパーツを描画させないよう指定する
- names
-
パーツ名(シンボル)、複数指定可能
- 返却値
-
自分自身を返す
682 683 684 685 686 687 688 689 |
# File 'lib/Miyako/API/yuki.rb', line 682 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スクリプトとして利用可能]
- 返却値
-
レシーバ
634 635 636 637 |
# File 'lib/Miyako/API/yuki.rb', line 634 def hide_commandbox @command_box_all.hide return self end |
#hide_textbox ⇒ Object
テキストボックスを描画不可能にする
- [Yukiスクリプトとして利用可能]
- 返却値
-
レシーバ
626 627 628 629 |
# File 'lib/Miyako/API/yuki.rb', line 626 def hide_textbox @text_box_all.hide return self end |
#initialize_copy(obj) ⇒ Object
:nodoc:
311 312 313 |
# File 'lib/Miyako/API/yuki.rb', line 311 def initialize_copy(obj) #:nodoc: raise MiyakoCopyError.not_copy("Yuki") end |
#is_scenario?(result) ⇒ Boolean
結果がシナリオかどうかを問い合わせる
- [Yukiスクリプトとして利用可能]
-
結果がシナリオ(メソッド)のときはtrueを返す 対象の結果は、選択結果、プロット処理結果ともに有効
- 返却値
-
結果がシナリオかどうか(true/false)
1157 1158 1159 |
# File 'lib/Miyako/API/yuki.rb', line 1157 def is_scenario?(result) return (result.kind_of?(Proc) || result.kind_of?(Method)) end |
#is_scene?(result) ⇒ Boolean
結果がシーンかどうかを問い合わせる
- [Yukiスクリプトとして利用可能]
-
結果がシーン(シーンクラス名)のときはtrueを返す 対象の結果は、選択結果、プロット処理結果ともに有効
- 返却値
-
結果がシーンかどうか(true/false)
1148 1149 1150 |
# File 'lib/Miyako/API/yuki.rb', line 1148 def is_scene?(result) return (result.class == Class && result.include?(Story::Scene)) end |
#italic(&block) ⇒ Object
斜体文字を描画する
- [Yukiスクリプトとして利用可能]
-
ブロック内で指定した文字列を斜体で表示する (使用すると文字の端が切れてしまう場合あり!)
- 返却値
-
自分自身を返す
1364 1365 1366 1367 |
# File 'lib/Miyako/API/yuki.rb', line 1364 def italic(&block) @text_box.font_italic{ text block.call } return self end |
#load_bg(name, filename) ⇒ Object
背景を登録する
- [Yukiスクリプトとして利用可能]
-
画面に表示する背景を登録する すでにshowメソッドで表示指定している場合は、先頭に表示させる
- name
-
スプライト名(重複するときは上書き)
- filename
-
読み込むファイル名
- 返却値
-
自分自身を返す
779 780 781 782 783 784 785 |
# File 'lib/Miyako/API/yuki.rb', line 779 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
-
読み込むファイル名
- 返却値
-
自分自身を返す
794 795 796 797 |
# File 'lib/Miyako/API/yuki.rb', line 794 def load_bgm(name, filename) @parts[name] = Audio::BGM.new(filename) return self end |
#load_se(name, filename) ⇒ Object
効果音を登録する
- [Yukiスクリプトとして利用可能]
-
音声ファイルを読み込み、効果音として登録する 登録した効果音はpartsメソッドを使って参照できる
- name
-
スプライト名(重複するときは上書き)
- filename
-
読み込むファイル名
- 返却値
-
自分自身を返す
806 807 808 809 |
# File 'lib/Miyako/API/yuki.rb', line 806 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
- 返却値
-
自分自身を返す
764 765 766 767 768 769 770 |
# File 'lib/Miyako/API/yuki.rb', line 764 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
355 356 357 |
# File 'lib/Miyako/API/yuki.rb', line 355 def mouse_enable? @mouse_enable end |
#now_page ⇒ Object
シナリオ上の現在のページを返す
- [Yukiスクリプトとして利用可能]
-
呼び出し当時、シナリオ上、pageメソッドでくくられていない場合は、nilを返す
- 返却値
-
ページ名
1583 1584 1585 |
# File 'lib/Miyako/API/yuki.rb', line 1583 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(デフォルトは[](何もしない))
- 返却値
-
自分自身を返す
1099 1100 1101 1102 1103 1104 1105 1106 |
# File 'lib/Miyako/API/yuki.rb', line 1099 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
315 316 317 |
# File 'lib/Miyako/API/yuki.rb', line 315 def over_engine @over_yuki end |
#over_engine=(engine) ⇒ Object
319 320 321 322 |
# File 'lib/Miyako/API/yuki.rb', line 319 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
-
プロット実行開始時に、プロットに渡す引数
- 返却値
-
自分自身を返す
866 867 868 869 870 871 |
# File 'lib/Miyako/API/yuki.rb', line 866 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の値
1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 |
# File 'lib/Miyako/API/yuki.rb', line 1568 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
- 返却値
-
パーツ管理ハッシュ
472 473 474 |
# File 'lib/Miyako/API/yuki.rb', line 472 def parts @parts end |
#parts_names ⇒ Object
パーツ名の一覧を参照する
- [Yukiスクリプトとして利用可能]
-
パーツ管理オブジェクトに登録されているパーツ名の一覧を配列として返す。 順番は登録順。 まだ何も登録されていないときは空の配列が返る。 (例)regist_parts :chr1, hoge
regist_parts :chr2, fuga parts_names # => [:chr1, :chr2]
- 返却値
-
パーツ管理ハッシュ
486 487 488 |
# File 'lib/Miyako/API/yuki.rb', line 486 def parts_names @parts.keys end |
#pause ⇒ Object
ポーズを行う
- [Yukiスクリプトとして利用可能]
-
ポーズが行われると、ポーズ用のカーソルが表示される 所定のボタンを押すとポーズが解除され、カーソルが消える 解除後は、プロットの続きを処理する 引数無しのブロックを渡せば、ポーズ開始前に行いたい処理を施すことが出来る ポーズ中、update_innerメソッドを呼び出し、続けて、処理をYuki#startもしくはYuki#update呼び出し直後に戻す Yuki#updateが呼び出されてもポーズ中の場合は、再び上記の処理を繰り返す (たとえば、一定時間後に自動的にポーズ解除する場合、そのタイマーを開始させるなど)
- 返却値
-
自分自身を返す
1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 |
# File 'lib/Miyako/API/yuki.rb', line 1411 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スクリプトとして利用可能]
-
ポーズをかけ、ポーズを解除するときにテキストボックスの内容を消去する
- 返却値
-
自分自身を返す
1435 1436 1437 |
# File 'lib/Miyako/API/yuki.rb', line 1435 def pause_and_clear return pause.clear end |
#pausing ⇒ Object
:nodoc:
1424 1425 1426 1427 1428 1429 |
# File 'lib/Miyako/API/yuki.rb', line 1424 def pausing #:nodoc: return unless @pause_release @text_box.release @pausing = false @pause_release = false end |
#pausing? ⇒ Boolean
メッセージ送り待ちの問い合わせメソッド
- [Yukiスクリプトとして利用可能]
- 返却値
-
メッセージ送り待ちの時はtrueを返す
1194 1195 1196 |
# File 'lib/Miyako/API/yuki.rb', line 1194 def pausing? return @pausing end |
#play(name) ⇒ Object
パーツで指定したオブジェクトを再生する
- [Yukiスクリプトとして利用可能]
-
nameで指定したパーツを再生(例:BGM)する。 (但し、パーツで指定したオブジェクトがplayメソッドを持つことが条件)
- name
-
パーツ名(シンボル)
- 返却値
-
自分自身を返す
828 829 830 831 |
# File 'lib/Miyako/API/yuki.rb', line 828 def play(name) @parts[name].play return self end |
#plot_facade(plot_proc = nil, *params, &plot_block) ⇒ Object
:nodoc:
997 998 999 1000 1001 1002 1003 1004 1005 1006 |
# File 'lib/Miyako/API/yuki.rb', line 997 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
-
パーツ名(シンボル)、複数指定可能
- 返却値
-
自分自身を返す
714 715 716 717 718 719 720 721 |
# File 'lib/Miyako/API/yuki.rb', line 714 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
-
パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
- 返却値
-
自分自身を返す
697 698 699 700 701 702 703 704 705 706 707 |
# File 'lib/Miyako/API/yuki.rb', line 697 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が指すインスタンスが一番前に描画される。
- 返却値
-
描画対象リスト
510 511 512 |
# File 'lib/Miyako/API/yuki.rb', line 510 def pre_visibles_names @pre_visibles.names end |
#process(*params) ⇒ Object
一旦処理をメインに戻す
- [Yukiスクリプトとして利用可能]
-
Yukiスクリプト内で定義されているループ内処理から一旦抜け出し、メインループに戻る 追加したYukiスクリプトにループが含まれているとき、 ループを回すごとに画面更新やメイン処理を行いたいときに使う 但し、ページ名を指定しないときはnilを指定する。
- params
-
メインループに返す引数
- 返却値
-
メインループから渡ってきた引数
1604 1605 1606 |
# File 'lib/Miyako/API/yuki.rb', line 1604 def process(*params) Fiber.yield *params end |
#regist_parts(name, parts) ⇒ Object
オブジェクトを登録する
- [Yukiスクリプトとして利用可能]
-
オブジェクトをパーツnameとして登録する。 Yuki::partsで参照可能
- name
-
パーツ名(シンボル)
- parts
-
登録対象のインスタンス
- 返却値
-
自分自身を返す
534 535 536 537 |
# File 'lib/Miyako/API/yuki.rb', line 534 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(デフォルトは[](何もしない))
- 返却値
-
自分自身を返す
1083 1084 1085 1086 1087 1088 1089 1090 |
# File 'lib/Miyako/API/yuki.rb', line 1083 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
-
パーツ名(シンボル)
- 返却値
-
自分自身を返す
654 655 656 657 |
# File 'lib/Miyako/API/yuki.rb', line 654 def remove_parts(name) @parts.delete(name) return self end |
#render ⇒ Object
Yuki#showで表示指定した画像を描画する
描画順は、showメソッドで指定した順に描画される(先に指定した画像は後ろに表示される) なお、visibleの値がfalseの時は描画されない。
- 返却値
-
自分自身を返す
363 364 365 366 |
# File 'lib/Miyako/API/yuki.rb', line 363 def render @over_yuki.render if @over_yuki && @over_yuki.executing? return self end |
#render_all ⇒ Object
377 378 379 380 381 382 383 |
# File 'lib/Miyako/API/yuki.rb', line 377 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の時は描画されない。
- 返却値
-
自分自身を返す
372 373 374 375 |
# File 'lib/Miyako/API/yuki.rb', line 372 def render_to(dst) @over_yuki.render_to(dst) if @over_yuki && @over_yuki.executing? return self end |
#render_to_all(dst) ⇒ Object
385 386 387 388 389 390 391 |
# File 'lib/Miyako/API/yuki.rb', line 385 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
409 410 411 412 413 414 415 |
# File 'lib/Miyako/API/yuki.rb', line 409 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
コマンド選択キャンセル問い合わせメソッド配列を初期状態に戻す
- 返却値
-
自分自身を返す
1044 1045 1046 1047 |
# File 'lib/Miyako/API/yuki.rb', line 1044 def reset_cancel_checks @cancel_checks = @cancel_checks_default.dup return self end |
#reset_ok_checks ⇒ Object
コマンド選択決定問い合わせメソッド配列を初期状態に戻す
- 返却値
-
自分自身を返す
1037 1038 1039 1040 |
# File 'lib/Miyako/API/yuki.rb', line 1037 def reset_ok_checks @ok_checks = @ok_checks_default.dup return self end |
#reset_pre_post_cancel ⇒ Object
コマンド選択キャンセル前後処理メソッド配列を初期状態に戻す
pre_cancel/post_cancelの処理を初期状態([])に戻す
- 返却値
-
自分自身を返す
1070 1071 1072 1073 1074 |
# File 'lib/Miyako/API/yuki.rb', line 1070 def reset_pre_post_cancel @pre_acncel = [] @post_cancel = [] return self end |
#reset_pre_post_command ⇒ Object
コマンド選択前後処理メソッド配列を初期状態に戻す
pre_command/post_commandの処理を初期状態([])に戻す
- 返却値
-
自分自身を返す
1061 1062 1063 1064 1065 |
# File 'lib/Miyako/API/yuki.rb', line 1061 def reset_pre_post_command @pre_command = [] @post_command = [] return self end |
#reset_pre_post_release ⇒ Object
ポーズ前後処理メソッド配列を初期状態に戻す
pre_pause/post_pauseの処理を初期状態([])に戻す
- 返却値
-
自分自身を返す
1052 1053 1054 1055 1056 |
# File 'lib/Miyako/API/yuki.rb', line 1052 def reset_pre_post_release @pre_pause = [] @post_pause = [] return self end |
#reset_release_checks ⇒ Object
ポーズ解除問い合わせメソッド配列を初期状態に戻す
- 返却値
-
自分自身を返す
1030 1031 1032 1033 |
# File 'lib/Miyako/API/yuki.rb', line 1030 def reset_release_checks @release_checks = @release_checks_default.dup return self end |
#reset_selecting ⇒ Object
:nodoc:
1519 1520 1521 1522 1523 |
# File 'lib/Miyako/API/yuki.rb', line 1519 def reset_selecting #:nodoc: @select_ok = false @select_cancel = false @select_amount = [0, 0] end |
#result ⇒ Object
プロットの処理結果を返す
- [Yukiスクリプトとして利用可能]
-
プロット処理の結果を返す。 まだ結果が得られていない場合はnilを得る プロット処理が終了していないのに結果を得られるので注意!
- 返却値
-
プロットの処理結果
1130 1131 1132 |
# File 'lib/Miyako/API/yuki.rb', line 1130 def result return @plot_result end |
#result=(ret = nil) ⇒ Object
プロット処理の結果を設定する
- [Yukiスクリプトとして利用可能]
- ret
-
設定する結果。デフォルトはnil
- 返却値
-
自分自身を返す
1138 1139 1140 1141 |
# File 'lib/Miyako/API/yuki.rb', line 1138 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
-
テキストボックス全体
- 返却値
-
自分自身を返す
569 570 571 572 573 |
# File 'lib/Miyako/API/yuki.rb', line 569 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
-
最初に実行するページ名
1591 1592 1593 |
# File 'lib/Miyako/API/yuki.rb', line 1591 def select_first_page(name) @first_page = name end |
#select_plot(plot_proc) ⇒ Object
実行するプロットと登録する
- plot_proc
-
プロットの実行部をインスタンス化したオブジェクト
- 返却値
-
自分自身を返す
923 924 925 926 |
# File 'lib/Miyako/API/yuki.rb', line 923 def select_plot(plot_proc) @exec_plot = plot_proc return self end |
#select_result ⇒ Object
コマンドの選択結果を返す
- [Yukiスクリプトとして利用可能]
-
コマンド選択の結果を返す。 まだ結果が得られていない場合はnilを得る プロット処理・コマンド選択が終了していないのに結果を得られるので注意!
- 返却値
-
コマンドの選択結果
1531 1532 1533 |
# File 'lib/Miyako/API/yuki.rb', line 1531 def select_result return @result end |
#select_textbox(box, box_all = nil) ⇒ Object
表示・描画対象のテキストボックスを選択する
第2引数として、テキストボックス全体を渡せる(省略可能) 第1引数が、PartsやSpriteListの1部分のときに、第2引数を渡すことで、 テキストボックス全体を制御可能 第2引数を省略時は、全バージョンに引き続いて、テキストボックス本体のみを制御する
- [Yukiスクリプトとして利用可能]
- box
-
テキストボックス本体
- box_all
-
テキストボックス全体
- 返却値
-
自分自身を返す
549 550 551 552 553 554 555 556 557 |
# File 'lib/Miyako/API/yuki.rb', line 549 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:
1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 |
# File 'lib/Miyako/API/yuki.rb', line 1489 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を返す
1180 1181 1182 |
# File 'lib/Miyako/API/yuki.rb', line 1180 def selecting? return @selecting end |
#setup(*params, &proc) ⇒ Object
シーンのセットアップ時に実行する処理
ブロック引数として、テキストボックスの変更などの処理をブロック内に記述することが出来る。 引数の数とブロック引数の数が違っていれば例外が発生する
- params
-
ブロックに渡す引数リスト(ブロックを渡しているときのみ)
- 返却値
-
自分自身を返す
893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 |
# File 'lib/Miyako/API/yuki.rb', line 893 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
-
パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
- 返却値
-
自分自身を返す
665 666 667 668 669 670 671 672 673 674 675 |
# File 'lib/Miyako/API/yuki.rb', line 665 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スクリプトとして利用可能]
- 返却値
-
レシーバ
618 619 620 621 |
# File 'lib/Miyako/API/yuki.rb', line 618 def show_commandbox @command_box_all.show return self end |
#show_textbox ⇒ Object
テキストボックスを描画可能にする
- [Yukiスクリプトとして利用可能]
- 返却値
-
レシーバ
610 611 612 613 |
# File 'lib/Miyako/API/yuki.rb', line 610 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で変更可能)
- 返却値
-
自分自身を返す
1342 1343 1344 1345 1346 1347 |
# File 'lib/Miyako/API/yuki.rb', line 1342 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
-
パーツ名(シンボル)
- 返却値
-
自分自身を返す
817 818 819 820 |
# File 'lib/Miyako/API/yuki.rb', line 817 def start(name) @parts[name].start return self end |
#start_all ⇒ Object
393 394 395 396 397 398 399 |
# File 'lib/Miyako/API/yuki.rb', line 393 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
-
プロットに引き渡す引数リスト
- 返却値
-
自分自身を返す
942 943 944 945 946 947 948 949 950 |
# File 'lib/Miyako/API/yuki.rb', line 942 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
-
パーツ名(シンボル)
- 返却値
-
自分自身を返す
839 840 841 842 |
# File 'lib/Miyako/API/yuki.rb', line 839 def stop(name) @parts[name].stop return self end |
#stop_all ⇒ Object
401 402 403 404 405 406 407 |
# File 'lib/Miyako/API/yuki.rb', line 401 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
-
表示させるテキスト
- 返却値
-
自分自身を返す
1241 1242 1243 1244 1245 |
# File 'lib/Miyako/API/yuki.rb', line 1241 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
-
表示させるテキスト
- 返却値
-
自分自身を返す
1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 |
# File 'lib/Miyako/API/yuki.rb', line 1254 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
-
表示させるテキスト
- 返却値
-
自分自身を返す
1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 |
# File 'lib/Miyako/API/yuki.rb', line 1278 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のときは文字列ごとに表示される。それ以外を指定したときは例外が発生
- 返却値
-
自分自身を返す
1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 |
# File 'lib/Miyako/API/yuki.rb', line 1217 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を返す
- 返却値
-
テキストボックス
579 580 581 |
# File 'lib/Miyako/API/yuki.rb', line 579 def textbox return @text_box end |
#textbox_all ⇒ Object
テキストボックス全体を取得する
- [Yukiスクリプトとして利用可能]
-
テキストボックスが登録されていないときはnilを返す
- 返却値
-
テキストボックス全体
595 596 597 |
# File 'lib/Miyako/API/yuki.rb', line 595 def textbox_all return @text_box_all end |
#to_plot(&plot) ⇒ Object
プロット用ブロックをYukiへ渡すためのインスタンスを作成する
プロット用に用意したブロック(ブロック引数無し)を、Yukiでの選択結果や移動先として利用できる インスタンスに変換する
- 返却値
-
ブロックをオブジェクトに変換したものを返す
973 974 975 |
# File 'lib/Miyako/API/yuki.rb', line 973 def to_plot(&plot) return plot end |
#under_engine ⇒ Object
324 325 326 |
# File 'lib/Miyako/API/yuki.rb', line 324 def under_engine @under_yuki end |
#under_engine=(engine) ⇒ Object
328 329 330 |
# File 'lib/Miyako/API/yuki.rb', line 328 def under_engine=(engine) @under_yuki = engine end |
#under_line(&block) ⇒ Object
下線付き文字を描画する
- [Yukiスクリプトとして利用可能]
-
ブロック内で指定した文字列を下線付きで表示する
- 返却値
-
自分自身を返す
1373 1374 1375 1376 |
# File 'lib/Miyako/API/yuki.rb', line 1373 def under_line(&block) @text_box.font_under_line{ text block.call } return self end |
#update ⇒ Object
プロット処理を更新する
ポーズ中、コマンド選択中、 Yuki#wait メソッドによるウェイトの状態確認を行う。 プロット処理の実行確認は出来ない
955 956 957 958 959 960 961 962 963 964 965 966 967 |
# File 'lib/Miyako/API/yuki.rb', line 955 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メソッドを呼び出した結果を配列で返す
428 429 430 |
# File 'lib/Miyako/API/yuki.rb', line 428 def update_animation @over_yuki.update_animation if @over_yuki && @over_yuki.executing? end |
#update_plot_input ⇒ Object
プロット処理に使用する入力情報を更新する
ポーズ中、コマンド選択中に使用する入力デバイスの押下状態を更新する (但し、プロット処理の実行中にのみ更新する) Yuki#update メソッドをそのまま使う場合は呼び出す必要がないが、 Yuki#exec_plot メソッドを呼び出す プロット処理の場合は、メインスレッドから明示的に呼び出す必要がある
- 返却値
-
nil を返す
983 984 985 986 987 988 989 990 991 992 993 994 995 |
# File 'lib/Miyako/API/yuki.rb', line 983 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)
- 返却値
-
自分自身を返す
1328 1329 1330 1331 1332 1333 1334 |
# File 'lib/Miyako/API/yuki.rb', line 1328 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
-
パーツ名(シンボル)
- 返却値
-
変数管理ハッシュ
444 445 446 |
# File 'lib/Miyako/API/yuki.rb', line 444 def vars @vars end |
#vars_names ⇒ Object
変数を参照する
- [Yukiスクリプトとして利用可能]
-
変数の管理オブジェクトを、ハッシュとして参照する。 変数名nameを指定して、インスタンスを参照できる。 未登録の変数はnilが変える。 (例)vars = 2 # 変数への代入
vars[:b] = vars[:a] + 5 vars_names => [:a, :b]
- name
-
パーツ名(シンボル)
- 返却値
-
変数管理ハッシュ
460 461 462 |
# File 'lib/Miyako/API/yuki.rb', line 460 def vars_names @vars.keys end |
#visibles_names ⇒ Object
現在描画対象のパーツ名のリストを取得する
- [Yukiスクリプトとして利用可能]
-
現在描画しているパーツ名の配列を参照する。 実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。 Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される (例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。
- 返却値
-
描画対象リスト
498 499 500 |
# File 'lib/Miyako/API/yuki.rb', line 498 def visibles_names @visibles.names end |
#wait(length) ⇒ Object
プロットの処理を待機する
- [Yukiスクリプトとして利用可能]
-
指定の秒数(少数可)、プロットの処理を待機する。 待機中、update_innerメソッドを呼び出し、続けて、処理をYuki#startもしくはYuki#update呼び出し直後に戻す Yuki#updateが呼び出されても待機中の場合は、再び上記の処理を繰り返す
- length
-
待機する長さ。単位は秒。少数可。
- 返却値
-
自分自身を返す
1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 |
# File 'lib/Miyako/API/yuki.rb', line 1542 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(渡されたブロックを評価する)
- 返却値
-
自分自身を返す
1205 1206 1207 1208 1209 |
# File 'lib/Miyako/API/yuki.rb', line 1205 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: 遷移図名(シンボル)
- 返却値
-
自分自身を返す
849 850 851 852 853 854 |
# File 'lib/Miyako/API/yuki.rb', line 849 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の処理が終了するのを待たせるためのメソッド
- 返却値
-
自分自身を返す
878 879 880 881 882 883 884 885 |
# File 'lib/Miyako/API/yuki.rb', line 878 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:
1553 1554 1555 1556 |
# File 'lib/Miyako/API/yuki.rb', line 1553 def waiting #:nodoc: return if @waiting_timer.waiting? @waiting = false end |
#waiting? ⇒ Boolean
Yuki#waitメソッドによる処理待ちの問い合わせメソッド
- [Yukiスクリプトとして利用可能]
- 返却値
-
処理待ちの時はtrueを返す
1187 1188 1189 |
# File 'lib/Miyako/API/yuki.rb', line 1187 def waiting? return @waiting end |