Class: Miyako::InitiativeYuki

Inherits:
Object
  • Object
show all
Includes:
Animation, InitiativeYukiTemplate, SpriteBase
Defined in:
lib/Miyako/API/i_yuki.rb

Overview

主導権を持ったYuki本体クラス

Yukiの内容をオブジェクト化したクラス Yukiのプロット処理を外部メソッドで管理可能 プロットは、引数を一つ(Yuki2クラスのインスタンス)を取ったメソッドもしくはブロック として記述する。

Defined Under Namespace

Classes: Canceled, Command, CommandEX, CommandEx

Constant Summary collapse

ALL_TRUE =
lambda{ true }
@@common_use =

外部との共用変数を収めるところ

{}

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

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, #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

ブロックに渡す引数リスト(ただし、ブロックを渡しているときのみに有効)

Raises:


249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
# File 'lib/Miyako/API/i_yuki.rb', line 249

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

  @select_mouse_enable = true
  @select_key_enable = false

  @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),
                   :char_rapid => self.method(:text_by_char_rapid),
                   :string => self.method(:text_by_str),
                   :string_rapid => self.method(:text_by_str_rapid) }
  @text_method_name = :char

  @valign = :middle

  @release_checks_default = [lambda{ Input.pushed_any?(:btn1, :spc) }, lambda{ @mouse_enable && Input.click?(:left) } ]
  @release_checks = @release_checks_default.dup

  @ok_checks_default = [lambda{ Input.pushed_any?(:btn1, :spc) },
                        lambda{ @mouse_enable && self.commandbox.attach_any_command?(*Input.get_mouse_position) && Input.click?(:left) } ]
  @ok_checks = @ok_checks_default.dup

  @cancel_checks_default = [lambda{ Input.pushed_any?(:btn2, :esc) },
                            lambda{ @mouse_enable && Input.click?(:right) } ]
  @cancel_checks = @cancel_checks_default.dup

  @key_amount_proc   = lambda{ Input.pushed_amount }
  @mouse_amount_proc = lambda{ Input.mouse_cursor_inner? ? Input.get_mouse_position : nil }

  @pre_pause    = []
  @pre_command  = []
  @pre_cancel   = []
  @post_pause   = []
  @post_command = []
  @post_cancel  = []
  @on_disable   = []
  @selecting_procs = []

  @is_outer_height = self.method(:is_outer_height)

  @now_page = nil
  @first_page = nil

  @engine_stack = []

  @common_use = {}

  raise MiyakoProcError, "Argument count is not same block parameter count!" if proc && proc.arity.abs != params.length
  instance_exec(*params, &proc) if block_given?
end

Instance Attribute Details

#baseObject (readonly)

Returns the value of attribute base


187
188
189
# File 'lib/Miyako/API/i_yuki.rb', line 187

def base
  @base
end

#bgsObject (readonly)

Returns the value of attribute bgs


187
188
189
# File 'lib/Miyako/API/i_yuki.rb', line 187

def bgs
  @bgs
end

#cancel_checksObject (readonly)

release_checks

ポーズ解除を問い合わせるブロックの配列。

callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。

ok_checks

コマンド選択決定を問い合わせるブロックの配列。

callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。

cancel_checks

コマンド選択解除(キャンセル)を問い合わせるブロックの配列。

callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。


195
196
197
# File 'lib/Miyako/API/i_yuki.rb', line 195

def cancel_checks
  @cancel_checks
end

#common_useObject (readonly)

Returns the value of attribute common_use


186
187
188
# File 'lib/Miyako/API/i_yuki.rb', line 186

def common_use
  @common_use
end

#engine_stackObject (readonly)

over_execを使用したシナリオエンジンのコールスタック over_execするエンジンを基準に、一番大本のエンジンから順に積み込まれる 自分自身(self)は含まない


212
213
214
# File 'lib/Miyako/API/i_yuki.rb', line 212

def engine_stack
  @engine_stack
end

#ok_checksObject (readonly)

release_checks

ポーズ解除を問い合わせるブロックの配列。

callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。

ok_checks

コマンド選択決定を問い合わせるブロックの配列。

callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。

cancel_checks

コマンド選択解除(キャンセル)を問い合わせるブロックの配列。

callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。


195
196
197
# File 'lib/Miyako/API/i_yuki.rb', line 195

def ok_checks
  @ok_checks
end

#on_disableObject (readonly)

Returns the value of attribute on_disable


196
197
198
# File 'lib/Miyako/API/i_yuki.rb', line 196

def on_disable
  @on_disable
end

#post_cancelObject (readonly)

Returns the value of attribute post_cancel


196
197
198
# File 'lib/Miyako/API/i_yuki.rb', line 196

def post_cancel
  @post_cancel
end

#post_commandObject (readonly)

Returns the value of attribute post_command


196
197
198
# File 'lib/Miyako/API/i_yuki.rb', line 196

def post_command
  @post_command
end

#post_pauseObject (readonly)

Returns the value of attribute post_pause


196
197
198
# File 'lib/Miyako/API/i_yuki.rb', line 196

def post_pause
  @post_pause
end

#pre_cancelObject (readonly)

Returns the value of attribute pre_cancel


196
197
198
# File 'lib/Miyako/API/i_yuki.rb', line 196

def pre_cancel
  @pre_cancel
end

#pre_commandObject (readonly)

Returns the value of attribute pre_command


196
197
198
# File 'lib/Miyako/API/i_yuki.rb', line 196

def pre_command
  @pre_command
end

#pre_pauseObject (readonly)

Returns the value of attribute pre_pause


196
197
198
# File 'lib/Miyako/API/i_yuki.rb', line 196

def pre_pause
  @pre_pause
end

#pre_visiblesObject (readonly)

Returns the value of attribute pre_visibles


187
188
189
# File 'lib/Miyako/API/i_yuki.rb', line 187

def pre_visibles
  @pre_visibles
end

#release_checksObject (readonly)

release_checks

ポーズ解除を問い合わせるブロックの配列。

callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。

ok_checks

コマンド選択決定を問い合わせるブロックの配列。

callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。

cancel_checks

コマンド選択解除(キャンセル)を問い合わせるブロックの配列。

callメソッドを持ち、true/falseを返すインスタンスを配列操作で追加・削除できる。


195
196
197
# File 'lib/Miyako/API/i_yuki.rb', line 195

def release_checks
  @release_checks
end

#selecting_procsObject (readonly)

selecting_procs

コマンド選択時に行うブロックの配列。

ブロックは4つの引数を取る必要がある。 (1)コマンド決定ボタンを押した?(true/false) (2)キャンセルボタンを押した?(true/false) (3)キーパッドの移動量を示す配列() (4)マウスの位置を示す配列() <<(2.1.15-追加、省略可能)>> (5)現在指しているコマンドは選択可能?(true/false) (6)現在指しているコマンドの結果 callメソッドを持つブロックが使用可能。


207
208
209
# File 'lib/Miyako/API/i_yuki.rb', line 207

def selecting_procs
  @selecting_procs
end

#valignObject (readonly)

Returns the value of attribute valign


188
189
190
# File 'lib/Miyako/API/i_yuki.rb', line 188

def valign
  @valign
end

#visiblesObject (readonly)

Returns the value of attribute visibles


187
188
189
# File 'lib/Miyako/API/i_yuki.rb', line 187

def visibles
  @visibles
end

Class Method Details

.[](key) ⇒ Object


177
178
179
# File 'lib/Miyako/API/i_yuki.rb', line 177

def InitiativeYuki.[](key)
  @@common_use[key]
end

.[]=(key, value) ⇒ Object


181
182
183
184
# File 'lib/Miyako/API/i_yuki.rb', line 181

def InitiativeYuki.[]=(key, value)
  @@common_use[key] = value
  value
end

.add_method(name, &block) ⇒ Object

Yukiにメソッドを追加する(すべてのYukiインスタンスに適応)

ブロックを渡すことで、Yukiに新しいメソッドを追加できる。 追加したメソッドは、すべてのYukiインスタンスで利用可能となる。 コンテキストはYukiクラスのインスタンスとなるため、Yukiスクリプトと同じ感覚でメソッドを追加できる。 ただし、すでに追加したメソッド(もしくはYukiクラスですでに追加されているメソッド)を追加しようとすると例外が発生する

name

ブロックに渡す引数リスト

block

メソッドとして実行させるブロック

Raises:


222
223
224
225
226
227
# File 'lib/Miyako/API/i_yuki.rb', line 222

def InitiativeYuki.add_method(name, &block)
  name = name.to_sym
  raise MiyakoError, "Already added method! : #{name.to_s}" if self.methods.include?(name)
  define_method(name, block)
  return nil
end

Instance Method Details

#[](key) ⇒ Object


462
463
464
# File 'lib/Miyako/API/i_yuki.rb', line 462

def [](key)
  @common_use[key] || @@common_use[key]
end

#[]=(key, value) ⇒ Object


466
467
468
469
# File 'lib/Miyako/API/i_yuki.rb', line 466

def []=(key, value)
  @common_use[key] = value
  value
end

#add_method(name, &block) ⇒ Object

Yukiにメソッドを追加する(指定のYukiインスタンスのみ適応)

ブロックを渡すことで、Yukiに新しいメソッドを追加できる。 追加したメソッドは、指定したYukiインスタンスのみ利用可能となる。 コンテキストはYukiクラスのインスタンスとなるため、Yukiスクリプトと同じ感覚でメソッドを追加できる。 ただし、すでに追加したメソッド(もしくはYukiクラスですでに追加されているメソッド)を追加しようとすると例外が発生する

name

ブロックに渡す引数リスト

block

メソッドとして実行させるブロック

Raises:


237
238
239
240
241
242
# File 'lib/Miyako/API/i_yuki.rb', line 237

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_allObject


400
401
402
403
404
405
406
# File 'lib/Miyako/API/i_yuki.rb', line 400

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

パーツ名(シンボル)、複数指定可能

返却値

自分自身を返す


785
786
787
788
789
790
791
792
# File 'lib/Miyako/API/i_yuki.rb', line 785

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

パーツ名(シンボル)、複数指定可能(指定した順番に描画される)

返却値

自分自身を返す


768
769
770
771
772
773
774
775
776
777
778
# File 'lib/Miyako/API/i_yuki.rb', line 768

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_namesObject

現在描画対象のパーツ名のリストを取得する

[Yukiスクリプトとして利用可能]

現在描画しているパーツ名の配列を参照する。 実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。 Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される (例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。

返却値

描画対象リスト


561
562
563
# File 'lib/Miyako/API/i_yuki.rb', line 561

def bgs_names
  @bgs.names
end

#bold(&block) ⇒ Object

太文字を描画する

[Yukiスクリプトとして利用可能]

ブロック内で指定した文字列を太文字で表示する (使用すると文字の端が切れてしまう場合あり!)

返却値

自分自身を返す


1454
1455
1456
1457
# File 'lib/Miyako/API/i_yuki.rb', line 1454

def bold(&block)
  @text_box.font_bold{ text block.call }
  return self
end

#box_shared?Boolean

コマンドボックスとテキストボックスを共用しているか問い合わせる

[Yukiスクリプトとして利用可能]

テキストボックスとコマンドボックスを共用しているときはtrueを返す 共用していなければfalseを返す

返却値

true/false

Returns:

  • (Boolean)

683
684
685
# File 'lib/Miyako/API/i_yuki.rb', line 683

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

プロットの実行部をインスタンス化したオブジェクト

返却値

プロットの実行結果を返す


1054
1055
1056
1057
# File 'lib/Miyako/API/i_yuki.rb', line 1054

def call_plot(plot_proc = nil, &plot_block)
  return plot_proc ? self.instance_exec(&plot_proc) :
                     self.instance_exec(&plot_block)
end

#call_plot_block(*params, &plot_block) ⇒ Object

プロット処理中に別のプロットを呼び出す

呼び出し可能なプロットは以下の2種類。(上から優先度が高い順)

1)引数prot_proc(Procクラスのインスタンス)

2)引数として渡したブロック

plot_proc

プロットの実行部をインスタンス化したオブジェクト

返却値

プロットの実行結果を返す


1081
1082
1083
# File 'lib/Miyako/API/i_yuki.rb', line 1081

def call_plot_block(*params, &plot_block)
  return self.instance_exec(*params, &plot_block)
end

#call_plot_params(plot_proc, *params) ⇒ Object

プロット処理中に別のプロットを呼び出す

呼び出し可能なプロットは以下の2種類。(上から優先度が高い順)

1)引数prot_proc(Procクラスのインスタンス)

2)引数として渡したブロック

plot_proc

プロットの実行部をインスタンス化したオブジェクト

返却値

プロットの実行結果を返す


1068
1069
1070
# File 'lib/Miyako/API/i_yuki.rb', line 1068

def call_plot_params(plot_proc, *params)
  return self.instance_exec(*params, &plot_proc)
end

#cancel_checks_during(procs, pre_procs = [], post_procs = []) ⇒ Object

ブロック評価中、コマンド選択キャンセル問い合わせメソッド配列を置き換える

同時に、コマンド選択開始時処理(Yuki#pre_cancel)、コマンド選択終了時処理(Yuki#post_cancel)を引数で設定できる。 ブロックの評価が終われば、メソッド配列・コマンド選択開始時処理・コマンド選択終了時処理を元に戻す

procs

置き換えるメソッド配列(callメソッドを持ち、true/falseを返すメソッドの配列)

pre_proc

コマンド選択開始時に実行させるProc(デフォルトは[](何もしない))

post_proc

コマンド選択キャンセル時に実行させるProc(デフォルトは[](何もしない))

返却値

自分自身を返す

Raises:


1172
1173
1174
1175
1176
1177
1178
1179
# File 'lib/Miyako/API/i_yuki.rb', line 1172

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を返す

Returns:

  • (Boolean)

1221
1222
1223
# File 'lib/Miyako/API/i_yuki.rb', line 1221

def canceled?
  return @result == @cancel
end

#clearObject

テキストボックスの内容を消去する

[Yukiスクリプトとして利用可能]

開業後にupdate_clearテンプレートメソッドが1回呼ばれる

返却値

自分自身を返す


1495
1496
1497
1498
1499
# File 'lib/Miyako/API/i_yuki.rb', line 1495

def clear
  @text_box.clear
  @base.clear_inner(self) if @base
  return self
end

#color(color, &block) ⇒ Object

文字色を変更する

[Yukiスクリプトとして利用可能]

ブロック内で指定した文字列を、指定の色で描画する

color

文字色

返却値

自分自身を返す


1416
1417
1418
1419
# File 'lib/Miyako/API/i_yuki.rb', line 1416

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構造体/CommandEx構造体/Choicesクラスオブジェクトの配列

cancel_to

キャンセルボタンを押したときの結果。デフォルトはnil(キャンセル無効)

chain_block

コマンドの表示方法。TextBox#create_choices_chainメソッド参照

返却値

自分自身を返す

Raises:


1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
# File 'lib/Miyako/API/i_yuki.rb', line 1556

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

  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
  @select_mouse_enable = true
  @select_key_enable = false
  selecting = true
  reset_selecting
  while selecting
    pre_process
    @select_amount = @key_amount_proc.call
    @mouse_amount = @mouse_amount_proc.call
    if @select_amount != [0,0]
      @select_mouse_enable = false
      @select_key_enable = true
    elsif Input.mouse_dx != 0 and Input.mouse_dy != 0
      @select_mouse_enable = true
      @select_key_enable = false
    else
      @select_mouse_enable = false
      @select_key_enable = false
    end
    @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 }
    @selecting_procs.each{|sp|
      case sp.arity
      when 6
        sp.call(@select_ok, @select_cansel,
          @select_amount, @mouse_amount,
          @command_box.enable_choice?, @command_box.result
        )
      else
        sp.call(@select_ok, @select_cansel,
          @select_amount, @mouse_amount
        )
      end
    }
    if @select_ok
      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] and @select_key_enable
      @command_box.move_cursor(*@select_amount)
      reset_selecting
    elsif @mouse_amount and @select_mouse_enable
      @command_box.attach_cursor(*@mouse_amount.to_a) if @mouse_enable
      reset_selecting
    elsif Input.mouse_cursor_inner?
      @command_box.attach_cursor(Input.mouse_x, Input.mouse_y) if @mouse_enable
    end
    @base.selecting_inner(self) if @base
    post_process
  end
  @post_cancel.each{|proc| proc.call}
  @post_command.each{|proc| proc.call}
  return self
end

#commandboxObject

コマンドボックスを取得する

[Yukiスクリプトとして利用可能]

コマンドボックスが登録されていないときはnilを返す

返却値

コマンドボックス


626
627
628
# File 'lib/Miyako/API/i_yuki.rb', line 626

def commandbox
  return @command_box
end

#commandbox_allObject

コマンドボックス全体を取得する

[Yukiスクリプトとして利用可能]

コマンドボックスが登録されていないときはnilを返す

返却値

コマンドボックス全体


642
643
644
# File 'lib/Miyako/API/i_yuki.rb', line 642

def commandbox_all
  return @command_box_all
end

#condition(&block) ⇒ Object

ブロックを条件として設定する

[Yukiスクリプトとして利用可能]

メソッドをMethodクラスのインスタンスに変換する

block

シナリオインスタンスに変換したいメソッド名(シンボル)

返却値

シナリオインスタンスに変換したメソッド


1230
1231
1232
# File 'lib/Miyako/API/i_yuki.rb', line 1230

def condition(&block)
  return block
end

#cr(tm = 1) ⇒ Object

改行を行う

[Yukiスクリプトとして利用可能]

開業後にupdate_crテンプレートメソッドが1回呼ばれる

tm

改行回数。デフォルトは1

返却値

自分自身を返す


1483
1484
1485
1486
1487
1488
1489
# File 'lib/Miyako/API/i_yuki.rb', line 1483

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呼び出し元のエンジン


336
337
338
339
# File 'lib/Miyako/API/i_yuki.rb', line 336

def create_engine_stack(base)
  return unless @engine_stack.empty?
  @engine_stack.push(*base.engine_stack, base)
end

#disable_mouseObject

マウスでの制御を不可にする

ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、 マウスでの利用を制限する Yukiクラスインスタンス生成時はマウス利用可能

返却値

自分自身を返す


356
357
358
359
# File 'lib/Miyako/API/i_yuki.rb', line 356

def disable_mouse
  @mouse_enable = false
  return self
end

#disposeObject

インスタンスで使用しているオブジェクトを解放する


1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
# File 'lib/Miyako/API/i_yuki.rb', line 1727

def dispose
  @parts.clear
  @parts = nil
  @visibles.clear
  @visibles = nil
  @vars.clear
  @vars = nil

  @is_outer_height = nil
end

#enable_mouseObject

マウスでの制御を可能にする

ゲームパッド・キーボードでのコマンド・ポーズ制御を行えるが、 それに加えて、マウスでもゲームパッド・キーボードでの制御が行える Yukiクラスインスタンス生成時はマウス利用可能

返却値

自分自身を返す


346
347
348
349
# File 'lib/Miyako/API/i_yuki.rb', line 346

def enable_mouse
  @mouse_enable = true
  return self
end

#hide(*names) ⇒ Object

パーツで指定したオブジェクトを隠蔽する

[Yukiスクリプトとして利用可能]

描画時に、指定したパーツを描画させないよう指定する

names

パーツ名(シンボル)、複数指定可能

返却値

自分自身を返す


721
722
723
724
725
726
727
728
# File 'lib/Miyako/API/i_yuki.rb', line 721

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_commandboxObject

コマンドボックスを描画不可能にする

[Yukiスクリプトとして利用可能]
返却値

レシーバ


673
674
675
676
# File 'lib/Miyako/API/i_yuki.rb', line 673

def hide_commandbox
  @command_box_all.hide
  return self
end

#hide_textboxObject

テキストボックスを描画不可能にする

[Yukiスクリプトとして利用可能]
返却値

レシーバ


665
666
667
668
# File 'lib/Miyako/API/i_yuki.rb', line 665

def hide_textbox
  @text_box_all.hide
  return self
end

#initialize_copy(obj) ⇒ Object

:nodoc:


330
331
332
# File 'lib/Miyako/API/i_yuki.rb', line 330

def initialize_copy(obj) #:nodoc:
  raise MiyakoCopyError.not_copy("Yuki")
end

#is_scenario?(result) ⇒ Boolean

結果がシナリオかどうかを問い合わせる

[Yukiスクリプトとして利用可能]

結果がシナリオ(メソッド)のときはtrueを返す 対象の結果は、選択結果、プロット処理結果ともに有効

返却値

結果がシナリオかどうか(true/false)

Returns:

  • (Boolean)

1214
1215
1216
# File 'lib/Miyako/API/i_yuki.rb', line 1214

def is_scenario?(result)
  return (result.kind_of?(Proc) || result.kind_of?(Method))
end

#is_scene?(result) ⇒ Boolean

結果がシーンかどうかを問い合わせる

[Yukiスクリプトとして利用可能]

結果がシーン(シーンクラス名)のときはtrueを返す 対象の結果は、選択結果、プロット処理結果ともに有効

返却値

結果がシーンかどうか(true/false)

Returns:

  • (Boolean)

1205
1206
1207
# File 'lib/Miyako/API/i_yuki.rb', line 1205

def is_scene?(result)
  return (result.class == Class && result.include?(Story::Scene))
end

#italic(&block) ⇒ Object

斜体文字を描画する

[Yukiスクリプトとして利用可能]

ブロック内で指定した文字列を斜体で表示する (使用すると文字の端が切れてしまう場合あり!)

返却値

自分自身を返す


1464
1465
1466
1467
# File 'lib/Miyako/API/i_yuki.rb', line 1464

def italic(&block)
  @text_box.font_italic{ text block.call }
  return self
end

#load_bg(name, filename) ⇒ Object

背景を登録する

[Yukiスクリプトとして利用可能]

画面に表示する背景を登録する すでにshowメソッドで表示指定している場合は、先頭に表示させる

name

スプライト名(重複するときは上書き)

filename

読み込むファイル名

返却値

自分自身を返す


818
819
820
821
822
823
824
# File 'lib/Miyako/API/i_yuki.rb', line 818

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

読み込むファイル名

返却値

自分自身を返す


833
834
835
836
# File 'lib/Miyako/API/i_yuki.rb', line 833

def load_bgm(name, filename)
  @parts[name] = Audio::BGM.new(filename)
  return self
end

#load_se(name, filename) ⇒ Object

効果音を登録する

[Yukiスクリプトとして利用可能]

音声ファイルを読み込み、効果音として登録する 登録した効果音はpartsメソッドを使って参照できる

name

スプライト名(重複するときは上書き)

filename

読み込むファイル名

返却値

自分自身を返す


845
846
847
848
# File 'lib/Miyako/API/i_yuki.rb', line 845

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
返却値

自分自身を返す


803
804
805
806
807
808
809
# File 'lib/Miyako/API/i_yuki.rb', line 803

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

Returns:

  • (Boolean)

364
365
366
# File 'lib/Miyako/API/i_yuki.rb', line 364

def mouse_enable?
  @mouse_enable
end

#now_pageObject

シナリオ上の現在のページを返す

[Yukiスクリプトとして利用可能]

呼び出し当時、シナリオ上、pageメソッドでくくられていない場合は、nilを返す

返却値

ページ名


1714
1715
1716
# File 'lib/Miyako/API/i_yuki.rb', line 1714

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(デフォルトは[](何もしない))

返却値

自分自身を返す

Raises:


1156
1157
1158
1159
1160
1161
1162
1163
# File 'lib/Miyako/API/i_yuki.rb', line 1156

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_engineObject


980
981
982
# File 'lib/Miyako/API/i_yuki.rb', line 980

def over_engine
  @over_yuki
end

#over_engine=(engine) ⇒ Object


984
985
986
987
988
989
# File 'lib/Miyako/API/i_yuki.rb', line 984

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

プロット実行開始時に、プロットに渡す引数

返却値

自分自身を返す

Raises:


1009
1010
1011
1012
1013
1014
1015
# File 'lib/Miyako/API/i_yuki.rb', line 1009

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の値

Raises:


1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
# File 'lib/Miyako/API/i_yuki.rb', line 1699

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

#partsObject

パーツを参照する

[Yukiスクリプトとして利用可能]

パーツの管理オブジェクトを、ハッシュとして参照する。 パーツ名nameを指定して、インスタンスを参照できる 未登録のパーツはnilが返る (例)parts

返却値

パーツ管理ハッシュ


511
512
513
# File 'lib/Miyako/API/i_yuki.rb', line 511

def parts
  @parts
end

#parts_namesObject

パーツ名の一覧を参照する

[Yukiスクリプトとして利用可能]

パーツ管理オブジェクトに登録されているパーツ名の一覧を配列として返す。 順番は登録順。 まだ何も登録されていないときは空の配列が返る。 (例)regist_parts :chr1, hoge

regist_parts :chr2, fuga
parts_names # => [:chr1, :chr2]
返却値

パーツ管理ハッシュ


525
526
527
# File 'lib/Miyako/API/i_yuki.rb', line 525

def parts_names
  @parts.keys
end

#pauseObject

ポーズを行う

[Yukiスクリプトとして利用可能]

ポーズが行われると、ポーズ用のカーソルが表示される 所定のボタンを押すとポーズが解除され、カーソルが消える 解除後は、プロットの続きを処理する 引数無しのブロックを渡せば、ポーズ開始前に行いたい処理を施すことが出来る ポーズ中、update_innerメソッドを呼び出し、続けて、処理をYuki#startもしくはYuki#update呼び出し直後に戻す Yuki#updateが呼び出されてもポーズ中の場合は、再び上記の処理を繰り返す (たとえば、一定時間後に自動的にポーズ解除する場合、そのタイマーを開始させるなど)

返却値

自分自身を返す


1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
# File 'lib/Miyako/API/i_yuki.rb', line 1511

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_clearObject

ポーズをかけて、テキストボックスの内容を消去する

[Yukiスクリプトとして利用可能]

ポーズをかけ、ポーズを解除するときにテキストボックスの内容を消去する

返却値

自分自身を返す


1531
1532
1533
# File 'lib/Miyako/API/i_yuki.rb', line 1531

def pause_and_clear
  return pause.clear
end

#play(name) ⇒ Object

パーツで指定したオブジェクトを再生する

[Yukiスクリプトとして利用可能]

nameで指定したパーツを再生(例:BGM)する。 (但し、パーツで指定したオブジェクトがplayメソッドを持つことが条件)

name

パーツ名(シンボル)

返却値

自分自身を返す


868
869
870
871
872
# File 'lib/Miyako/API/i_yuki.rb', line 868

def play(name)
  @parts[name].play
  post_process
  return self
end

#plot_facade(plot_proc = nil, *params, &plot_block) ⇒ Object

:nodoc:


1036
1037
1038
1039
1040
1041
1042
1043
# File 'lib/Miyako/API/i_yuki.rb', line 1036

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_processObject


913
914
915
916
917
918
# File 'lib/Miyako/API/i_yuki.rb', line 913

def post_process
  self.render
  WaitCounter.post_update
  Animation.update
  Screen.render
end

#pre_hide(*names) ⇒ Object

パーツで指定したオブジェクトを隠蔽する

[Yukiスクリプトとして利用可能]

描画時に、指定したパーツを描画させないよう指定する

names

パーツ名(シンボル)、複数指定可能

返却値

自分自身を返す


753
754
755
756
757
758
759
760
# File 'lib/Miyako/API/i_yuki.rb', line 753

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


903
904
905
906
907
908
909
910
911
# File 'lib/Miyako/API/i_yuki.rb', line 903

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

パーツ名(シンボル)、複数指定可能(指定した順番に描画される)

返却値

自分自身を返す


736
737
738
739
740
741
742
743
744
745
746
# File 'lib/Miyako/API/i_yuki.rb', line 736

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_namesObject

現在描画対象のパーツ名のリストを取得する

[Yukiスクリプトとして利用可能]

現在描画しているパーツ名の配列を参照する。 実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。 Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される (例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。

返却値

描画対象リスト


549
550
551
# File 'lib/Miyako/API/i_yuki.rb', line 549

def pre_visibles_names
  @pre_visibles.names
end

#process(is_clear = true) ⇒ Object


898
899
900
901
# File 'lib/Miyako/API/i_yuki.rb', line 898

def process(is_clear = true)
  pre_process(is_clear)
  post_process
end

#regist_parts(name, parts) ⇒ Object

オブジェクトを登録する

[Yukiスクリプトとして利用可能]

オブジェクトをパーツnameとして登録する。 Yuki::partsで参照可能

name

パーツ名(シンボル)

parts

登録対象のインスタンス

返却値

自分自身を返す


573
574
575
576
# File 'lib/Miyako/API/i_yuki.rb', line 573

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(デフォルトは[](何もしない))

返却値

自分自身を返す

Raises:


1140
1141
1142
1143
1144
1145
1146
1147
# File 'lib/Miyako/API/i_yuki.rb', line 1140

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

パーツ名(シンボル)

返却値

自分自身を返す


693
694
695
696
# File 'lib/Miyako/API/i_yuki.rb', line 693

def remove_parts(name)
  @parts.delete(name)
  return self
end

#renderObject

Yuki#showで表示指定した画像を描画する

描画順は、showメソッドで指定した順に描画される(先に指定した画像は後ろに表示される) なお、visibleの値がfalseの時は描画されない。

返却値

自分自身を返す


412
413
414
415
# File 'lib/Miyako/API/i_yuki.rb', line 412

def render
  return @base.render_inner(self) if @base
  return self
end

#render_allObject


368
369
370
371
372
373
374
# File 'lib/Miyako/API/i_yuki.rb', line 368

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の時は描画されない。

返却値

自分自身を返す


429
430
431
432
# File 'lib/Miyako/API/i_yuki.rb', line 429

def render_to(dst)
  return @base.render_to_inner(self, dst) if @base
  return self
end

#render_to_all(dst) ⇒ Object


417
418
419
420
421
422
423
# File 'lib/Miyako/API/i_yuki.rb', line 417

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_allObject


392
393
394
395
396
397
398
# File 'lib/Miyako/API/i_yuki.rb', line 392

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_checksObject

コマンド選択キャンセル問い合わせメソッド配列を初期状態に戻す

返却値

自分自身を返す


1101
1102
1103
1104
# File 'lib/Miyako/API/i_yuki.rb', line 1101

def reset_cancel_checks
  @cancel_checks = @cancel_checks_default.dup
  return self
end

#reset_ok_checksObject

コマンド選択決定問い合わせメソッド配列を初期状態に戻す

返却値

自分自身を返す


1094
1095
1096
1097
# File 'lib/Miyako/API/i_yuki.rb', line 1094

def reset_ok_checks
  @ok_checks = @ok_checks_default.dup
  return self
end

#reset_pre_post_cancelObject

コマンド選択キャンセル前後処理メソッド配列を初期状態に戻す

pre_cancel/post_cancelの処理を初期状態([])に戻す

返却値

自分自身を返す


1127
1128
1129
1130
1131
# File 'lib/Miyako/API/i_yuki.rb', line 1127

def reset_pre_post_cancel
  @pre_acncel = []
  @post_cancel = []
  return self
end

#reset_pre_post_commandObject

コマンド選択前後処理メソッド配列を初期状態に戻す

pre_command/post_commandの処理を初期状態([])に戻す

返却値

自分自身を返す


1118
1119
1120
1121
1122
# File 'lib/Miyako/API/i_yuki.rb', line 1118

def reset_pre_post_command
  @pre_command = []
  @post_command = []
  return self
end

#reset_pre_post_releaseObject

ポーズ前後処理メソッド配列を初期状態に戻す

pre_pause/post_pauseの処理を初期状態([])に戻す

返却値

自分自身を返す


1109
1110
1111
1112
1113
# File 'lib/Miyako/API/i_yuki.rb', line 1109

def reset_pre_post_release
  @pre_pause = []
  @post_pause = []
  return self
end

#reset_release_checksObject

ポーズ解除問い合わせメソッド配列を初期状態に戻す

返却値

自分自身を返す


1087
1088
1089
1090
# File 'lib/Miyako/API/i_yuki.rb', line 1087

def reset_release_checks
  @release_checks = @release_checks_default.dup
  return self
end

#reset_selectingObject

:nodoc:


1653
1654
1655
1656
1657
# File 'lib/Miyako/API/i_yuki.rb', line 1653

def reset_selecting #:nodoc:
  @select_ok = false
  @select_cancel = false
  @select_amount = [0, 0]
end

#resultObject

プロットの処理結果を返す

[Yukiスクリプトとして利用可能]

プロット処理の結果を返す。 まだ結果が得られていない場合はnilを得る プロット処理が終了していないのに結果を得られるので注意!

返却値

プロットの処理結果


1187
1188
1189
# File 'lib/Miyako/API/i_yuki.rb', line 1187

def result
  return @plot_result
end

#result=(ret = nil) ⇒ Object

プロット処理の結果を設定する

[Yukiスクリプトとして利用可能]
ret

設定する結果。デフォルトはnil

返却値

自分自身を返す


1195
1196
1197
1198
# File 'lib/Miyako/API/i_yuki.rb', line 1195

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

テキストボックス全体

返却値

自分自身を返す


608
609
610
611
612
# File 'lib/Miyako/API/i_yuki.rb', line 608

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

最初に実行するページ名


1722
1723
1724
# File 'lib/Miyako/API/i_yuki.rb', line 1722

def select_first_page(name)
  @first_page = name
end

#select_key_enable?Boolean

Returns:

  • (Boolean)

1539
1540
1541
# File 'lib/Miyako/API/i_yuki.rb', line 1539

def select_key_enable?
  @select_key_enable
end

#select_mouse_enable?Boolean

Returns:

  • (Boolean)

1535
1536
1537
# File 'lib/Miyako/API/i_yuki.rb', line 1535

def select_mouse_enable?
  @select_mouse_enable
end

#select_plot(plot_proc) ⇒ Object

実行するプロットと登録する

plot_proc

プロットの実行部をインスタンス化したオブジェクト

返却値

自分自身を返す


950
951
952
953
# File 'lib/Miyako/API/i_yuki.rb', line 950

def select_plot(plot_proc)
  @exec_plot = plot_proc
  return self
end

#select_resultObject

コマンドの選択結果を返す

[Yukiスクリプトとして利用可能]

コマンド選択の結果を返す。 まだ結果が得られていない場合はnilを得る プロット処理・コマンド選択が終了していないのに結果を得られるので注意!

返却値

コマンドの選択結果


1665
1666
1667
# File 'lib/Miyako/API/i_yuki.rb', line 1665

def select_result
  return @result
end

#select_textbox(box, box_all = nil) ⇒ Object

表示・描画対象のテキストボックスを選択する

第2引数として、テキストボックス全体を渡せる(省略可能) 第1引数が、PartsやSpriteListの1部分のときに、第2引数を渡すことで、 テキストボックス全体を制御可能 第2引数を省略時は、全バージョンに引き続いて、テキストボックス本体のみを制御する

[Yukiスクリプトとして利用可能]
box

テキストボックス本体

box_all

テキストボックス全体

返却値

自分自身を返す


588
589
590
591
592
593
594
595
596
# File 'lib/Miyako/API/i_yuki.rb', line 588

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

ブロックに渡す引数リスト(ブロックを渡しているときのみ)

返却値

自分自身を返す

Raises:


926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
# File 'lib/Miyako/API/i_yuki.rb', line 926

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, "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

パーツ名(シンボル)、複数指定可能(指定した順番に描画される)

返却値

自分自身を返す


704
705
706
707
708
709
710
711
712
713
714
# File 'lib/Miyako/API/i_yuki.rb', line 704

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_commandboxObject

コマンドボックスを描画可能にする

[Yukiスクリプトとして利用可能]
返却値

レシーバ


657
658
659
660
# File 'lib/Miyako/API/i_yuki.rb', line 657

def show_commandbox
  @command_box_all.show
  return self
end

#show_textboxObject

テキストボックスを描画可能にする

[Yukiスクリプトとして利用可能]
返却値

レシーバ


649
650
651
652
# File 'lib/Miyako/API/i_yuki.rb', line 649

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で変更可能)

返却値

自分自身を返す


1442
1443
1444
1445
1446
1447
# File 'lib/Miyako/API/i_yuki.rb', line 1442

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

パーツ名(シンボル)

返却値

自分自身を返す


856
857
858
859
860
# File 'lib/Miyako/API/i_yuki.rb', line 856

def start(name)
  @parts[name].start
  post_process
  return self
end

#start_allObject


376
377
378
379
380
381
382
# File 'lib/Miyako/API/i_yuki.rb', line 376

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(base, plot_proc = nil, *params, &plot_block) ⇒ Object

プロット処理を実行する(明示的に呼び出す必要がある場合)

引数もしくはブロックで指定したプロット処理を非同期に実行する。 呼び出し可能なプロットは以下の3種類。(上から優先度が高い順) プロットが見つからなければ例外が発生する

1)引数prot_proc(Procクラスのインスタンス)

2)引数として渡したブロック

3)select_plotメソッドで登録したブロック(Procクラスのインスタンス)

base

プロット

plot_proc

プロットの実行部をインスタンス化したオブジェクト。省略時はnil(paramsを指定するときは必ず設定すること)

params

プロットに引き渡す引数リスト

返却値

自分自身を返す

Raises:


970
971
972
973
974
975
976
977
978
# File 'lib/Miyako/API/i_yuki.rb', line 970

def start_plot(base, 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
  @base = base
  plot_facade(plot_proc, *params, &plot_block)
  return self
end

#stop(name) ⇒ Object

パーツで指定したオブジェクトの処理を停止する

[Yukiスクリプトとして利用可能]

nameで指定したパーツが持つ処理を停止する。 (但し、パーツで指定したオブジェクトがstopメソッドを持つことが条件)

name

パーツ名(シンボル)

返却値

自分自身を返す


880
881
882
883
884
# File 'lib/Miyako/API/i_yuki.rb', line 880

def stop(name)
  @parts[name].stop
  post_process
  return self
end

#stop_allObject


384
385
386
387
388
389
390
# File 'lib/Miyako/API/i_yuki.rb', line 384

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

表示させるテキスト

返却値

自分自身を返す


1277
1278
1279
# File 'lib/Miyako/API/i_yuki.rb', line 1277

def text(txt)
  return @text_methods[@text_method_name].call(txt)
end

#text_by_char(txt) ⇒ Object

テキストボックスに文字を1文字ずつ表示する

[Yukiスクリプトとして利用可能]

引数txtの値は、内部で1文字ずつ分割され、1文字描画されるごとに、 update_textメソッドが呼び出され、続けてYuki#start_plotもしくはYuki#updateメソッド呼び出し直後に戻る 注意として、改行が文字列中にあれば改行、タブやフィードが文字列中にあれば、nilを返す。

txt

表示させるテキスト

返却値

自分自身を返す


1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
# File 'lib/Miyako/API/i_yuki.rb', line 1288

def text_by_char(txt)
  return self unless txt.class.method_defined?("chars")
  txt.chars{|ch|
    pre_process
    if ch == "\n" || ch == "\r"
      next wait_by_cond(@is_outer_height)
    elsif @text_box.locate.x + @text_box.font.text_size(ch)[0] >= @text_box.textarea.w
      wait_by_cond(@is_outer_height)
    elsif ch == "\t" || ch == "\f"
      next nil
    end
    @text_box.draw_text(ch)
    @base.text_inner(self, ch) if @base
    post_process
  }
  return self
end

#text_by_char_rapid(txt) ⇒ Object

テキストボックスに文字を1文字ずつ表示する

[Yukiスクリプトとして利用可能]

引数txtの値は、内部で1文字ずつ分割され、1文字描画されるごとに、 update_textメソッドが呼び出され、続けてYuki#start_plotもしくはYuki#updateメソッド呼び出し直後に戻る 注意として、改行が文字列中にあれば改行、タブやフィードが文字列中にあれば、nilを返す。

txt

表示させるテキスト

返却値

自分自身を返す


1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
# File 'lib/Miyako/API/i_yuki.rb', line 1313

def text_by_char_rapid(txt)
  return self unless txt.class.method_defined?("chars")
  pre_process
  txt.chars{|ch|
    if ch == "\n" || ch == "\r"
      next wait_by_cond(@is_outer_height)
    elsif @text_box.locate.x + @text_box.font.text_size(ch)[0] >= @text_box.textarea.w
      wait_by_cond(@is_outer_height)
    elsif ch == "\t" || ch == "\f"
      next nil
    end
    @text_box.draw_text(ch)
    @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

表示させるテキスト

返却値

自分自身を返す


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
# File 'lib/Miyako/API/i_yuki.rb', line 1338

def text_by_str(txt)
  return self unless txt.class.method_defined?("chars")
  use_cr = false
  tw = @text_box.textarea.w
  until txt.empty? do
    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] >= tw
      tmp = txt.slice!(0,(tw - @text_box.locate.x) / @text_box.font.size)
      use_cr = true
    elsif /[\t\f]/.match(txt)
      post_process
      next nil
    else
      tmp = txt
      txt = ""
    end
    @text_box.draw_text(tmp)
    if use_cr
      self.cr
      use_cr = false
    end
    @base.text_inner(self, tmp) if @base
    post_process
  end
  return self
end

#text_by_str_rapid(txt) ⇒ Object

テキストボックスに文字を表示する

[Yukiスクリプトとして利用可能]

文字列が描画されるごとに、update_textメソッドが呼び出され、 続けてYuki#start_plotもしくはYuki#updateメソッド呼び出し直後に戻る 注意として、改行が文字列中にあれば改行、タブやフィードが文字列中にあれば、nilを返す。

txt

表示させるテキスト

返却値

自分自身を返す


1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
# File 'lib/Miyako/API/i_yuki.rb', line 1375

def text_by_str_rapid(txt)
  return self unless txt.class.method_defined?("chars")
  use_cr = false
  tw = @text_box.textarea.w
  pre_process
  until txt.empty? do
    if /[\n\r]/.match(txt)
      tmp = Regexp.last_match.pre_match
      txt = Regexp.last_match.post_match
      use_cr = true
    elsif @text_box.locate.x + @text_box.font.text_size(txt)[0] >= tw
      tmp = txt.slice!(0,(tw - @text_box.locate.x) / @text_box.font.size)
      use_cr = true
    elsif /[\t\f]/.match(txt)
      next nil
    else
      tmp = txt
      txt = ""
    end
    @text_box.draw_text(tmp)
    if use_cr
      self.cr
      use_cr = false
    end
  end
  @base.text_inner(self, tmp) if @base
  post_process
  return self
end

#text_method(mode) ⇒ Object

テキストボックスに文字を表示する方法を指定する

引数に、:charを渡すと1文字ごと、:stringを渡すと文字列ごとに表示される。それ以外を指定したときは例外が発生 ブロックを渡せば、ブロックの評価中のみ設定が有効になる。 ブロック評価終了後、呼び出し前の設定に戻る

mode

テキストの表示方法。:charのときは文字ごと、:stringのときは文字列ごとに表示される。それ以外を指定したときは例外が発生

返却値

自分自身を返す

Raises:


1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
# File 'lib/Miyako/API/i_yuki.rb', line 1253

def text_method(mode)
  raise MiyakoValueError, "undefined text_mode! #{mode}" unless @text_methods.keys.include?(mode)
  backup = @text_method_name
  @text_method_name = mode
  if block_given?
    yield
    @text_method_name = backup
  end
  return self
end

#textboxObject

テキストボックスを取得する

[Yukiスクリプトとして利用可能]

テキストボックスが登録されていないときはnilを返す

返却値

テキストボックス


618
619
620
# File 'lib/Miyako/API/i_yuki.rb', line 618

def textbox
  return @text_box
end

#textbox_allObject

テキストボックス全体を取得する

[Yukiスクリプトとして利用可能]

テキストボックスが登録されていないときはnilを返す

返却値

テキストボックス全体


634
635
636
# File 'lib/Miyako/API/i_yuki.rb', line 634

def textbox_all
  return @text_box_all
end

#to_plot(&plot) ⇒ Object

プロット用ブロックをYukiへ渡すためのインスタンスを作成する

プロット用に用意したブロック(ブロック引数無し)を、Yukiでの選択結果や移動先として利用できる インスタンスに変換する

返却値

ブロックをオブジェクトに変換したものを返す


1021
1022
1023
# File 'lib/Miyako/API/i_yuki.rb', line 1021

def to_plot(&plot)
  return plot
end

#under_engineObject


991
992
993
# File 'lib/Miyako/API/i_yuki.rb', line 991

def under_engine
  @under_yuki
end

#under_engine=(engine) ⇒ Object


995
996
997
# File 'lib/Miyako/API/i_yuki.rb', line 995

def under_engine=(engine)
  @under_yuki = engine
end

#under_line(&block) ⇒ Object

下線付き文字を描画する

[Yukiスクリプトとして利用可能]

ブロック内で指定した文字列を下線付きで表示する

返却値

自分自身を返す


1473
1474
1475
1476
# File 'lib/Miyako/API/i_yuki.rb', line 1473

def under_line(&block)
  @text_box.font_under_line{ text block.call }
  return self
end

#updateObject

プロット処理を更新する

ポーズ中、コマンド選択中、 Yuki#wait メソッドによるウェイトの状態確認を行う。 プロット処理の実行確認は出来ない


437
438
439
440
441
442
443
444
# File 'lib/Miyako/API/i_yuki.rb', line 437

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_animationObject

Yuki#showで表示指定した画像のアニメーションを更新する

showメソッドで指定した画像のupdate_animationメソッドを呼び出す

返却値

描く画像のupdate_spriteメソッドを呼び出した結果を配列で返す


457
458
459
460
# File 'lib/Miyako/API/i_yuki.rb', line 457

def update_animation
  return @base.update_animation_inner(self) if @base
  return false
end

#update_animation_allObject


446
447
448
449
450
451
452
# File 'lib/Miyako/API/i_yuki.rb', line 446

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_inputObject

プロット処理に使用する入力情報を更新する

ポーズ中、コマンド選択中に使用する入力デバイスの押下状態を更新する (但し、プロット処理の実行中にのみ更新する) Yuki#update メソッドをそのまま使う場合は呼び出す必要がないが、 Yuki#exec_plot メソッドを呼び出す プロット処理の場合は、メインスレッドから明示的に呼び出す必要がある

返却値

nil を返す


1031
1032
1033
1034
# File 'lib/Miyako/API/i_yuki.rb', line 1031

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)

返却値

自分自身を返す

Raises:


1428
1429
1430
1431
1432
1433
1434
# File 'lib/Miyako/API/i_yuki.rb', line 1428

def valign_during(valign)
  raise MiyakoProcError, "Can't find block!" unless block_given?
  oalign, @valign = @valign, valign
  yield
  @valign = oalign
  return self
end

#varsObject

変数を参照する

[Yukiスクリプトとして利用可能]

変数の管理オブジェクトを、ハッシュとして参照する。 変数名nameを指定して、インスタンスを参照できる。 未登録の変数はnilが変える。 (例)vars = 2 # 変数への代入

vars[:b] = vars[:a] + 5
show vars[:my_name]
name

パーツ名(シンボル)

返却値

変数管理ハッシュ


483
484
485
# File 'lib/Miyako/API/i_yuki.rb', line 483

def vars
  @vars
end

#vars_namesObject

変数を参照する

[Yukiスクリプトとして利用可能]

変数の管理オブジェクトを、ハッシュとして参照する。 変数名nameを指定して、インスタンスを参照できる。 未登録の変数はnilが変える。 (例)vars = 2 # 変数への代入

vars[:b] = vars[:a] + 5
vars_names => [:a, :b]
name

パーツ名(シンボル)

返却値

変数管理ハッシュ


499
500
501
# File 'lib/Miyako/API/i_yuki.rb', line 499

def vars_names
  @vars.keys
end

#visibles_namesObject

現在描画対象のパーツ名のリストを取得する

[Yukiスクリプトとして利用可能]

現在描画しているパーツ名の配列を参照する。 実体のインスタンスは、partsメソッドで参照できるハッシュの値として格納されている。 Yuki#renderで描画する際、配列の先頭から順に、要素に対応するインスタンスを描画する(つまり、配列の後ろにある方が前に描画される (例):[:a, :b, :c]の順に並んでいたら、:cが指すインスタンスが一番前に描画される。

返却値

描画対象リスト


537
538
539
# File 'lib/Miyako/API/i_yuki.rb', line 537

def visibles_names
  @visibles.names
end

#wait(length) ⇒ Object

プロットの処理を待機する

[Yukiスクリプトとして利用可能]

指定の秒数(少数可)、プロットの処理を待機する。 待機中、update_innerメソッドを呼び出し、続けて、処理をYuki#startもしくはYuki#update呼び出し直後に戻す Yuki#updateが呼び出されても待機中の場合は、再び上記の処理を繰り返す

length

待機する長さ。単位は秒。少数可。

返却値

自分自身を返す


1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
# File 'lib/Miyako/API/i_yuki.rb', line 1676

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(渡されたブロックを評価する)

返却値

自分自身を返す


1241
1242
1243
1244
1245
# File 'lib/Miyako/API/i_yuki.rb', line 1241

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: 遷移図名(シンボル)

返却値

自分自身を返す


891
892
893
894
895
896
# File 'lib/Miyako/API/i_yuki.rb', line 891

def wait_by_finish(name, is_clear = true)
  until @parts[name].finish?
    process(is_clear)
  end
  return self
end