Class: Miyako::InitiativeYuki
- Includes:
- Animation, InitiativeYukiTemplate, SpriteBase
- Defined in:
- lib/Miyako/API/i_yuki.rb
Overview
主導権を持ったYuki本体クラス
Yukiの内容をオブジェクト化したクラス Yukiのプロット処理を外部メソッドで管理可能 プロットは、引数を一つ(Yuki2クラスのインスタンス)を取ったメソッドもしくはブロック として記述する。
Defined Under Namespace
Classes: Canceled, Command, CommandEX
Instance Attribute Summary collapse
-
#base ⇒ Object
readonly
Returns the value of attribute base.
-
#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を返すインスタンスを配列操作で追加・削除できる。.
-
#engine_stack ⇒ Object
readonly
over_execを使用したシナリオエンジンのコールスタック over_execするエンジンを基準に、一番大本のエンジンから順に積み込まれる 自分自身(self)は含まない.
-
#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メソッドを持つブロックが使用可能。.
-
#valign ⇒ Object
readonly
Returns the value of attribute valign.
-
#visibles ⇒ Object
readonly
Returns the value of attribute visibles.
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::InitiativeYuki::Canceled, &chain_block) ⇒ Object
コマンドを表示する [[Yukiスクリプトとして利用可能]] 表示対象のコマンド群をCommand構造体の配列で示す。 キャンセルのときの結果も指定可能(既定ではキャンセル不可状態) body_selectedをnilにした場合は、bodyと同一となる body_selectedを文字列を指定した場合は、文字色が赤色になることに注意 引数無しのブロックを渡せば、コマンド選択開始前に、決定判別・キャンセル判別に必要な前処理を施すことが出来る 選択中、update_innerメソッドを呼び出し、続けて、処理をYuki#startもしくはYuki#update呼び出し直後に戻す Yuki#updateが呼び出されても選択中の場合は、再び上記の処理を繰り返す command_list:: 表示するコマンド群。各要素はCommand構造体の配列 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 返却値:: 自分自身を返す.
-
#create_engine_stack(base) ⇒ Object
エンジンスタックを生成する base:: over_exec呼び出し元のエンジン.
-
#disable_mouse ⇒ Object
マウスでの制御を不可にする ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、 マウスでの利用を制限する Yukiクラスインスタンス生成時はマウス利用可能 返却値:: 自分自身を返す.
-
#dispose ⇒ Object
インスタンスで使用しているオブジェクトを解放する.
-
#enable_mouse ⇒ Object
マウスでの制御を可能にする ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、 それに加えて、マウスでもゲームパッド・キーボードでの制御が行える Yukiクラスインスタンス生成時はマウス利用可能 返却値:: 自分自身を返す.
-
#hide(*names) ⇒ Object
パーツで指定したオブジェクトを隠蔽する [[Yukiスクリプトとして利用可能]] 描画時に、指定したパーツを描画させないよう指定する names:: パーツ名(シンボル)、複数指定可能 返却値:: 自分自身を返す.
-
#hide_commandbox ⇒ Object
コマンドボックスを描画不可能にする [[Yukiスクリプトとして利用可能]] 返却値:: レシーバ.
-
#hide_textbox ⇒ Object
テキストボックスを描画不可能にする [[Yukiスクリプトとして利用可能]] 返却値:: レシーバ.
-
#initialize(*params, &proc) ⇒ InitiativeYuki
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, base = 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スクリプトとして利用可能]] ポーズをかけ、ポーズを解除するときにテキストボックスの内容を消去する 返却値:: 自分自身を返す.
-
#play(name) ⇒ Object
パーツで指定したオブジェクトを再生する [[Yukiスクリプトとして利用可能]] nameで指定したパーツを再生(例:BGM)する。 (但し、パーツで指定したオブジェクトがplayメソッドを持つことが条件) name:: パーツ名(シンボル) 返却値:: 自分自身を返す.
-
#plot_facade(plot_proc = nil, *params, &plot_block) ⇒ Object
:nodoc:.
- #post_process ⇒ Object
-
#pre_hide(*names) ⇒ Object
パーツで指定したオブジェクトを隠蔽する [[Yukiスクリプトとして利用可能]] 描画時に、指定したパーツを描画させないよう指定する names:: パーツ名(シンボル)、複数指定可能 返却値:: 自分自身を返す.
- #pre_process(is_clear = true) ⇒ Object
-
#pre_show(*names) ⇒ Object
パーツで指定したオブジェクトを先頭に表示する [[Yukiスクリプトとして利用可能]] 描画時に、指定したパーツを描画する すでにshowメソッドで表示指定している場合は、先頭に表示させる names:: パーツ名(シンボル)、複数指定可能(指定した順番に描画される) 返却値:: 自分自身を返す.
-
#pre_visibles_names ⇒ Object
現在描画対象のパーツ名のリストを取得する [[Yukiスクリプトとして利用可能]] 現在描画しているパーツ名の配列を参照する。 実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。 Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される (例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。.
- #process(is_clear = true) ⇒ Object
-
#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:: テキストボックス全体.
-
#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(base, 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_animation_all ⇒ Object
-
#update_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, is_clear = true) ⇒ Object
遷移図の処理が終了するまで待つ [[Yukiスクリプトとして利用可能]] nameで指定した遷移図の処理が終了するまで、プロットを停止する name: 遷移図名(シンボル) 返却値:: 自分自身を返す.
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, #visible, #visible=
Methods included from InitiativeYukiTemplate
#clear_inner, #cr_inner, #input_inner, #pausing_inner, #render_inner, #render_to_inner, #selecting_inner, #text_inner, #update_animation_inner, #update_inner, #waiting_inner
Constructor Details
#initialize(*params, &proc) ⇒ InitiativeYuki
Yukiを初期化する
ブロック引数として、テキストボックスの変更などの処理をブロック内に記述することが出来る。 引数の数とブロック引数の数が違っていれば例外が発生する
- params
-
ブロックに渡す引数リスト(ただし、ブロックを渡しているときのみに有効)
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 |
# File 'lib/Miyako/API/i_yuki.rb', line 157 def initialize(*params, &proc) @base = nil @over_yuki = nil @under_yuki = nil @yuki = { } @text_box = nil @command_box = nil @text_box_all = nil @command_box_all = nil @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 @parts = {} @visibles = SpriteList.new @pre_visibles = SpriteList.new @bgs = SpriteList.new @vars = {} @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 @engine_stack = [] 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
#base ⇒ Object (readonly)
Returns the value of attribute base.
98 99 100 |
# File 'lib/Miyako/API/i_yuki.rb', line 98 def base @base end |
#bgs ⇒ Object (readonly)
Returns the value of attribute bgs.
98 99 100 |
# File 'lib/Miyako/API/i_yuki.rb', line 98 def bgs @bgs end |
#cancel_checks ⇒ Object (readonly)
- release_checks
-
ポーズ解除を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
- ok_checks
-
コマンド選択決定を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
- cancel_checks
-
コマンド選択解除(キャンセル)を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
106 107 108 |
# File 'lib/Miyako/API/i_yuki.rb', line 106 def cancel_checks @cancel_checks end |
#engine_stack ⇒ Object (readonly)
over_execを使用したシナリオエンジンのコールスタック over_execするエンジンを基準に、一番大本のエンジンから順に積み込まれる 自分自身(self)は含まない
120 121 122 |
# File 'lib/Miyako/API/i_yuki.rb', line 120 def engine_stack @engine_stack end |
#ok_checks ⇒ Object (readonly)
- release_checks
-
ポーズ解除を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
- ok_checks
-
コマンド選択決定を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
- cancel_checks
-
コマンド選択解除(キャンセル)を問い合わせるブロックの配列。
callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。
106 107 108 |
# File 'lib/Miyako/API/i_yuki.rb', line 106 def ok_checks @ok_checks end |
#on_disable ⇒ Object (readonly)
Returns the value of attribute on_disable.
107 108 109 |
# File 'lib/Miyako/API/i_yuki.rb', line 107 def on_disable @on_disable end |
#post_cancel ⇒ Object (readonly)
Returns the value of attribute post_cancel.
107 108 109 |
# File 'lib/Miyako/API/i_yuki.rb', line 107 def post_cancel @post_cancel end |
#post_command ⇒ Object (readonly)
Returns the value of attribute post_command.
107 108 109 |
# File 'lib/Miyako/API/i_yuki.rb', line 107 def post_command @post_command end |
#post_pause ⇒ Object (readonly)
Returns the value of attribute post_pause.
107 108 109 |
# File 'lib/Miyako/API/i_yuki.rb', line 107 def post_pause @post_pause end |
#pre_cancel ⇒ Object (readonly)
Returns the value of attribute pre_cancel.
107 108 109 |
# File 'lib/Miyako/API/i_yuki.rb', line 107 def pre_cancel @pre_cancel end |
#pre_command ⇒ Object (readonly)
Returns the value of attribute pre_command.
107 108 109 |
# File 'lib/Miyako/API/i_yuki.rb', line 107 def pre_command @pre_command end |
#pre_pause ⇒ Object (readonly)
Returns the value of attribute pre_pause.
107 108 109 |
# File 'lib/Miyako/API/i_yuki.rb', line 107 def pre_pause @pre_pause end |
#pre_visibles ⇒ Object (readonly)
Returns the value of attribute pre_visibles.
98 99 100 |
# File 'lib/Miyako/API/i_yuki.rb', line 98 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を返すインスタンスを配列操作で追加・削除できる。
106 107 108 |
# File 'lib/Miyako/API/i_yuki.rb', line 106 def release_checks @release_checks end |
#selecting_procs ⇒ Object (readonly)
- selecting_procs
-
コマンド選択時に行うブロックの配列。
ブロックは4つの引数を取る必要がある。 (1)コマンド決定ボタンを押した?(true/false) (2)キャンセルボタンを押した?(true/false) (3)キーパッドの移動量を示す配列() (4)マウスの位置を示す配列() callメソッドを持つブロックが使用可能。
115 116 117 |
# File 'lib/Miyako/API/i_yuki.rb', line 115 def selecting_procs @selecting_procs end |
#valign ⇒ Object (readonly)
Returns the value of attribute valign.
99 100 101 |
# File 'lib/Miyako/API/i_yuki.rb', line 99 def valign @valign end |
#visibles ⇒ Object (readonly)
Returns the value of attribute visibles.
98 99 100 |
# File 'lib/Miyako/API/i_yuki.rb', line 98 def visibles @visibles end |
Instance Method Details
#add_method(name, &block) ⇒ Object
Yukiにメソッドを追加する(指定のYukiインスタンスのみ適応)
ブロックを渡すことで、Yukiに新しいメソッドを追加できる。 追加したメソッドは、指定したYukiインスタンスのみ利用可能となる。 コンテキストはYukiクラスのインスタンスとなるため、Yukiスクリプトと同じ感覚でメソッドを追加できる。 ただし、すでに追加したメソッド(もしくはYukiクラスですでに追加されているメソッド)を追加しようとすると例外が発生する
- name
-
ブロックに渡す引数リスト
- block
-
メソッドとして実行させるブロック
145 146 147 148 149 150 |
# File 'lib/Miyako/API/i_yuki.rb', line 145 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
-
パーツ名(シンボル)、複数指定可能
- 返却値
-
自分自身を返す
645 646 647 648 649 650 651 652 |
# File 'lib/Miyako/API/i_yuki.rb', line 645 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
-
パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
- 返却値
-
自分自身を返す
628 629 630 631 632 633 634 635 636 637 638 |
# File 'lib/Miyako/API/i_yuki.rb', line 628 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が指すインスタンスが一番前に描画される。
- 返却値
-
描画対象リスト
421 422 423 |
# File 'lib/Miyako/API/i_yuki.rb', line 421 def bgs_names @bgs.names end |
#bold(&block) ⇒ Object
太文字を描画する
- [Yukiスクリプトとして利用可能]
-
ブロック内で指定した文字列を太文字で表示する (使用すると文字の端が切れてしまう場合あり!)
- 返却値
-
自分自身を返す
1227 1228 1229 1230 |
# File 'lib/Miyako/API/i_yuki.rb', line 1227 def bold(&block) @text_box.font_bold{ text block.call } return self end |
#box_shared? ⇒ Boolean
コマンドボックスとテキストボックスを共用しているか問い合わせる
- [Yukiスクリプトとして利用可能]
-
テキストボックスとコマンドボックスを共用しているときはtrueを返す 共用していなければfalseを返す
- 返却値
-
true/false
543 544 545 |
# File 'lib/Miyako/API/i_yuki.rb', line 543 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
-
プロットの実行部をインスタンス化したオブジェクト
- 返却値
-
プロットの実行結果を返す
914 915 916 917 |
# File 'lib/Miyako/API/i_yuki.rb', line 914 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(デフォルトは[](何もしない))
- 返却値
-
自分自身を返す
1006 1007 1008 1009 1010 1011 1012 1013 |
# File 'lib/Miyako/API/i_yuki.rb', line 1006 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を返す
1055 1056 1057 |
# File 'lib/Miyako/API/i_yuki.rb', line 1055 def canceled? return @result == @cancel end |
#clear ⇒ Object
テキストボックスの内容を消去する
- [Yukiスクリプトとして利用可能]
-
開業後にupdate_clearテンプレートメソッドが1回呼ばれる
- 返却値
-
自分自身を返す
1268 1269 1270 1271 1272 |
# File 'lib/Miyako/API/i_yuki.rb', line 1268 def clear @text_box.clear @base.clear_inner(self) if @base return self end |
#color(color, &block) ⇒ Object
文字色を変更する
- [Yukiスクリプトとして利用可能]
-
ブロック内で指定した文字列を、指定の色で描画する
- color
-
文字色
- 返却値
-
自分自身を返す
1189 1190 1191 1192 |
# File 'lib/Miyako/API/i_yuki.rb', line 1189 def color(color, &block) @text_box.color_during(Color.to_rgb(color)){ text block.call } return self end |
#command(command_list, cancel_to = Miyako::InitiativeYuki::Canceled, &chain_block) ⇒ Object
コマンドを表示する
- [Yukiスクリプトとして利用可能]
-
表示対象のコマンド群をCommand構造体の配列で示す。 キャンセルのときの結果も指定可能(既定ではキャンセル不可状態) body_selectedをnilにした場合は、bodyと同一となる body_selectedを文字列を指定した場合は、文字色が赤色になることに注意 引数無しのブロックを渡せば、コマンド選択開始前に、決定判別・キャンセル判別に必要な前処理を施すことが出来る 選択中、update_innerメソッドを呼び出し、続けて、処理をYuki#startもしくはYuki#update呼び出し直後に戻す Yuki#updateが呼び出されても選択中の場合は、再び上記の処理を繰り返す
- command_list
-
表示するコマンド群。各要素はCommand構造体の配列
- cancel_to
-
キャンセルボタンを押したときの結果。デフォルトはnil(キャンセル無効)
- chain_block
-
コマンドの表示方法。TextBox#create_choices_chainメソッド参照
- 返却値
-
自分自身を返す
1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 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 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 |
# File 'lib/Miyako/API/i_yuki.rb', line 1321 def command(command_list, cancel_to = Miyako::InitiativeYuki::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 reset_selecting while selecting pre_process @base.selecting_inner(self) if @base @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 @selecting_procs.each{|sp| sp.call(@select_ok, @select_cansel, @select_amount, @mouse_amount) } if @select_ok unless @command_box.enable_choice? @on_disable.each{|proc| proc.call} post_process next end @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 post_process end @post_cancel.each{|proc| proc.call} @post_command.each{|proc| proc.call} return self end |
#commandbox ⇒ Object
コマンドボックスを取得する
- [Yukiスクリプトとして利用可能]
-
コマンドボックスが登録されていないときはnilを返す
- 返却値
-
コマンドボックス
486 487 488 |
# File 'lib/Miyako/API/i_yuki.rb', line 486 def commandbox return @command_box end |
#commandbox_all ⇒ Object
コマンドボックス全体を取得する
- [Yukiスクリプトとして利用可能]
-
コマンドボックスが登録されていないときはnilを返す
- 返却値
-
コマンドボックス全体
502 503 504 |
# File 'lib/Miyako/API/i_yuki.rb', line 502 def commandbox_all return @command_box_all end |
#condition(&block) ⇒ Object
ブロックを条件として設定する
- [Yukiスクリプトとして利用可能]
-
メソッドをMethodクラスのインスタンスに変換する
- block
-
シナリオインスタンスに変換したいメソッド名(シンボル)
- 返却値
-
シナリオインスタンスに変換したメソッド
1064 1065 1066 |
# File 'lib/Miyako/API/i_yuki.rb', line 1064 def condition(&block) return block end |
#cr(tm = 1) ⇒ Object
改行を行う
- [Yukiスクリプトとして利用可能]
-
開業後にupdate_crテンプレートメソッドが1回呼ばれる
- tm
-
改行回数。デフォルトは1
- 返却値
-
自分自身を返す
1256 1257 1258 1259 1260 1261 1262 |
# File 'lib/Miyako/API/i_yuki.rb', line 1256 def cr(tm = 1) tm.times{|n| @text_box.cr @base.cr_inner(self) if @base } return self end |
#create_engine_stack(base) ⇒ Object
エンジンスタックを生成する
- base
-
over_exec呼び出し元のエンジン
237 238 239 240 |
# File 'lib/Miyako/API/i_yuki.rb', line 237 def create_engine_stack(base) return unless @engine_stack.empty? @engine_stack.push(*base.engine_stack, base) end |
#disable_mouse ⇒ Object
マウスでの制御を不可にする
ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、 マウスでの利用を制限する Yukiクラスインスタンス生成時はマウス利用可能
- 返却値
-
自分自身を返す
257 258 259 260 |
# File 'lib/Miyako/API/i_yuki.rb', line 257 def disable_mouse @mouse_enable = false return self end |
#dispose ⇒ Object
インスタンスで使用しているオブジェクトを解放する
1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 |
# File 'lib/Miyako/API/i_yuki.rb', line 1461 def dispose @parts.clear @parts = nil @visibles.clear @visibles = nil @vars.clear @vars = nil @is_outer_height = nil end |
#enable_mouse ⇒ Object
マウスでの制御を可能にする
ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、 それに加えて、マウスでもゲームパッド・キーボードでの制御が行える Yukiクラスインスタンス生成時はマウス利用可能
- 返却値
-
自分自身を返す
247 248 249 250 |
# File 'lib/Miyako/API/i_yuki.rb', line 247 def enable_mouse @mouse_enable = true return self end |
#hide(*names) ⇒ Object
パーツで指定したオブジェクトを隠蔽する
- [Yukiスクリプトとして利用可能]
-
描画時に、指定したパーツを描画させないよう指定する
- names
-
パーツ名(シンボル)、複数指定可能
- 返却値
-
自分自身を返す
581 582 583 584 585 586 587 588 |
# File 'lib/Miyako/API/i_yuki.rb', line 581 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スクリプトとして利用可能]
- 返却値
-
レシーバ
533 534 535 536 |
# File 'lib/Miyako/API/i_yuki.rb', line 533 def hide_commandbox @command_box_all.hide return self end |
#hide_textbox ⇒ Object
テキストボックスを描画不可能にする
- [Yukiスクリプトとして利用可能]
- 返却値
-
レシーバ
525 526 527 528 |
# File 'lib/Miyako/API/i_yuki.rb', line 525 def hide_textbox @text_box_all.hide return self end |
#initialize_copy(obj) ⇒ Object
:nodoc:
231 232 233 |
# File 'lib/Miyako/API/i_yuki.rb', line 231 def initialize_copy(obj) #:nodoc: raise MiyakoCopyError.not_copy("Yuki") end |
#is_scenario?(result) ⇒ Boolean
結果がシナリオかどうかを問い合わせる
- [Yukiスクリプトとして利用可能]
-
結果がシナリオ(メソッド)のときはtrueを返す 対象の結果は、選択結果、プロット処理結果ともに有効
- 返却値
-
結果がシナリオかどうか(true/false)
1048 1049 1050 |
# File 'lib/Miyako/API/i_yuki.rb', line 1048 def is_scenario?(result) return (result.kind_of?(Proc) || result.kind_of?(Method)) end |
#is_scene?(result) ⇒ Boolean
結果がシーンかどうかを問い合わせる
- [Yukiスクリプトとして利用可能]
-
結果がシーン(シーンクラス名)のときはtrueを返す 対象の結果は、選択結果、プロット処理結果ともに有効
- 返却値
-
結果がシーンかどうか(true/false)
1039 1040 1041 |
# File 'lib/Miyako/API/i_yuki.rb', line 1039 def is_scene?(result) return (result.class == Class && result.include?(Story::Scene)) end |
#italic(&block) ⇒ Object
斜体文字を描画する
- [Yukiスクリプトとして利用可能]
-
ブロック内で指定した文字列を斜体で表示する (使用すると文字の端が切れてしまう場合あり!)
- 返却値
-
自分自身を返す
1237 1238 1239 1240 |
# File 'lib/Miyako/API/i_yuki.rb', line 1237 def italic(&block) @text_box.font_italic{ text block.call } return self end |
#load_bg(name, filename) ⇒ Object
背景を登録する
- [Yukiスクリプトとして利用可能]
-
画面に表示する背景を登録する すでにshowメソッドで表示指定している場合は、先頭に表示させる
- name
-
スプライト名(重複するときは上書き)
- filename
-
読み込むファイル名
- 返却値
-
自分自身を返す
678 679 680 681 682 683 684 |
# File 'lib/Miyako/API/i_yuki.rb', line 678 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
-
読み込むファイル名
- 返却値
-
自分自身を返す
693 694 695 696 |
# File 'lib/Miyako/API/i_yuki.rb', line 693 def load_bgm(name, filename) @parts[name] = Audio::BGM.new(filename) return self end |
#load_se(name, filename) ⇒ Object
効果音を登録する
- [Yukiスクリプトとして利用可能]
-
音声ファイルを読み込み、効果音として登録する 登録した効果音はpartsメソッドを使って参照できる
- name
-
スプライト名(重複するときは上書き)
- filename
-
読み込むファイル名
- 返却値
-
自分自身を返す
705 706 707 708 |
# File 'lib/Miyako/API/i_yuki.rb', line 705 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
- 返却値
-
自分自身を返す
663 664 665 666 667 668 669 |
# File 'lib/Miyako/API/i_yuki.rb', line 663 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
265 266 267 |
# File 'lib/Miyako/API/i_yuki.rb', line 265 def mouse_enable? @mouse_enable end |
#now_page ⇒ Object
シナリオ上の現在のページを返す
- [Yukiスクリプトとして利用可能]
-
呼び出し当時、シナリオ上、pageメソッドでくくられていない場合は、nilを返す
- 返却値
-
ページ名
1448 1449 1450 |
# File 'lib/Miyako/API/i_yuki.rb', line 1448 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(デフォルトは[](何もしない))
- 返却値
-
自分自身を返す
990 991 992 993 994 995 996 997 |
# File 'lib/Miyako/API/i_yuki.rb', line 990 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
840 841 842 |
# File 'lib/Miyako/API/i_yuki.rb', line 840 def over_engine @over_yuki end |
#over_engine=(engine) ⇒ Object
844 845 846 847 848 849 |
# File 'lib/Miyako/API/i_yuki.rb', line 844 def over_engine=(engine) @over_yuki = engine engine.under_engine = self engine.engine_stack.clear engine.create_engine_stack(self) end |
#over_exec(yuki = nil, base = nil, plot = nil, *params) ⇒ Object
別のYukiエンジンを実行する
- [Yukiスクリプトとして利用可能]
-
もう一つのYukiエンジンを実行させ、並行実行させることができる ウインドウの上にウインドウを表示したりするときに、このメソッドを使う renderメソッドで描画する際は、自分のインスタンスが描画した直後に描画される 自分自身を実行しようとするとMiyakoValueError例外が発生する
- yuki
-
実行対象のYukiインスタンス(事前にsetupの呼び出しが必要)
- plot
-
プロットインスタンス。すでにsetupなどで登録しているときはnilを渡す
- params
-
プロット実行開始時に、プロットに渡す引数
- 返却値
-
自分自身を返す
869 870 871 872 873 874 875 |
# File 'lib/Miyako/API/i_yuki.rb', line 869 def over_exec(yuki = nil, base = 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(base ? base : @over_yuki, plot, *params) yuki.engine_stack.clear if yuki 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の値
1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 |
# File 'lib/Miyako/API/i_yuki.rb', line 1433 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
- 返却値
-
パーツ管理ハッシュ
371 372 373 |
# File 'lib/Miyako/API/i_yuki.rb', line 371 def parts @parts end |
#parts_names ⇒ Object
パーツ名の一覧を参照する
- [Yukiスクリプトとして利用可能]
-
パーツ管理オブジェクトに登録されているパーツ名の一覧を配列として返す。 順番は登録順。 まだ何も登録されていないときは空の配列が返る。 (例)regist_parts :chr1, hoge
regist_parts :chr2, fuga parts_names # => [:chr1, :chr2]
- 返却値
-
パーツ管理ハッシュ
385 386 387 |
# File 'lib/Miyako/API/i_yuki.rb', line 385 def parts_names @parts.keys end |
#pause ⇒ Object
ポーズを行う
- [Yukiスクリプトとして利用可能]
-
ポーズが行われると、ポーズ用のカーソルが表示される 所定のボタンを押すとポーズが解除され、カーソルが消える 解除後は、プロットの続きを処理する 引数無しのブロックを渡せば、ポーズ開始前に行いたい処理を施すことが出来る ポーズ中、update_innerメソッドを呼び出し、続けて、処理をYuki#startもしくはYuki#update呼び出し直後に戻す Yuki#updateが呼び出されてもポーズ中の場合は、再び上記の処理を繰り返す (たとえば、一定時間後に自動的にポーズ解除する場合、そのタイマーを開始させるなど)
- 返却値
-
自分自身を返す
1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 |
# File 'lib/Miyako/API/i_yuki.rb', line 1284 def pause @pre_pause.each{|proc| proc.call} yield if block_given? @text_box.pause pause_release = false until pause_release pre_process @base.pausing_inner(self) if @base pause_release = @release_checks.inject(false){|r, c| r |= c.call } post_process end @text_box.release @post_pause.each{|proc| proc.call} return self end |
#pause_and_clear ⇒ Object
ポーズをかけて、テキストボックスの内容を消去する
- [Yukiスクリプトとして利用可能]
-
ポーズをかけ、ポーズを解除するときにテキストボックスの内容を消去する
- 返却値
-
自分自身を返す
1304 1305 1306 |
# File 'lib/Miyako/API/i_yuki.rb', line 1304 def pause_and_clear return pause.clear end |
#play(name) ⇒ Object
パーツで指定したオブジェクトを再生する
- [Yukiスクリプトとして利用可能]
-
nameで指定したパーツを再生(例:BGM)する。 (但し、パーツで指定したオブジェクトがplayメソッドを持つことが条件)
- name
-
パーツ名(シンボル)
- 返却値
-
自分自身を返す
728 729 730 731 732 |
# File 'lib/Miyako/API/i_yuki.rb', line 728 def play(name) @parts[name].play post_process return self end |
#plot_facade(plot_proc = nil, *params, &plot_block) ⇒ Object
:nodoc:
896 897 898 899 900 901 902 903 |
# File 'lib/Miyako/API/i_yuki.rb', line 896 def plot_facade(plot_proc = nil, *params, &plot_block) #:nodoc: @plot_result = nil 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!") end |
#post_process ⇒ Object
773 774 775 776 777 778 |
# File 'lib/Miyako/API/i_yuki.rb', line 773 def post_process self.render WaitCounter.post_update Animation.update Screen.render end |
#pre_hide(*names) ⇒ Object
パーツで指定したオブジェクトを隠蔽する
- [Yukiスクリプトとして利用可能]
-
描画時に、指定したパーツを描画させないよう指定する
- names
-
パーツ名(シンボル)、複数指定可能
- 返却値
-
自分自身を返す
613 614 615 616 617 618 619 620 |
# File 'lib/Miyako/API/i_yuki.rb', line 613 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_process(is_clear = true) ⇒ Object
763 764 765 766 767 768 769 770 771 |
# File 'lib/Miyako/API/i_yuki.rb', line 763 def pre_process(is_clear = true) Audio.update Input.update WaitCounter.update self.update_input self.update self.update_animation Screen.clear if is_clear end |
#pre_show(*names) ⇒ Object
パーツで指定したオブジェクトを先頭に表示する
- [Yukiスクリプトとして利用可能]
-
描画時に、指定したパーツを描画する すでにshowメソッドで表示指定している場合は、先頭に表示させる
- names
-
パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
- 返却値
-
自分自身を返す
596 597 598 599 600 601 602 603 604 605 606 |
# File 'lib/Miyako/API/i_yuki.rb', line 596 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が指すインスタンスが一番前に描画される。
- 返却値
-
描画対象リスト
409 410 411 |
# File 'lib/Miyako/API/i_yuki.rb', line 409 def pre_visibles_names @pre_visibles.names end |
#process(is_clear = true) ⇒ Object
758 759 760 761 |
# File 'lib/Miyako/API/i_yuki.rb', line 758 def process(is_clear = true) pre_process(is_clear) post_process end |
#regist_parts(name, parts) ⇒ Object
オブジェクトを登録する
- [Yukiスクリプトとして利用可能]
-
オブジェクトをパーツnameとして登録する。 Yuki::partsで参照可能
- name
-
パーツ名(シンボル)
- parts
-
登録対象のインスタンス
- 返却値
-
自分自身を返す
433 434 435 436 |
# File 'lib/Miyako/API/i_yuki.rb', line 433 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(デフォルトは[](何もしない))
- 返却値
-
自分自身を返す
974 975 976 977 978 979 980 981 |
# File 'lib/Miyako/API/i_yuki.rb', line 974 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
-
パーツ名(シンボル)
- 返却値
-
自分自身を返す
553 554 555 556 |
# File 'lib/Miyako/API/i_yuki.rb', line 553 def remove_parts(name) @parts.delete(name) return self end |
#render ⇒ Object
Yuki#showで表示指定した画像を描画する
描画順は、showメソッドで指定した順に描画される(先に指定した画像は後ろに表示される) なお、visibleの値がfalseの時は描画されない。
- 返却値
-
自分自身を返す
281 282 283 284 |
# File 'lib/Miyako/API/i_yuki.rb', line 281 def render return @base.render_inner(self) if @base return self end |
#render_all ⇒ Object
269 270 271 272 273 274 275 |
# File 'lib/Miyako/API/i_yuki.rb', line 269 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の時は描画されない。
- 返却値
-
自分自身を返す
298 299 300 301 |
# File 'lib/Miyako/API/i_yuki.rb', line 298 def render_to(dst) return @base.render_to_inner(self, dst) if @base return self end |
#render_to_all(dst) ⇒ Object
286 287 288 289 290 291 292 |
# File 'lib/Miyako/API/i_yuki.rb', line 286 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
コマンド選択キャンセル問い合わせメソッド配列を初期状態に戻す
- 返却値
-
自分自身を返す
935 936 937 938 |
# File 'lib/Miyako/API/i_yuki.rb', line 935 def reset_cancel_checks @cancel_checks = @cancel_checks_default.dup return self end |
#reset_ok_checks ⇒ Object
コマンド選択決定問い合わせメソッド配列を初期状態に戻す
- 返却値
-
自分自身を返す
928 929 930 931 |
# File 'lib/Miyako/API/i_yuki.rb', line 928 def reset_ok_checks @ok_checks = @ok_checks_default.dup return self end |
#reset_pre_post_cancel ⇒ Object
コマンド選択キャンセル前後処理メソッド配列を初期状態に戻す
pre_cancel/post_cancelの処理を初期状態([])に戻す
- 返却値
-
自分自身を返す
961 962 963 964 965 |
# File 'lib/Miyako/API/i_yuki.rb', line 961 def reset_pre_post_cancel @pre_acncel = [] @post_cancel = [] return self end |
#reset_pre_post_command ⇒ Object
コマンド選択前後処理メソッド配列を初期状態に戻す
pre_command/post_commandの処理を初期状態([])に戻す
- 返却値
-
自分自身を返す
952 953 954 955 956 |
# File 'lib/Miyako/API/i_yuki.rb', line 952 def reset_pre_post_command @pre_command = [] @post_command = [] return self end |
#reset_pre_post_release ⇒ Object
ポーズ前後処理メソッド配列を初期状態に戻す
pre_pause/post_pauseの処理を初期状態([])に戻す
- 返却値
-
自分自身を返す
943 944 945 946 947 |
# File 'lib/Miyako/API/i_yuki.rb', line 943 def reset_pre_post_release @pre_pause = [] @post_pause = [] return self end |
#reset_release_checks ⇒ Object
ポーズ解除問い合わせメソッド配列を初期状態に戻す
- 返却値
-
自分自身を返す
921 922 923 924 |
# File 'lib/Miyako/API/i_yuki.rb', line 921 def reset_release_checks @release_checks = @release_checks_default.dup return self end |
#reset_selecting ⇒ Object
:nodoc:
1387 1388 1389 1390 1391 |
# File 'lib/Miyako/API/i_yuki.rb', line 1387 def reset_selecting #:nodoc: @select_ok = false @select_cancel = false @select_amount = [0, 0] end |
#result ⇒ Object
プロットの処理結果を返す
- [Yukiスクリプトとして利用可能]
-
プロット処理の結果を返す。 まだ結果が得られていない場合はnilを得る プロット処理が終了していないのに結果を得られるので注意!
- 返却値
-
プロットの処理結果
1021 1022 1023 |
# File 'lib/Miyako/API/i_yuki.rb', line 1021 def result return @plot_result end |
#result=(ret = nil) ⇒ Object
プロット処理の結果を設定する
- [Yukiスクリプトとして利用可能]
- ret
-
設定する結果。デフォルトはnil
- 返却値
-
自分自身を返す
1029 1030 1031 1032 |
# File 'lib/Miyako/API/i_yuki.rb', line 1029 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
-
テキストボックス全体
- 返却値
-
自分自身を返す
468 469 470 471 472 |
# File 'lib/Miyako/API/i_yuki.rb', line 468 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
-
最初に実行するページ名
1456 1457 1458 |
# File 'lib/Miyako/API/i_yuki.rb', line 1456 def select_first_page(name) @first_page = name end |
#select_plot(plot_proc) ⇒ Object
実行するプロットと登録する
- plot_proc
-
プロットの実行部をインスタンス化したオブジェクト
- 返却値
-
自分自身を返す
810 811 812 813 |
# File 'lib/Miyako/API/i_yuki.rb', line 810 def select_plot(plot_proc) @exec_plot = plot_proc return self end |
#select_result ⇒ Object
コマンドの選択結果を返す
- [Yukiスクリプトとして利用可能]
-
コマンド選択の結果を返す。 まだ結果が得られていない場合はnilを得る プロット処理・コマンド選択が終了していないのに結果を得られるので注意!
- 返却値
-
コマンドの選択結果
1399 1400 1401 |
# File 'lib/Miyako/API/i_yuki.rb', line 1399 def select_result return @result end |
#select_textbox(box, box_all = nil) ⇒ Object
表示・描画対象のテキストボックスを選択する
第2引数として、テキストボックス全体を渡せる(省略可能) 第1引数が、PartsやSpriteListの1部分のときに、第2引数を渡すことで、 テキストボックス全体を制御可能 第2引数を省略時は、全バージョンに引き続いて、テキストボックス本体のみを制御する
- [Yukiスクリプトとして利用可能]
- box
-
テキストボックス本体
- box_all
-
テキストボックス全体
- 返却値
-
自分自身を返す
448 449 450 451 452 453 454 455 456 |
# File 'lib/Miyako/API/i_yuki.rb', line 448 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 |
#setup(*params, &proc) ⇒ Object
シーンのセットアップ時に実行する処理
ブロック引数として、テキストボックスの変更などの処理をブロック内に記述することが出来る。 引数の数とブロック引数の数が違っていれば例外が発生する
- params
-
ブロックに渡す引数リスト(ブロックを渡しているときのみ)
- 返却値
-
自分自身を返す
786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 |
# File 'lib/Miyako/API/i_yuki.rb', line 786 def setup(*params, &proc) @exec_plot = nil @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
-
パーツ名(シンボル)、複数指定可能(指定した順番に描画される)
- 返却値
-
自分自身を返す
564 565 566 567 568 569 570 571 572 573 574 |
# File 'lib/Miyako/API/i_yuki.rb', line 564 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スクリプトとして利用可能]
- 返却値
-
レシーバ
517 518 519 520 |
# File 'lib/Miyako/API/i_yuki.rb', line 517 def show_commandbox @command_box_all.show return self end |
#show_textbox ⇒ Object
テキストボックスを描画可能にする
- [Yukiスクリプトとして利用可能]
- 返却値
-
レシーバ
509 510 511 512 |
# File 'lib/Miyako/API/i_yuki.rb', line 509 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で変更可能)
- 返却値
-
自分自身を返す
1215 1216 1217 1218 1219 1220 |
# File 'lib/Miyako/API/i_yuki.rb', line 1215 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
-
パーツ名(シンボル)
- 返却値
-
自分自身を返す
716 717 718 719 720 |
# File 'lib/Miyako/API/i_yuki.rb', line 716 def start(name) @parts[name].start post_process return self end |
#start_plot(base, plot_proc = nil, *params, &plot_block) ⇒ Object
プロット処理を実行する(明示的に呼び出す必要がある場合)
引数もしくはブロックで指定したプロット処理を非同期に実行する。 呼び出し可能なプロットは以下の3種類。(上から優先度が高い順) プロットが見つからなければ例外が発生する
1)引数prot_proc(Procクラスのインスタンス)
2)引数として渡したブロック
3)select_plotメソッドで登録したブロック(Procクラスのインスタンス)
- base
-
プロット
- plot_proc
-
プロットの実行部をインスタンス化したオブジェクト。省略時はnil(paramsを指定するときは必ず設定すること)
- params
-
プロットに引き渡す引数リスト
- 返却値
-
自分自身を返す
830 831 832 833 834 835 836 837 838 |
# File 'lib/Miyako/API/i_yuki.rb', line 830 def start_plot(base, 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 @base = base plot_facade(plot_proc, *params, &plot_block) return self end |
#stop(name) ⇒ Object
パーツで指定したオブジェクトの処理を停止する
- [Yukiスクリプトとして利用可能]
-
nameで指定したパーツが持つ処理を停止する。 (但し、パーツで指定したオブジェクトがstopメソッドを持つことが条件)
- name
-
パーツ名(シンボル)
- 返却値
-
自分自身を返す
740 741 742 743 744 |
# File 'lib/Miyako/API/i_yuki.rb', line 740 def stop(name) @parts[name].stop post_process 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
-
表示させるテキスト
- 返却値
-
自分自身を返す
1111 1112 1113 1114 1115 |
# File 'lib/Miyako/API/i_yuki.rb', line 1111 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
-
表示させるテキスト
- 返却値
-
自分自身を返す
1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 |
# File 'lib/Miyako/API/i_yuki.rb', line 1124 def text_by_char(txt) return self if txt.eql?(self) txt.chars{|ch| pre_process 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) @base.text_inner(self, ch) if @base post_process } return self end |
#text_by_str(txt) ⇒ Object
テキストボックスに文字を表示する
- [Yukiスクリプトとして利用可能]
-
文字列が描画されるごとに、update_textメソッドが呼び出され、 続けてYuki#start_plotもしくはYuki#updateメソッド呼び出し直後に戻る 注意として、改行が文字列中にあれば改行、タブやフィードが文字列中にあれば、nilを返す。
- txt
-
表示させるテキスト
- 返却値
-
自分自身を返す
1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 |
# File 'lib/Miyako/API/i_yuki.rb', line 1149 def text_by_str(txt) return self if txt.eql?(self) use_cr = false until txt.empty? do pre_process 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) post_process next nil else tmp = txt txt = "" end @text_box.draw_text(tmp) self.cr if use_cr @base.text_inner(self, tmp) if @base use_cr = false post_process end return self end |
#text_method(mode) ⇒ Object
テキストボックスに文字を表示する方法を指定する
引数に、:charを渡すと1文字ごと、:stringを渡すと文字列ごとに表示される。それ以外を指定したときは例外が発生 ブロックを渡せば、ブロックの評価中のみ設定が有効になる。 ブロック評価終了後、呼び出し前の設定に戻る
- mode
-
テキストの表示方法。:charのときは文字ごと、:stringのときは文字列ごとに表示される。それ以外を指定したときは例外が発生
- 返却値
-
自分自身を返す
1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 |
# File 'lib/Miyako/API/i_yuki.rb', line 1087 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を返す
- 返却値
-
テキストボックス
478 479 480 |
# File 'lib/Miyako/API/i_yuki.rb', line 478 def textbox return @text_box end |
#textbox_all ⇒ Object
テキストボックス全体を取得する
- [Yukiスクリプトとして利用可能]
-
テキストボックスが登録されていないときはnilを返す
- 返却値
-
テキストボックス全体
494 495 496 |
# File 'lib/Miyako/API/i_yuki.rb', line 494 def textbox_all return @text_box_all end |
#to_plot(&plot) ⇒ Object
プロット用ブロックをYukiへ渡すためのインスタンスを作成する
プロット用に用意したブロック(ブロック引数無し)を、Yukiでの選択結果や移動先として利用できる インスタンスに変換する
- 返却値
-
ブロックをオブジェクトに変換したものを返す
881 882 883 |
# File 'lib/Miyako/API/i_yuki.rb', line 881 def to_plot(&plot) return plot end |
#under_engine ⇒ Object
851 852 853 |
# File 'lib/Miyako/API/i_yuki.rb', line 851 def under_engine @under_yuki end |
#under_engine=(engine) ⇒ Object
855 856 857 |
# File 'lib/Miyako/API/i_yuki.rb', line 855 def under_engine=(engine) @under_yuki = engine end |
#under_line(&block) ⇒ Object
下線付き文字を描画する
- [Yukiスクリプトとして利用可能]
-
ブロック内で指定した文字列を下線付きで表示する
- 返却値
-
自分自身を返す
1246 1247 1248 1249 |
# File 'lib/Miyako/API/i_yuki.rb', line 1246 def under_line(&block) @text_box.font_under_line{ text block.call } return self end |
#update ⇒ Object
プロット処理を更新する
ポーズ中、コマンド選択中、 Yuki#wait メソッドによるウェイトの状態確認を行う。 プロット処理の実行確認は出来ない
306 307 308 309 310 311 312 313 |
# File 'lib/Miyako/API/i_yuki.rb', line 306 def update @base.update_inner(self) if @base @pause_release = false @select_ok = false @select_cancel = false @select_amount = [0, 0] return nil end |
#update_animation ⇒ Object
Yuki#showで表示指定した画像のアニメーションを更新する
showメソッドで指定した画像のupdate_animationメソッドを呼び出す
- 返却値
-
描く画像のupdate_spriteメソッドを呼び出した結果を配列で返す
326 327 328 329 |
# File 'lib/Miyako/API/i_yuki.rb', line 326 def update_animation return @base.update_animation_inner(self) if @base return false end |
#update_animation_all ⇒ Object
315 316 317 318 319 320 321 |
# File 'lib/Miyako/API/i_yuki.rb', line 315 def update_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 |
#update_input ⇒ Object
プロット処理に使用する入力情報を更新する
ポーズ中、コマンド選択中に使用する入力デバイスの押下状態を更新する (但し、プロット処理の実行中にのみ更新する) Yuki#update メソッドをそのまま使う場合は呼び出す必要がないが、 Yuki#exec_plot メソッドを呼び出す プロット処理の場合は、メインスレッドから明示的に呼び出す必要がある
- 返却値
-
nil を返す
891 892 893 894 |
# File 'lib/Miyako/API/i_yuki.rb', line 891 def update_input @base.input_inner(self) if @base return nil end |
#valign_during(valign) ⇒ Object
ブロック評価中、行中の表示位置を変更する
- [Yukiスクリプトとして利用可能]
-
ブロックを評価している間だけ、デフォルトの縦の表示位置を変更する 変更できる値は、:top、:middle、:bottomの3種類。 ブロックを渡していないときはエラーを返す
- valign
-
文字の縦の位置(top, middle, bottom)
- 返却値
-
自分自身を返す
1201 1202 1203 1204 1205 1206 1207 |
# File 'lib/Miyako/API/i_yuki.rb', line 1201 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
-
パーツ名(シンボル)
- 返却値
-
変数管理ハッシュ
343 344 345 |
# File 'lib/Miyako/API/i_yuki.rb', line 343 def vars @vars end |
#vars_names ⇒ Object
変数を参照する
- [Yukiスクリプトとして利用可能]
-
変数の管理オブジェクトを、ハッシュとして参照する。 変数名nameを指定して、インスタンスを参照できる。 未登録の変数はnilが変える。 (例)vars = 2 # 変数への代入
vars[:b] = vars[:a] + 5 vars_names => [:a, :b]
- name
-
パーツ名(シンボル)
- 返却値
-
変数管理ハッシュ
359 360 361 |
# File 'lib/Miyako/API/i_yuki.rb', line 359 def vars_names @vars.keys end |
#visibles_names ⇒ Object
現在描画対象のパーツ名のリストを取得する
- [Yukiスクリプトとして利用可能]
-
現在描画しているパーツ名の配列を参照する。 実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。 Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される (例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。
- 返却値
-
描画対象リスト
397 398 399 |
# File 'lib/Miyako/API/i_yuki.rb', line 397 def visibles_names @visibles.names end |
#wait(length) ⇒ Object
プロットの処理を待機する
- [Yukiスクリプトとして利用可能]
-
指定の秒数(少数可)、プロットの処理を待機する。 待機中、update_innerメソッドを呼び出し、続けて、処理をYuki#startもしくはYuki#update呼び出し直後に戻す Yuki#updateが呼び出されても待機中の場合は、再び上記の処理を繰り返す
- length
-
待機する長さ。単位は秒。少数可。
- 返却値
-
自分自身を返す
1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 |
# File 'lib/Miyako/API/i_yuki.rb', line 1410 def wait(length) @waiting_timer = WaitCounter.new(length) @waiting_timer.start waiting = true while waiting pre_process @base.waiting_inner(self) if @base waiting = @waiting_timer.waiting? post_process end return self end |
#wait_by_cond(cond = nil) ⇒ Object
条件に合っていればポーズをかける
- [Yukiスクリプトとして利用可能]
-
引数で設定した条件(Proc,メソッドインスタンス,ブロック)を評価した結果、trueのときはポーズを行い、 condの値がnilで、ブロックが渡されていないときは何もしない falseのときは改行してプロットの処理を継続する
- cond
-
条件を示すオブジェクト(返却値はtrue/false)。デフォルトはnil(渡されたブロックを評価する)
- 返却値
-
自分自身を返す
1075 1076 1077 1078 1079 |
# File 'lib/Miyako/API/i_yuki.rb', line 1075 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, is_clear = true) ⇒ Object
遷移図の処理が終了するまで待つ
- [Yukiスクリプトとして利用可能]
-
nameで指定した遷移図の処理が終了するまで、プロットを停止する name: 遷移図名(シンボル)
- 返却値
-
自分自身を返す
751 752 753 754 755 756 |
# File 'lib/Miyako/API/i_yuki.rb', line 751 def wait_by_finish(name, is_clear = true) until @parts[name].finish? process(is_clear) end return self end |