ruby-miyako 2.1.14 → 2.1.16
Sign up to get free protection for your applications and to get access to all the features.
- data/README +94 -5
- data/lib/Miyako/API/i_yuki.rb +94 -6
- data/lib/Miyako/API/input.rb +87 -5
- data/lib/Miyako/API/textbox.rb +6 -1
- data/lib/Miyako/API/utility.rb +112 -42
- data/lib/Miyako/API/yuki.rb +67 -2
- data/lib/Miyako/miyako.rb +2 -2
- data/miyako_input_audio.c +12 -0
- data/sample/map_test/chara.rb +2 -2
- data/sample/map_test/main_scene.rb +1 -1
- data/win/miyako_no_katana.so +0 -0
- metadata +4 -4
data/README
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
*******************************************************************************
|
2
2
|
【 作者名 】 サイロス誠
|
3
3
|
【 ソフト名 】 Interactive Media Authoring System "Miyako"
|
4
|
-
【 バージョン 】 2.1.
|
5
|
-
【 作成日 】 2010/
|
4
|
+
【 バージョン 】 2.1.16
|
5
|
+
【 作成日 】 2010/08/30
|
6
6
|
【 種別 】 フリーウェア
|
7
7
|
【 開発言語 】 Ruby 1.9.1
|
8
8
|
【 ランタイム 】 Ruby 1.9.1~,Ruby/SDL 2.1~,SDL
|
@@ -15,7 +15,7 @@
|
|
15
15
|
|
16
16
|
【 注意事項 】
|
17
17
|
|
18
|
-
本バージョンは、2.1.
|
18
|
+
本バージョンは、2.1.16公式リリース版です。
|
19
19
|
本バージョンでは、ドキュメント・リファレンスは不十分ですが、「サイログ。」内や、サンプルプログラムの紹介等で随時ドキュメントを公開して行きます。
|
20
20
|
(RDOC化を進めていますので、我こそはと思う方は是非・・・)
|
21
21
|
|
@@ -91,7 +91,7 @@ PAD : BUFFALO BGC-FC802
|
|
91
91
|
OS : Microsoft WindowsXp SP3
|
92
92
|
Microsoft WindowsVista Ultimate(x64) SP1
|
93
93
|
DEV : Notepad++ v5.3.1-6
|
94
|
-
mingw32版Ruby 1.9.
|
94
|
+
mingw32版Ruby 1.9.2-p0 + Ruby/SDL 2.1.1
|
95
95
|
MinGW+MSYS(miyako_no_katanaビルド)
|
96
96
|
|
97
97
|
<サブ開発PC>
|
@@ -101,7 +101,7 @@ MEM : 4GB(2GBx2)
|
|
101
101
|
PAD : SANWA SUPPLY JY-P1W
|
102
102
|
OS : Microsoft Windows7 x64
|
103
103
|
DEV : Notepad++ v5.3.1-6
|
104
|
-
mswin32版Ruby 1.9.
|
104
|
+
mswin32版Ruby 1.9.2-p0 + Ruby/SDL 2.1.1
|
105
105
|
|
106
106
|
【 動作確認環境 】
|
107
107
|
|
@@ -1830,5 +1830,94 @@ v2.1.14(2010.06.11)
|
|
1830
1830
|
<インスタンスメソッド廃止>
|
1831
1831
|
<ドキュメント>
|
1832
1832
|
|
1833
|
+
v2.1.15(2010.07.18)
|
1834
|
+
<バグ修正>
|
1835
|
+
・map_testサンプルで、マップと画面とのずれを算出する際に、アニメーションではなくスプライトからずれを算出していた問題を修正
|
1836
|
+
・実際にはずれていなかったため、海の上を歩けるなどの問題があった
|
1837
|
+
<機能改善>
|
1838
|
+
・Utility.product_liner(_f)の内部アルゴリズムを変更
|
1839
|
+
<仕様変更>
|
1840
|
+
<ファイル追加>
|
1841
|
+
<ファイル削除>
|
1842
|
+
<グローバル変数追加>
|
1843
|
+
<定数追加>
|
1844
|
+
<定数削除>
|
1845
|
+
<構造体追加>
|
1846
|
+
<クラス追加>
|
1847
|
+
<モジュール追加>
|
1848
|
+
<mixin>
|
1849
|
+
<クラス・モジュールメソッド追加>
|
1850
|
+
・ScenarioEngine.[]
|
1851
|
+
・ScenarioEngine.[]=
|
1852
|
+
・InitiativeScenarioEngine.[]
|
1853
|
+
・InitiativeScenarioEngine.[]=
|
1854
|
+
・Utility.theta2
|
1855
|
+
・Utility.radian
|
1856
|
+
・Utility.radian2
|
1857
|
+
・Utility.degree
|
1858
|
+
・Utility.degree2
|
1859
|
+
・Utility.product_liner_xy
|
1860
|
+
・Utility.product_liner_xy_f
|
1861
|
+
<クラス・モジュールメソッド廃止>
|
1862
|
+
<モジュール関数追加>
|
1863
|
+
<モジュール関数廃止>
|
1864
|
+
<インスタンスメソッド追加>
|
1865
|
+
・ScenarioEngine#[]
|
1866
|
+
・ScenarioEngine#[]=
|
1867
|
+
・ScenarioEngine#common_use
|
1868
|
+
・ScenarioEngine#call_plot_params
|
1869
|
+
・ScenarioEngine#call_plot_block
|
1870
|
+
・InitiativeScenarioEngine#[]
|
1871
|
+
・InitiativeScenarioEngine#[]=
|
1872
|
+
・InitiativeScenarioEngine#common_use
|
1873
|
+
・InitiativeScenarioEngine#call_plot_params
|
1874
|
+
・InitiativeScenarioEngine#call_plot_block
|
1875
|
+
<インスタンスメソッド廃止>
|
1876
|
+
<ドキュメント>
|
1877
|
+
・リファレンスマニュアルの反映
|
1878
|
+
<その他>
|
1879
|
+
・MiyakoPackはzipファイル→自己解凍型インストーラに変更
|
1880
|
+
|
1881
|
+
v2.1.16(2010.08.30)
|
1882
|
+
<バグ修正>
|
1883
|
+
<機能改善>
|
1884
|
+
<仕様変更>
|
1885
|
+
・プログラムの起動時と画面のフォーカス直後のマウスクリックはクリックと見なさないように変更
|
1886
|
+
(Miyako側では、フォーカスのためのクリックと判断できないために追加した処置)
|
1887
|
+
・InitiativeScenarioEngine#selecting_innerの呼び出しタイミングを変更(システム内の選択処理を終えた直後)
|
1888
|
+
・TextBox#attach_cursorの内部処理変更
|
1889
|
+
<ファイル追加>
|
1890
|
+
<ファイル削除>
|
1891
|
+
<グローバル変数追加>
|
1892
|
+
<定数追加>
|
1893
|
+
<定数削除>
|
1894
|
+
<構造体追加>
|
1895
|
+
<クラス追加>
|
1896
|
+
<モジュール追加>
|
1897
|
+
<mixin>
|
1898
|
+
<クラス・モジュールメソッド追加>
|
1899
|
+
・Input.mouse_x
|
1900
|
+
・Input.mouse_y
|
1901
|
+
・Input.mouse_dx
|
1902
|
+
・Input.mouse_dy
|
1903
|
+
・Input.key_focus?
|
1904
|
+
・Input.window_minimize?
|
1905
|
+
・Input.mouse_cursor_inner_change?
|
1906
|
+
・Input.key_focus_change?
|
1907
|
+
・Input.window_minimize_change?
|
1908
|
+
・Input.btn_state
|
1909
|
+
・Input.mouse_state
|
1910
|
+
<クラス・モジュールメソッド廃止>
|
1911
|
+
<モジュール関数追加>
|
1912
|
+
<モジュール関数廃止>
|
1913
|
+
<インスタンスメソッド追加>
|
1914
|
+
・TextBox#attach_cursor?
|
1915
|
+
・InitiativeScenarioEngine#select_mouse_enable?
|
1916
|
+
・InitiativeScenarioEngine#select_key_enable?
|
1917
|
+
<インスタンスメソッド廃止>
|
1918
|
+
<ドキュメント>
|
1919
|
+
・リファレンスマニュアルの反映
|
1920
|
+
<その他>
|
1921
|
+
|
1833
1922
|
*******************************************************************************
|
1834
1923
|
このReadMeファイルは「れ~どめ~えじた~」によって作成されました。
|
data/lib/Miyako/API/i_yuki.rb
CHANGED
@@ -171,6 +171,19 @@ module Miyako
|
|
171
171
|
end
|
172
172
|
end
|
173
173
|
|
174
|
+
#外部との共用変数を収めるところ
|
175
|
+
@@common_use = {}
|
176
|
+
|
177
|
+
def InitiativeYuki.[](key)
|
178
|
+
@@common_use[key]
|
179
|
+
end
|
180
|
+
|
181
|
+
def InitiativeYuki.[]=(key, value)
|
182
|
+
@@common_use[key] = value
|
183
|
+
value
|
184
|
+
end
|
185
|
+
|
186
|
+
attr_reader :common_use
|
174
187
|
attr_reader :visibles, :pre_visibles, :bgs, :base
|
175
188
|
attr_reader :valign
|
176
189
|
#release_checks:: ポーズ解除を問い合わせるブロックの配列。
|
@@ -187,6 +200,9 @@ module Miyako
|
|
187
200
|
#(2)キャンセルボタンを押した?(true/false)
|
188
201
|
#(3)キーパッドの移動量を示す配列([dx,dy])
|
189
202
|
#(4)マウスの位置を示す配列([x,y])
|
203
|
+
#<<(2.1.15-追加、省略可能)>>
|
204
|
+
#(5)現在指しているコマンドは選択可能?(true/false)
|
205
|
+
#(6)現在指しているコマンドの結果
|
190
206
|
#callメソッドを持つブロックが使用可能。
|
191
207
|
attr_reader :selecting_procs
|
192
208
|
|
@@ -255,6 +271,9 @@ module Miyako
|
|
255
271
|
|
256
272
|
@mouse_enable = true
|
257
273
|
|
274
|
+
@select_mouse_enable = true
|
275
|
+
@select_key_enable = false
|
276
|
+
|
258
277
|
@result = nil
|
259
278
|
@plot_result = nil
|
260
279
|
|
@@ -300,6 +319,8 @@ module Miyako
|
|
300
319
|
|
301
320
|
@engine_stack = []
|
302
321
|
|
322
|
+
@common_use = {}
|
323
|
+
|
303
324
|
raise MiyakoProcError, "Argument count is not same block parameter count!" if proc && proc.arity.abs != params.length
|
304
325
|
instance_exec(*params, &proc) if block_given?
|
305
326
|
end
|
@@ -436,6 +457,15 @@ module Miyako
|
|
436
457
|
return false
|
437
458
|
end
|
438
459
|
|
460
|
+
def [](key)
|
461
|
+
@common_use[key] || @@common_use[key]
|
462
|
+
end
|
463
|
+
|
464
|
+
def []=(key, value)
|
465
|
+
@common_use[key] = value
|
466
|
+
value
|
467
|
+
end
|
468
|
+
|
439
469
|
#===変数を参照する
|
440
470
|
#[[Yukiスクリプトとして利用可能]]
|
441
471
|
#変数の管理オブジェクトを、ハッシュとして参照する。
|
@@ -1024,6 +1054,32 @@ module Miyako
|
|
1024
1054
|
self.instance_exec(&plot_block)
|
1025
1055
|
end
|
1026
1056
|
|
1057
|
+
#===プロット処理中に別のプロットを呼び出す
|
1058
|
+
#呼び出し可能なプロットは以下の2種類。(上から優先度が高い順)
|
1059
|
+
#
|
1060
|
+
#1)引数prot_proc(Procクラスのインスタンス)
|
1061
|
+
#
|
1062
|
+
#2)引数として渡したブロック
|
1063
|
+
#
|
1064
|
+
#_plot_proc_:: プロットの実行部をインスタンス化したオブジェクト
|
1065
|
+
#返却値:: プロットの実行結果を返す
|
1066
|
+
def call_plot_params(plot_proc, *params)
|
1067
|
+
return self.instance_exec(*params, &plot_proc)
|
1068
|
+
end
|
1069
|
+
|
1070
|
+
#===プロット処理中に別のプロットを呼び出す
|
1071
|
+
#呼び出し可能なプロットは以下の2種類。(上から優先度が高い順)
|
1072
|
+
#
|
1073
|
+
#1)引数prot_proc(Procクラスのインスタンス)
|
1074
|
+
#
|
1075
|
+
#2)引数として渡したブロック
|
1076
|
+
#
|
1077
|
+
#_plot_proc_:: プロットの実行部をインスタンス化したオブジェクト
|
1078
|
+
#返却値:: プロットの実行結果を返す
|
1079
|
+
def call_plot_block(*params, &plot_block)
|
1080
|
+
return self.instance_exec(*params, &plot_block)
|
1081
|
+
end
|
1082
|
+
|
1027
1083
|
#===ポーズ解除問い合わせメソッド配列を初期状態に戻す
|
1028
1084
|
#返却値:: 自分自身を返す
|
1029
1085
|
def reset_release_checks
|
@@ -1413,6 +1469,14 @@ module Miyako
|
|
1413
1469
|
return pause.clear
|
1414
1470
|
end
|
1415
1471
|
|
1472
|
+
def select_mouse_enable?
|
1473
|
+
@select_mouse_enable
|
1474
|
+
end
|
1475
|
+
|
1476
|
+
def select_key_enable?
|
1477
|
+
@select_key_enable
|
1478
|
+
end
|
1479
|
+
|
1416
1480
|
#===コマンドを表示する
|
1417
1481
|
#[[Yukiスクリプトとして利用可能]]
|
1418
1482
|
#表示対象のコマンド群をCommand構造体の配列で示す。
|
@@ -1454,17 +1518,38 @@ module Miyako
|
|
1454
1518
|
end
|
1455
1519
|
|
1456
1520
|
@result = nil
|
1521
|
+
@select_mouse_enable = true
|
1522
|
+
@select_key_enable = false
|
1457
1523
|
selecting = true
|
1458
1524
|
reset_selecting
|
1459
1525
|
while selecting
|
1460
1526
|
pre_process
|
1461
|
-
@base.selecting_inner(self) if @base
|
1462
|
-
@select_ok = true if @ok_checks.inject(false){|r, c| r |= c.call }
|
1463
|
-
@select_cancel = true if @cancel && @cancel_checks.inject(false){|r, c| r |= c.call }
|
1464
1527
|
@select_amount = @key_amount_proc.call
|
1465
1528
|
@mouse_amount = @mouse_amount_proc.call
|
1529
|
+
if @select_amount != [0,0]
|
1530
|
+
@select_mouse_enable = false
|
1531
|
+
@select_key_enable = true
|
1532
|
+
elsif Input.mouse_dx != 0 and Input.mouse_dy != 0
|
1533
|
+
@select_mouse_enable = true
|
1534
|
+
@select_key_enable = false
|
1535
|
+
else
|
1536
|
+
@select_mouse_enable = false
|
1537
|
+
@select_key_enable = false
|
1538
|
+
end
|
1539
|
+
@select_ok = true if @ok_checks.inject(false){|r, c| r |= c.call }
|
1540
|
+
@select_cancel = true if @cancel && @cancel_checks.inject(false){|r, c| r |= c.call }
|
1466
1541
|
@selecting_procs.each{|sp|
|
1467
|
-
sp.
|
1542
|
+
case sp.arity
|
1543
|
+
when 6
|
1544
|
+
sp.call(@select_ok, @select_cansel,
|
1545
|
+
@select_amount, @mouse_amount,
|
1546
|
+
@command_box.enable_choice?, @command_box.result
|
1547
|
+
)
|
1548
|
+
else
|
1549
|
+
sp.call(@select_ok, @select_cansel,
|
1550
|
+
@select_amount, @mouse_amount
|
1551
|
+
)
|
1552
|
+
end
|
1468
1553
|
}
|
1469
1554
|
if @select_ok
|
1470
1555
|
unless @command_box.enable_choice?
|
@@ -1485,13 +1570,16 @@ module Miyako
|
|
1485
1570
|
@text_box.release
|
1486
1571
|
selecting = false
|
1487
1572
|
reset_selecting
|
1488
|
-
elsif @select_amount != [0,0]
|
1573
|
+
elsif @select_amount != [0,0] and @select_key_enable
|
1489
1574
|
@command_box.move_cursor(*@select_amount)
|
1490
1575
|
reset_selecting
|
1491
|
-
elsif @mouse_amount
|
1576
|
+
elsif @mouse_amount and @select_mouse_enable
|
1492
1577
|
@command_box.attach_cursor(*@mouse_amount.to_a) if @mouse_enable
|
1493
1578
|
reset_selecting
|
1579
|
+
elsif Input.mouse_cursor_inner?
|
1580
|
+
@command_box.attach_cursor(Input.mouse_x, Input.mouse_y) if @mouse_enable
|
1494
1581
|
end
|
1582
|
+
@base.selecting_inner(self) if @base
|
1495
1583
|
post_process
|
1496
1584
|
end
|
1497
1585
|
@post_cancel.each{|proc| proc.call}
|
data/lib/Miyako/API/input.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
2
|
=begin
|
3
3
|
--
|
4
4
|
Miyako v2.1
|
@@ -108,7 +108,10 @@ module Miyako
|
|
108
108
|
:click => {:left => false, :middle => false, :right => false, :interval => 200},
|
109
109
|
:drag => {:left => false, :middle => false, :right => false, :x => 0, :y => 0},
|
110
110
|
:drop => {:left => false, :middle => false, :right => false, :succeed => true},
|
111
|
-
:inner =>
|
111
|
+
:inner => false, :focus => false, :mini => false}
|
112
|
+
@@mouse_inner = false
|
113
|
+
@@key_focus = false
|
114
|
+
@@app_minimize = false
|
112
115
|
|
113
116
|
@@initialized = false
|
114
117
|
|
@@ -225,7 +228,7 @@ module Miyako
|
|
225
228
|
def Input::process_mousebuttondown(e) #:nodoc:
|
226
229
|
return unless @@enable_mouse
|
227
230
|
set_mouse_button(:trigger, e.button)
|
228
|
-
return unless @@
|
231
|
+
return unless @@mouse_inner
|
229
232
|
click_mouse_button(:click, e.button)
|
230
233
|
set_mouse_button(:drag, e.button)
|
231
234
|
@@mouse[:drag][:x] = @@mouse[:pos][:x]
|
@@ -249,8 +252,20 @@ module Miyako
|
|
249
252
|
end
|
250
253
|
|
251
254
|
def Input::process_active(e) #:nodoc:
|
252
|
-
|
253
|
-
|
255
|
+
if e.state & 1 == 1
|
256
|
+
return unless @@enable_mouse
|
257
|
+
@@mouse[:inner] = true
|
258
|
+
@@mouse_inner = e.gain
|
259
|
+
end
|
260
|
+
if e.state & 2 == 2
|
261
|
+
@@mouse[:focus] = true
|
262
|
+
@@key_focus = e.gain
|
263
|
+
[:left, :middle, :right].each{|key| @@mouse[:click][key] = false }
|
264
|
+
end
|
265
|
+
if e.state & 4 == 4
|
266
|
+
@@mouse[:mini] = true
|
267
|
+
@@app_minimize = !e.gain
|
268
|
+
end
|
254
269
|
end
|
255
270
|
|
256
271
|
def Input::process_default(e) #:nodoc:
|
@@ -297,6 +312,9 @@ module Miyako
|
|
297
312
|
@@mouse[:click][e] = false
|
298
313
|
@@mouse[:drop][e] = false
|
299
314
|
}
|
315
|
+
@@mouse[:inner] = false
|
316
|
+
@@mouse[:focus] = false
|
317
|
+
@@mouse[:mini] = false
|
300
318
|
e_list = []
|
301
319
|
while e = SDL::Event2.poll
|
302
320
|
e_list << e
|
@@ -311,6 +329,15 @@ module Miyako
|
|
311
329
|
}
|
312
330
|
end
|
313
331
|
|
332
|
+
def Input::after_exec
|
333
|
+
x = @@mouse[:pos][:x]
|
334
|
+
y = @@mouse[:pos][:y]
|
335
|
+
if (@@mouse[:click][:left] or @@mouse[:click][:middle] or @@mouse[:click][:right]) and !@@key_focus and x>=0 and x<Screen.w and y>=0 and y<Screen.h
|
336
|
+
@@key_focus = true
|
337
|
+
[:left, :middle, :right].each{|key| @@mouse[:click][key] = false }
|
338
|
+
end
|
339
|
+
end
|
340
|
+
|
314
341
|
#===指定のボタンがすべて押下状態かを問い合わせるメソッド
|
315
342
|
#_inputs_:: ボタンを示すシンボル。複数指定可能
|
316
343
|
#((例)Input.trigger_all?(:btn1, :btn2) #ボタン1とボタン2が押されている)
|
@@ -414,6 +441,22 @@ module Miyako
|
|
414
441
|
return Point.new(@@mouse[:pos][:x],@@mouse[:pos][:y])
|
415
442
|
end
|
416
443
|
|
444
|
+
def Input::mouse_x
|
445
|
+
return @@enable_mouse ? @@mouse[:pos][:x] : -1
|
446
|
+
end
|
447
|
+
|
448
|
+
def Input::mouse_y
|
449
|
+
return @@enable_mouse ? @@mouse[:pos][:y] : -1
|
450
|
+
end
|
451
|
+
|
452
|
+
def Input::mouse_dx
|
453
|
+
return @@enable_mouse ? @@mouse[:pos][:dx] : 0
|
454
|
+
end
|
455
|
+
|
456
|
+
def Input::mouse_dy
|
457
|
+
return @@enable_mouse ? @@mouse[:pos][:dy] : 0
|
458
|
+
end
|
459
|
+
|
417
460
|
#===マウスの移動量を取得する
|
418
461
|
#求める値は、{:x=>n,:y=>n}で示すハッシュとする
|
419
462
|
#移動量は、右下方向を正とする
|
@@ -498,10 +541,41 @@ module Miyako
|
|
498
541
|
#===マウスカーソルが画面の内側に有るかどうかを問い合わせる
|
499
542
|
#返却値:: マウスカーソルが画面内ならtrueを返す
|
500
543
|
def Input::mouse_cursor_inner?
|
544
|
+
return false unless @@enable_mouse
|
545
|
+
return @@mouse_inner
|
546
|
+
end
|
547
|
+
|
548
|
+
#===マウスカーソルが画面の内側に有るかどうかを問い合わせる
|
549
|
+
#返却値:: マウスカーソルが画面内ならtrueを返す
|
550
|
+
def Input::key_focus?
|
551
|
+
return @@key_focus
|
552
|
+
end
|
553
|
+
|
554
|
+
#===マウスカーソルが画面の内側に有るかどうかを問い合わせる
|
555
|
+
#返却値:: マウスカーソルが画面内ならtrueを返す
|
556
|
+
def Input::window_minimize?
|
557
|
+
return @@app_minimize
|
558
|
+
end
|
559
|
+
|
560
|
+
#===マウスカーソルが画面の内側に有るかどうかを問い合わせる
|
561
|
+
#返却値:: マウスカーソルが画面内ならtrueを返す
|
562
|
+
def Input::mouse_cursor_inner_change?
|
501
563
|
return false unless @@enable_mouse
|
502
564
|
return @@mouse[:inner]
|
503
565
|
end
|
504
566
|
|
567
|
+
#===マウスカーソルが画面の内側に有るかどうかを問い合わせる
|
568
|
+
#返却値:: マウスカーソルが画面内ならtrueを返す
|
569
|
+
def Input::key_focus_change?
|
570
|
+
return @@mouse[:focus]
|
571
|
+
end
|
572
|
+
|
573
|
+
#===マウスカーソルが画面の内側に有るかどうかを問い合わせる
|
574
|
+
#返却値:: マウスカーソルが画面内ならtrueを返す
|
575
|
+
def Input::window_minimize_change?
|
576
|
+
return @@mouse[:mini]
|
577
|
+
end
|
578
|
+
|
505
579
|
#===Alt+Enterキーを押したときにフル・ウィンドウモード切り替えの可否を切り替える
|
506
580
|
def Input::enable_toggle_screen_mode
|
507
581
|
@@toggle_screen_mode = true
|
@@ -517,5 +591,13 @@ module Miyako
|
|
517
591
|
def Input::toggle_screen_mode?
|
518
592
|
return @@toggle_screen_mode
|
519
593
|
end
|
594
|
+
|
595
|
+
def Input::btn_state
|
596
|
+
@@btn
|
597
|
+
end
|
598
|
+
|
599
|
+
def Input::mouse_state
|
600
|
+
@@mouse
|
601
|
+
end
|
520
602
|
end
|
521
603
|
end
|
data/lib/Miyako/API/textbox.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
2
|
=begin
|
3
3
|
--
|
4
4
|
Miyako v2.1
|
@@ -592,11 +592,16 @@ module Miyako
|
|
592
592
|
end
|
593
593
|
else
|
594
594
|
@choices.non_select if @pre_attach
|
595
|
+
@select_cursor.snap(@choices.body) if @select_cursor
|
595
596
|
end
|
596
597
|
@pre_attach = attach
|
597
598
|
return self
|
598
599
|
end
|
599
600
|
|
601
|
+
def attach_cursor?
|
602
|
+
@choices.attach?(Input.mouse_x, Input.mouse_y)
|
603
|
+
end
|
604
|
+
|
600
605
|
#===マウスカーソルの位置にコマンドがあるかどうかを問い合わせる
|
601
606
|
#マウスカーソルがどれかのコマンドの上にあるときはtrue、どれにも当たっていないときはfalseを返す
|
602
607
|
#_x_:: マウスカーソルの位置(x軸方向)
|
data/lib/Miyako/API/utility.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
2
|
=begin
|
3
3
|
--
|
4
4
|
Miyako v2.1
|
@@ -45,17 +45,11 @@ module Miyako
|
|
45
45
|
return steps
|
46
46
|
end
|
47
47
|
|
48
|
-
def Utility.
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
dy = y2 - y1
|
54
|
-
a = dx < Float::EPSILON ? dy.to_f : dy.to_f / dx.to_f
|
55
|
-
b = y1.to_f - a * x1.to_f
|
56
|
-
array = [[x1,y1] , [x2,y2]] + step_x.map{|x| [x, (a * x.to_f + b).to_i]}
|
57
|
-
array += step_y.map{|y| [((y.to_f - b) / a).to_i, y]} if (a.abs >= Float::EPSILON)
|
58
|
-
return array.uniq
|
48
|
+
def Utility.product_liner_xy_f(x1, y1, x2, y2, amount)
|
49
|
+
distance = Utility.interval2(x1,y1,x2,y2)
|
50
|
+
degree = Utility.radian2(x1,y1,x2,y2,distance)
|
51
|
+
cos, sin = Math.cos(degree), Math.sin(degree)
|
52
|
+
(0..distance).step(amount).with_object([]){|n, arr| arr << [x1 + n * cos, y1 + n * sin]} << [x2,y2]
|
59
53
|
end
|
60
54
|
|
61
55
|
#===矩形内の対角線の座標リストを実数で取得する
|
@@ -77,7 +71,7 @@ module Miyako
|
|
77
71
|
y1 = rect[1]
|
78
72
|
x2 = x1 + rect[2] - 1
|
79
73
|
y2 = y1 + rect[3] - 1
|
80
|
-
return
|
74
|
+
return product_liner_xy_f(x1, y1, x2, y2, amount)
|
81
75
|
end
|
82
76
|
|
83
77
|
#===矩形内の対角線の座標リストを実数で取得する
|
@@ -95,29 +89,16 @@ module Miyako
|
|
95
89
|
def Utility.product_liner_by_square_f(square, amount = 1.0)
|
96
90
|
raise MiyakoValueError, "Illegal amount! #{amount}" if amount < Float::EPSILON
|
97
91
|
return [] if (square[2] - square[0]) < Float::EPSILON || (square[3] - square[1]) < Float::EPSILON
|
98
|
-
return
|
92
|
+
return product_liner_xy_f(*square, amount)
|
99
93
|
end
|
100
94
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
if [x1, y1, x2, y2, amount].all?{|v| v.methods.include?(:step)}
|
109
|
-
step_x = x1 < x2 ? x1.step(x2, amount).to_a : x1.step(x2, -amount).to_a
|
110
|
-
step_y = y1 < y2 ? y1.step(y2, amount).to_a : y1.step(y2, -amount).to_a
|
111
|
-
a = dx == 0 ? dy.to_f : dy.to_f / dx.to_f
|
112
|
-
else
|
113
|
-
step_x = get_step_array_f(x1, x2, amount)
|
114
|
-
step_y = get_step_array_f(y1, y2, amount)
|
115
|
-
a = dx < Float::EPSILON ? dy.to_f : dy.to_f / dx.to_f
|
116
|
-
end
|
117
|
-
b = y1.to_f - a * x1.to_f
|
118
|
-
array = [[x1,y1] , [x2,y2]] + step_x.map{|x| [x, (a * x.to_f + b).to_i]}
|
119
|
-
array += step_y.map{|y| [((y.to_f - b) / a).to_i, y]} if (a.abs >= Float::EPSILON)
|
120
|
-
return array.uniq
|
95
|
+
# ToDo: 線形補完を使う
|
96
|
+
# -> 使った(2010.06.20)
|
97
|
+
def Utility.product_liner_xy(x1, y1, x2, y2, amount) #:nodoc:
|
98
|
+
distance = Utility.interval2(x1,y1,x2,y2)
|
99
|
+
degree = Utility.radian2(x1,y1,x2,y2,distance)
|
100
|
+
cos, sin = Math.cos(degree), Math.sin(degree)
|
101
|
+
(0..distance).step(amount).with_object([]){|n, arr| arr << [x1+(n*cos).to_i, y1+(n*sin).to_i]} << [x2,y2]
|
121
102
|
end
|
122
103
|
|
123
104
|
#===矩形内の対角線の座標リストを取得する
|
@@ -138,7 +119,7 @@ module Miyako
|
|
138
119
|
y1 = rect[1]
|
139
120
|
x2 = x1 + rect[2] - 1
|
140
121
|
y2 = y1 + rect[3] - 1
|
141
|
-
return
|
122
|
+
return product_liner_xy(x1, y1, x2, y2, amount)
|
142
123
|
end
|
143
124
|
|
144
125
|
#===矩形内の対角線の座標リストを取得する
|
@@ -155,7 +136,7 @@ module Miyako
|
|
155
136
|
def Utility.product_liner_by_square(square, amount = 1)
|
156
137
|
raise MiyakoValueError, "Illegal amount! #{amount}" if amount <= 0
|
157
138
|
return [] if (square[2] - square[0]) == 0 || (square[3] - square[1]) == 0
|
158
|
-
return
|
139
|
+
return product_liner_xy(*square, amount)
|
159
140
|
end
|
160
141
|
|
161
142
|
def Utility.product_inner(x1, y1, x2, y2, size) #:nodoc:
|
@@ -244,22 +225,111 @@ module Miyako
|
|
244
225
|
return d < Float::EPSILON ? 0.0 : d
|
245
226
|
end
|
246
227
|
|
228
|
+
#===2点間の距離を算出する
|
229
|
+
# 2点(点1、点2)がどの程度離れているかを算出する。
|
230
|
+
# 返ってくる値は、正の実数で返ってくる
|
231
|
+
#_x1_:: 点1の位置(x)
|
232
|
+
#_y1_:: 点1の位置(y)
|
233
|
+
#_x2_:: 点2の位置(x)
|
234
|
+
#_y2_:: 点2の位置(y)
|
235
|
+
#返却値:: 2点間の距離
|
236
|
+
def Utility.interval2(x1, y1, x2, y2)
|
237
|
+
#2点間の距離を求める
|
238
|
+
d = Math.sqrt(((x1.to_f - x2.to_f) ** 2) +
|
239
|
+
((y1.to_f - y2.to_f) ** 2))
|
240
|
+
return d < Float::EPSILON ? 0.0 : d
|
241
|
+
end
|
242
|
+
|
243
|
+
#===2点間の傾きを角度で算出する
|
244
|
+
# 2点(点1、点2)がどの程度傾いているか算出する。傾きの中心は点1とする。
|
245
|
+
# 角度の単位は度(0.0<=θ<360.0)
|
246
|
+
# 返ってくる値は、正の実数で返ってくる
|
247
|
+
#_point1_:: 点1の位置(Point/Rect/Square構造体、2要素以上の配列、もしくはx,yメソッドを持つインスタンス)
|
248
|
+
#_point2_:: 点2の位置(Point/Rect/Square構造体、2要素以上の配列、もしくはx,yメソッドを持つインスタンス)
|
249
|
+
#返却値:: 2点間の傾き
|
250
|
+
def Utility.theta(point1, point2, distance = nil)
|
251
|
+
theta = (Utility.radian(point1,point2,distance) / (2 * Math::PI)) * 360.0
|
252
|
+
return theta < Float::EPSILON ? 0.0 : theta
|
253
|
+
end
|
254
|
+
|
247
255
|
#===2点間の傾きを角度で算出する
|
248
256
|
# 2点(点1、点2)がどの程度傾いているか算出する。傾きの中心は点1とする。
|
249
257
|
# 角度の単位は度(0.0<=θ<360.0)
|
250
258
|
# 返ってくる値は、正の実数で返ってくる
|
259
|
+
#_x1_:: 点1の位置(x)
|
260
|
+
#_y1_:: 点1の位置(y)
|
261
|
+
#_x2_:: 点2の位置(x)
|
262
|
+
#_y2_:: 点2の位置(y)
|
263
|
+
#返却値:: 2点間の傾き
|
264
|
+
def Utility.theta2(x1, y1, x2, y2, distance = nil)
|
265
|
+
theta = (Utility.radian2(x1,y1,x2,y2,distance) / (2 * Math::PI)) * 360.0
|
266
|
+
return theta < Float::EPSILON ? 0.0 : theta
|
267
|
+
end
|
268
|
+
|
269
|
+
#===2点間の傾きをラジアンで算出する
|
270
|
+
# 2点(点1、点2)がどの程度傾いているか算出する。傾きの中心は点1とする。
|
271
|
+
# 角度の単位は度(0.0<=θ<360.0)
|
272
|
+
# 返ってくる値は、正の実数で返ってくる
|
251
273
|
#_point1_:: 点1の位置(Point/Rect/Square構造体、2要素以上の配列、もしくはx,yメソッドを持つインスタンス)
|
252
274
|
#_point2_:: 点2の位置(Point/Rect/Square構造体、2要素以上の配列、もしくはx,yメソッドを持つインスタンス)
|
253
275
|
#返却値:: 2点間の傾き
|
254
|
-
def Utility.
|
276
|
+
def Utility.radian(point1, point2, distance = nil)
|
255
277
|
#2点間の距離を求める
|
256
|
-
d = Math.sqrt(((point1[0].to_f - point2[0].to_f) ** 2) +
|
257
|
-
|
258
|
-
x = point2[0].to_f -
|
278
|
+
d = distance || Math.sqrt(((point1[0].to_f - point2[0].to_f) ** 2) +
|
279
|
+
((point1[1].to_f - point2[1].to_f) ** 2))
|
280
|
+
x = point2[0].to_f - point1[0].to_f
|
259
281
|
# 傾き・幅が0のときは傾きは0度
|
260
282
|
return 0.0 if (x.abs < Float::EPSILON or d < Float::EPSILON)
|
261
|
-
theta =
|
262
|
-
return theta < Float::EPSILON ? 0.0 : theta
|
283
|
+
theta = Math.acos(x / d)
|
284
|
+
return theta < Float::EPSILON ? 0.0 : (point2[1]-point1[1]<0 ? 2*Math::PI-theta : theta)
|
285
|
+
end
|
286
|
+
|
287
|
+
#===2点間の傾きをラジアンで算出する
|
288
|
+
# 2点(点1、点2)がどの程度傾いているか算出する。傾きの中心は点1とする。
|
289
|
+
# 角度の単位は度(0.0<=θ<360.0)
|
290
|
+
# 返ってくる値は、正の実数で返ってくる
|
291
|
+
#_x1_:: 点1の位置(x)
|
292
|
+
#_y1_:: 点1の位置(y)
|
293
|
+
#_x2_:: 点2の位置(x)
|
294
|
+
#_y2_:: 点2の位置(y)
|
295
|
+
#返却値:: 2点間の傾き
|
296
|
+
def Utility.radian2(x1, y1, x2, y2, distance = nil)
|
297
|
+
#2点間の距離を求める
|
298
|
+
d = distance || Math.sqrt(((x1.to_f - x2.to_f) ** 2) +
|
299
|
+
((y1.to_f - y2.to_f) ** 2))
|
300
|
+
x = x2.to_f - x1.to_f
|
301
|
+
# 傾き・幅が0のときは傾きは0度
|
302
|
+
return 0.0 if (x.abs < Float::EPSILON or d < Float::EPSILON)
|
303
|
+
theta = Math.acos(x / d)
|
304
|
+
return theta < Float::EPSILON ? 0.0 : (y2-y1<0 ? 2*Math::PI-theta : theta)
|
305
|
+
end
|
306
|
+
|
307
|
+
#===2点間の傾きを角度で算出する
|
308
|
+
# 2点(点1、点2)がどの程度傾いているか算出する。傾きの中心は点1とする。
|
309
|
+
# 角度の単位は度(0.0<=θ<360.0)
|
310
|
+
# 返ってくる値は、正の実数で返ってくる
|
311
|
+
#_point1_:: 点1の位置(Point/Rect/Square構造体、2要素以上の配列、もしくはx,yメソッドを持つインスタンス)
|
312
|
+
#_point2_:: 点2の位置(Point/Rect/Square構造体、2要素以上の配列、もしくはx,yメソッドを持つインスタンス)
|
313
|
+
#返却値:: 2点間の傾き
|
314
|
+
def Utility.degree(point1, point2)
|
315
|
+
return 0.0 if (point2[0].to_f-point1[0].to_f < Float::EPSILON)
|
316
|
+
degree = (point2[1]-point1[1]).to_f/(point2[0]-point1[0]).to_f
|
317
|
+
return degree < Float::EPSILON ? 0.0 : degree
|
318
|
+
end
|
319
|
+
|
320
|
+
#===2点間の傾きを角度で算出する
|
321
|
+
# 2点(点1、点2)がどの程度傾いているか算出する。傾きの中心は点1とする。
|
322
|
+
# 角度の単位は度(0.0<=θ<360.0)
|
323
|
+
# 返ってくる値は、正の実数で返ってくる
|
324
|
+
#_x1_:: 点1の位置(x)
|
325
|
+
#_y1_:: 点1の位置(y)
|
326
|
+
#_x2_:: 点2の位置(x)
|
327
|
+
#_y2_:: 点2の位置(y)
|
328
|
+
#返却値:: 2点間の傾き
|
329
|
+
def Utility.degree2(x1, y1, x2, y2)
|
330
|
+
return 0.0 if (x2.to_f-x1[0].to_f < Float::EPSILON)
|
331
|
+
degree = (y2-y1).to_f/(x2-x1).to_f
|
332
|
+
return degree < Float::EPSILON ? 0.0 : degree
|
263
333
|
end
|
264
334
|
|
265
335
|
#===小線分を移動させたとき、大線分が範囲内かどうかを判別する
|
data/lib/Miyako/API/yuki.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
2
|
=begin
|
3
3
|
--
|
4
4
|
Miyako v2.1
|
@@ -136,6 +136,18 @@ module Miyako
|
|
136
136
|
end
|
137
137
|
end
|
138
138
|
|
139
|
+
#外部との共用変数を収めるところ
|
140
|
+
@@common_use = {}
|
141
|
+
|
142
|
+
def Yuki.[](key)
|
143
|
+
@@common_use[key]
|
144
|
+
end
|
145
|
+
|
146
|
+
def Yuki.[]=(key, value)
|
147
|
+
@@common_use[key] = value
|
148
|
+
value
|
149
|
+
end
|
150
|
+
|
139
151
|
#===Yuki#update実行中に行わせる処理を実装するテンプレートメソッド
|
140
152
|
#但し、メソッド本体は、update_inner=メソッドで設定する必要がある
|
141
153
|
#_yuki_:: 実行中のYukiクラスインスタンス
|
@@ -164,6 +176,7 @@ module Miyako
|
|
164
176
|
def update_clear(yuki)
|
165
177
|
end
|
166
178
|
|
179
|
+
attr_reader :common_use
|
167
180
|
attr_accessor :visible
|
168
181
|
attr_accessor :update_inner, :update_text, :update_cr, :update_clear
|
169
182
|
attr_reader :valign, :visibles, :pre_visibles, :bgs
|
@@ -181,6 +194,9 @@ module Miyako
|
|
181
194
|
#(2)キャンセルボタンを押した?(true/false)
|
182
195
|
#(3)キーパッドの移動量を示す配列([dx,dy])
|
183
196
|
#(4)マウスの位置を示す配列([x,y])
|
197
|
+
#<<(2.1.15-追加、省略可能)>>
|
198
|
+
#(5)現在指しているコマンドは選択可能?(true/false)
|
199
|
+
#(6)現在指しているコマンドの結果
|
184
200
|
#callメソッドを持つブロックが使用可能。
|
185
201
|
attr_reader :selecting_procs
|
186
202
|
|
@@ -304,6 +320,8 @@ module Miyako
|
|
304
320
|
@now_page = nil
|
305
321
|
@first_page = nil
|
306
322
|
|
323
|
+
@common_use = {}
|
324
|
+
|
307
325
|
raise MiyakoProcError, "Argument count is not same block parameter count!" if proc && proc.arity.abs != params.length
|
308
326
|
instance_exec(*params, &proc) if block_given?
|
309
327
|
end
|
@@ -429,6 +447,15 @@ module Miyako
|
|
429
447
|
@over_yuki.update_animation if @over_yuki && @over_yuki.executing?
|
430
448
|
end
|
431
449
|
|
450
|
+
def [](key)
|
451
|
+
@common_use[key] || @@common_use[key]
|
452
|
+
end
|
453
|
+
|
454
|
+
def []=(key, value)
|
455
|
+
@common_use[key] = value
|
456
|
+
value
|
457
|
+
end
|
458
|
+
|
432
459
|
#===変数を参照する
|
433
460
|
#[[Yukiスクリプトとして利用可能]]
|
434
461
|
#変数の管理オブジェクトを、ハッシュとして参照する。
|
@@ -1019,6 +1046,32 @@ module Miyako
|
|
1019
1046
|
self.instance_exec(&plot_block)
|
1020
1047
|
end
|
1021
1048
|
|
1049
|
+
#===プロット処理中に別のプロットを呼び出す
|
1050
|
+
#呼び出し可能なプロットは以下の2種類。(上から優先度が高い順)
|
1051
|
+
#
|
1052
|
+
#1)引数prot_proc(Procクラスのインスタンス)
|
1053
|
+
#
|
1054
|
+
#2)引数として渡したブロック
|
1055
|
+
#
|
1056
|
+
#_plot_proc_:: プロットの実行部をインスタンス化したオブジェクト
|
1057
|
+
#返却値:: プロットの実行結果を返す
|
1058
|
+
def call_plot_params(plot_proc, *params)
|
1059
|
+
return self.instance_exec(*params, &plot_proc)
|
1060
|
+
end
|
1061
|
+
|
1062
|
+
#===プロット処理中に別のプロットを呼び出す
|
1063
|
+
#呼び出し可能なプロットは以下の2種類。(上から優先度が高い順)
|
1064
|
+
#
|
1065
|
+
#1)引数prot_proc(Procクラスのインスタンス)
|
1066
|
+
#
|
1067
|
+
#2)引数として渡したブロック
|
1068
|
+
#
|
1069
|
+
#_plot_proc_:: プロットの実行部をインスタンス化したオブジェクト
|
1070
|
+
#返却値:: プロットの実行結果を返す
|
1071
|
+
def call_plot_block(*params, &plot_block)
|
1072
|
+
return self.instance_exec(*params, &plot_block)
|
1073
|
+
end
|
1074
|
+
|
1022
1075
|
#===プロット処理が実行中かどうかを確認する
|
1023
1076
|
#返却値:: プロット処理実行中の時はtrueを返す
|
1024
1077
|
def executing?
|
@@ -1490,7 +1543,19 @@ module Miyako
|
|
1490
1543
|
return unless @selecting
|
1491
1544
|
return unless @command_box.selecting?
|
1492
1545
|
@selecting_procs.each{|sp|
|
1493
|
-
sp.
|
1546
|
+
case sp.arity
|
1547
|
+
when 6
|
1548
|
+
sp.call(
|
1549
|
+
@select_ok, @select_cansel,
|
1550
|
+
@select_amount, @mouse_amount,
|
1551
|
+
@command_box.enable_choice?, @command_box.result
|
1552
|
+
)
|
1553
|
+
else
|
1554
|
+
sp.call(
|
1555
|
+
@select_ok, @select_cansel,
|
1556
|
+
@select_amount, @mouse_amount
|
1557
|
+
)
|
1558
|
+
end
|
1494
1559
|
}
|
1495
1560
|
if @select_ok
|
1496
1561
|
return @on_disable.each{|proc| proc.call} unless @command_box.enable_choice?
|
data/lib/Miyako/miyako.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
#=コンテンツ作成ライブラリMiyako2.1
|
4
4
|
#
|
5
5
|
#Authors:: サイロス誠
|
6
|
-
#Version:: 2.1.
|
6
|
+
#Version:: 2.1.16
|
7
7
|
#Copyright:: 2007-2010 Cyross Makoto
|
8
8
|
#License:: LGPL2.1
|
9
9
|
#
|
@@ -63,7 +63,7 @@ Thread.abort_on_exception = true
|
|
63
63
|
|
64
64
|
#==Miyako基幹モジュール
|
65
65
|
module Miyako
|
66
|
-
VERSION = "2.1.
|
66
|
+
VERSION = "2.1.16"
|
67
67
|
|
68
68
|
#===アプリケーション実行中に演奏する音楽のサンプリングレートを指定する
|
69
69
|
#単位はHz(周波数)
|
data/miyako_input_audio.c
CHANGED
@@ -53,6 +53,7 @@ static volatile ID id_poll = Qnil;
|
|
53
53
|
static volatile ID id_call = Qnil;
|
54
54
|
static volatile ID id_reset_ticks = Qnil;
|
55
55
|
static volatile ID id_setup_ticks = Qnil;
|
56
|
+
static volatile ID id_after = Qnil;
|
56
57
|
static volatile int zero = 0;
|
57
58
|
static volatile int one = 1;
|
58
59
|
static volatile VALUE sy_pushed = Qnil;
|
@@ -61,6 +62,9 @@ static volatile VALUE sy_dx = Qnil;
|
|
61
62
|
static volatile VALUE sy_dy = Qnil;
|
62
63
|
static volatile VALUE sy_click = Qnil;
|
63
64
|
static volatile VALUE sy_drop = Qnil;
|
65
|
+
static volatile VALUE sy_inner = Qnil;
|
66
|
+
static volatile VALUE sy_focus = Qnil;
|
67
|
+
static volatile VALUE sy_mini = Qnil;
|
64
68
|
static volatile VALUE sy_left = Qnil;
|
65
69
|
static volatile VALUE sy_right = Qnil;
|
66
70
|
static volatile VALUE sy_middle = Qnil;
|
@@ -111,6 +115,9 @@ static VALUE input_update(VALUE self)
|
|
111
115
|
rb_hash_aset(drop, sy_left, Qfalse);
|
112
116
|
rb_hash_aset(drop, sy_middle, Qfalse);
|
113
117
|
rb_hash_aset(drop, sy_right, Qfalse);
|
118
|
+
rb_hash_aset(mouse, sy_inner, Qfalse);
|
119
|
+
rb_hash_aset(mouse, sy_focus, Qfalse);
|
120
|
+
rb_hash_aset(mouse, sy_mini, Qfalse);
|
114
121
|
|
115
122
|
#if 0
|
116
123
|
e_list = rb_ary_new();
|
@@ -154,6 +161,7 @@ static VALUE input_update(VALUE self)
|
|
154
161
|
e = rb_funcall(cEvent, id_poll, 0);
|
155
162
|
}
|
156
163
|
#endif
|
164
|
+
rb_funcall(self, id_after, 0);
|
157
165
|
|
158
166
|
return Qnil;
|
159
167
|
}
|
@@ -288,6 +296,7 @@ void Init_miyako_input_audio()
|
|
288
296
|
id_countup = rb_intern("loop_count_up");
|
289
297
|
id_reset_ticks = rb_intern("reset_ticks");
|
290
298
|
id_setup_ticks = rb_intern("setup_ticks");
|
299
|
+
id_after = rb_intern("after_exec");
|
291
300
|
|
292
301
|
sy_pushed = ID2SYM(rb_intern("pushed"));
|
293
302
|
sy_pos = ID2SYM(rb_intern("pos"));
|
@@ -295,6 +304,9 @@ void Init_miyako_input_audio()
|
|
295
304
|
sy_dy = ID2SYM(rb_intern("dy"));
|
296
305
|
sy_click = ID2SYM(rb_intern("click"));
|
297
306
|
sy_drop = ID2SYM(rb_intern("drop"));
|
307
|
+
sy_inner = ID2SYM(rb_intern("inner"));
|
308
|
+
sy_focus = ID2SYM(rb_intern("focus"));
|
309
|
+
sy_mini = ID2SYM(rb_intern("mini"));
|
298
310
|
sy_left = ID2SYM(rb_intern("left"));
|
299
311
|
sy_right = ID2SYM(rb_intern("right"));
|
300
312
|
sy_middle = ID2SYM(rb_intern("middle"));
|
data/sample/map_test/chara.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
2
|
#キャラクタ管理クラス
|
3
3
|
class PChara # Player Character
|
4
4
|
extend Forwardable
|
@@ -27,7 +27,7 @@ class PChara # Player Character
|
|
27
27
|
|
28
28
|
# マップの表示座標と実座標とのマージンを設定
|
29
29
|
def margin
|
30
|
-
return Size.new(-@
|
30
|
+
return Size.new(-@anim.x, -@anim.y)
|
31
31
|
end
|
32
32
|
|
33
33
|
def turn(d)
|
data/win/miyako_no_katana.so
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-miyako
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 43
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 2.1.
|
9
|
+
- 16
|
10
|
+
version: 2.1.16
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Cyross Makoto
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-08-29 00:00:00 +09:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|