ruby-miyako 2.1.4 → 2.1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/README +42 -5
- data/lib/Miyako/API/choices.rb +0 -2
- data/lib/Miyako/API/collision.rb +0 -4
- data/lib/Miyako/API/fixedmap.rb +0 -3
- data/lib/Miyako/API/i_yuki.rb +28 -46
- data/lib/Miyako/API/layout.rb +0 -1
- data/lib/Miyako/API/map.rb +0 -2
- data/lib/Miyako/API/map_event.rb +0 -3
- data/lib/Miyako/API/map_struct.rb +0 -2
- data/lib/Miyako/API/parts.rb +0 -11
- data/lib/Miyako/API/screen.rb +3 -4
- data/lib/Miyako/API/shape.rb +27 -27
- data/lib/Miyako/API/sprite.rb +0 -2
- data/lib/Miyako/API/story.rb +0 -2
- data/lib/Miyako/API/textbox.rb +9 -11
- data/lib/Miyako/API/utility.rb +2 -2
- data/lib/Miyako/API/yuki.rb +19 -8
- data/lib/Miyako/miyako.rb +3 -0
- data/miyako_basicdata.c +52 -5
- data/miyako_bitmap.c +351 -342
- data/miyako_collision.c +77 -67
- data/miyako_diagram.c +22 -21
- data/miyako_drawing.c +9 -6
- data/miyako_font.c +63 -53
- data/miyako_hsv.c +428 -436
- data/miyako_input_audio.c +17 -14
- data/miyako_layout.c +23 -18
- data/miyako_no_katana.c +284 -248
- data/miyako_sprite2.c +30 -18
- data/miyako_transform.c +95 -93
- data/miyako_utility.c +9 -18
- data/miyako_yuki.c +10 -6
- data/sample/Diagram_sample/diagram_sample_yuki2.rb +2 -2
- data/sample/Room3/room3.rb +8 -10
- data/sample/ball_action_sample.rb +8 -8
- data/sample/map_test/main_scene.rb +1 -1
- data/sample/map_test/map_test.rb +8 -8
- data/sample/takahashi.rb +14 -14
- data/win/miyako_no_katana.so +0 -0
- metadata +6 -4
data/README
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
*******************************************************************************
|
2
2
|
【 作者名 】 サイロス誠
|
3
3
|
【 ソフト名 】 Interactive Media Authoring System "Miyako"
|
4
|
-
【 バージョン 】 2.1.
|
5
|
-
【 作成日 】
|
4
|
+
【 バージョン 】 2.1.5
|
5
|
+
【 作成日 】 2010/01/01
|
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.5公式リリース版です。
|
19
19
|
本バージョンでは、ドキュメント・リファレンスは不十分ですが、「サイログ。」内や、サンプルプログラムの紹介等で随時ドキュメントを公開して行きます。
|
20
20
|
(RDOC化を進めていますので、我こそはと思う方は是非・・・)
|
21
21
|
|
@@ -1470,8 +1470,6 @@ v2.1.4(2009.11.10)
|
|
1470
1470
|
・(Initiative)Yuki#pre_hide
|
1471
1471
|
・(Initiative)Yuki#bg_show
|
1472
1472
|
・(Initiative)Yuki#bg_hide
|
1473
|
-
・(Initiative)Yuki#bg_show
|
1474
|
-
・(Initiative)Yuki#bg_hide
|
1475
1473
|
・(Initiative)Yuki#show_textbox
|
1476
1474
|
・(Initiative)Yuki#show_commandbox
|
1477
1475
|
・(Initiative)Yuki#hide_textbox
|
@@ -1479,5 +1477,44 @@ v2.1.4(2009.11.10)
|
|
1479
1477
|
・(Initiative)Yuki#box_shared?
|
1480
1478
|
<インスタンスメソッド廃止>
|
1481
1479
|
|
1480
|
+
v2.1.5(2010.01.01)
|
1481
|
+
<バグ修正>
|
1482
|
+
・Layout#.include_snap_child?メソッドの戻り値間違いを修正
|
1483
|
+
・拡張ライブラリのソースがVisualCでビルドできない問題を修正
|
1484
|
+
・無駄なForwardableモジュールのmixinを削除
|
1485
|
+
・無駄なforwardable.rbの読み込みを削除
|
1486
|
+
(Ruby1.9.2で、二重requireのメッセージが出ていたのを解決)
|
1487
|
+
・Forwardable.rbの読み込みを削除(ファイル名間違い)
|
1488
|
+
・一部ソースを、Ruby.1.9.2で動作しないものがあったため修正
|
1489
|
+
・一部サンプルを、Ruby1.9.2で動作するように修正
|
1490
|
+
<機能改善>
|
1491
|
+
<仕様変更>
|
1492
|
+
・起動時の表示モードをウインドウモードに変更
|
1493
|
+
・Yuki#render/render_to/update_animationにあったvisiblesのrender/render_to/update_animationの呼び出しを廃止
|
1494
|
+
・InitiativeYuki#render/render_to/update_animationにあったvisiblesのrender/render_to/update_animationの呼び出しを廃止
|
1495
|
+
<ファイル追加>
|
1496
|
+
<ファイル削除>
|
1497
|
+
<グローバル変数追加>
|
1498
|
+
<定数追加>
|
1499
|
+
<定数削除>
|
1500
|
+
<構造体追加>
|
1501
|
+
<クラス追加>
|
1502
|
+
・ScenarioEngine(Yukiと同等)
|
1503
|
+
・InitiativeScenarioEngine(InitiativeYukiと同等)
|
1504
|
+
・InitiativeScenarioEngineTemplate(InitiativeYukiTemplateと同等)
|
1505
|
+
<モジュール追加>
|
1506
|
+
<mixin>
|
1507
|
+
<クラス・モジュールメソッド追加>
|
1508
|
+
<クラス・モジュールメソッド廃止>
|
1509
|
+
<モジュール関数追加>
|
1510
|
+
<インスタンスメソッド追加>
|
1511
|
+
・scenario_plot(yuki_plotと同等)
|
1512
|
+
・Yuki#over_engine
|
1513
|
+
<インスタンスメソッド廃止>
|
1514
|
+
・Parts#part_move!
|
1515
|
+
・Parts#part_move_to!
|
1516
|
+
・TextBox#select_type/selct_type=
|
1517
|
+
・InitiativeScenarioEngine#over_exec
|
1518
|
+
|
1482
1519
|
*******************************************************************************
|
1483
1520
|
このReadMeファイルは「れ~どめ~えじた~」によって作成されました。
|
data/lib/Miyako/API/choices.rb
CHANGED
data/lib/Miyako/API/collision.rb
CHANGED
@@ -20,15 +20,11 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
20
20
|
++
|
21
21
|
=end
|
22
22
|
|
23
|
-
require 'delegate'
|
24
|
-
|
25
23
|
module Miyako
|
26
24
|
#==矩形当たり判定領域(コリジョン)クラス
|
27
25
|
# コリジョンの範囲は、元データ(スプライト等)の左上端を[0.0,0.0]として考案する
|
28
26
|
# コリジョンで使用する値は、実数での設定が可能
|
29
27
|
class Collision
|
30
|
-
extend Forwardable
|
31
|
-
|
32
28
|
# 関連づけられたインスタンス
|
33
29
|
attr_reader :body
|
34
30
|
# コリジョンの範囲([x,y,w,h])
|
data/lib/Miyako/API/fixedmap.rb
CHANGED
data/lib/Miyako/API/i_yuki.rb
CHANGED
@@ -20,51 +20,50 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
20
20
|
++
|
21
21
|
=end
|
22
22
|
|
23
|
-
#lambdaの別名として、yuki_plotメソッドを追加
|
24
|
-
alias :yuki_plot :lambda
|
25
|
-
|
26
23
|
#=シナリオ言語Yuki実装モジュール
|
27
24
|
module Miyako
|
28
25
|
|
29
26
|
#==InitiativeYukiクラスに対応したテンプレートモジュール
|
30
27
|
module InitiativeYukiTemplate
|
31
|
-
def render_inner(
|
28
|
+
def render_inner(engine)
|
32
29
|
end
|
33
30
|
|
34
|
-
def render_to_inner(
|
31
|
+
def render_to_inner(engine, dst)
|
35
32
|
end
|
36
33
|
|
37
|
-
def update_animation_inner(
|
34
|
+
def update_animation_inner(engine)
|
38
35
|
end
|
39
36
|
|
40
|
-
def update_inner(
|
37
|
+
def update_inner(engine)
|
41
38
|
end
|
42
39
|
|
43
|
-
def text_inner(
|
40
|
+
def text_inner(engine, ch)
|
44
41
|
end
|
45
42
|
|
46
|
-
def cr_inner(
|
43
|
+
def cr_inner(engine)
|
47
44
|
end
|
48
45
|
|
49
|
-
def clear_inner(
|
46
|
+
def clear_inner(engine)
|
50
47
|
end
|
51
48
|
|
52
|
-
def input_inner(
|
49
|
+
def input_inner(engine)
|
53
50
|
end
|
54
51
|
|
55
|
-
def pausing_inner(
|
52
|
+
def pausing_inner(engine)
|
56
53
|
end
|
57
54
|
|
58
|
-
def selecting_inner(
|
55
|
+
def selecting_inner(engine)
|
59
56
|
end
|
60
57
|
|
61
|
-
def waiting_inner(
|
58
|
+
def waiting_inner(engine)
|
62
59
|
end
|
63
60
|
|
64
61
|
def plot
|
65
62
|
end
|
66
63
|
end
|
67
64
|
|
65
|
+
InitiativeScenarioEngineTemplate = InitiativeYukiTemplate
|
66
|
+
|
68
67
|
#==主導権を持ったYuki本体クラス
|
69
68
|
#Yukiの内容をオブジェクト化したクラス
|
70
69
|
#Yukiのプロット処理を外部メソッドで管理可能
|
@@ -227,47 +226,47 @@ module Miyako
|
|
227
226
|
end
|
228
227
|
|
229
228
|
def render_inner(yuki)
|
230
|
-
@base.render_inner(yuki)
|
229
|
+
@base.render_inner(yuki) if @base
|
231
230
|
end
|
232
231
|
|
233
232
|
def render_to_inner(yuki, dst)
|
234
|
-
@base.render_to_inner(yuki, dst)
|
233
|
+
@base.render_to_inner(yuki, dst) if @base
|
235
234
|
end
|
236
235
|
|
237
236
|
def update_animation_inner(yuki)
|
238
|
-
@base.update_animation_inner(yuki)
|
237
|
+
@base.update_animation_inner(yuki) if @base
|
239
238
|
end
|
240
239
|
|
241
240
|
def update_inner(yuki)
|
242
|
-
@base.update_inner(yuki)
|
241
|
+
@base.update_inner(yuki) if @base
|
243
242
|
end
|
244
243
|
|
245
244
|
def text_inner(yuki, ch)
|
246
|
-
@base.text_inner(yuki, ch)
|
245
|
+
@base.text_inner(yuki, ch) if @base
|
247
246
|
end
|
248
247
|
|
249
248
|
def cr_inner(yuki)
|
250
|
-
@base.cr_inner(yuki)
|
249
|
+
@base.cr_inner(yuki) if @base
|
251
250
|
end
|
252
251
|
|
253
252
|
def clear_inner(yuki)
|
254
|
-
@base.clear_inner(yuki)
|
253
|
+
@base.clear_inner(yuki) if @base
|
255
254
|
end
|
256
255
|
|
257
256
|
def input_inner(yuki)
|
258
|
-
@base.input_inner(yuki)
|
257
|
+
@base.input_inner(yuki) if @base
|
259
258
|
end
|
260
259
|
|
261
260
|
def pausing_inner(yuki)
|
262
|
-
@base.pausing_inner(yuki)
|
261
|
+
@base.pausing_inner(yuki) if @base
|
263
262
|
end
|
264
263
|
|
265
264
|
def selecting_inner(yuki)
|
266
|
-
@base.selecting_inner(yuki)
|
265
|
+
@base.selecting_inner(yuki) if @base
|
267
266
|
end
|
268
267
|
|
269
268
|
def waiting_inner(yuki)
|
270
|
-
@base.waiting_inner(yuki)
|
269
|
+
@base.waiting_inner(yuki) if @base
|
271
270
|
end
|
272
271
|
|
273
272
|
#===マウスでの制御を可能にする
|
@@ -302,7 +301,6 @@ module Miyako
|
|
302
301
|
#なお、visibleの値がfalseの時は描画されない。
|
303
302
|
#返却値:: 自分自身を返す
|
304
303
|
def render
|
305
|
-
@visibles.render
|
306
304
|
render_inner(self)
|
307
305
|
return self
|
308
306
|
end
|
@@ -312,7 +310,6 @@ module Miyako
|
|
312
310
|
#なお、visibleの値がfalseの時は描画されない。
|
313
311
|
#返却値:: 自分自身を返す
|
314
312
|
def render_to(dst)
|
315
|
-
@visibles.render
|
316
313
|
render_to_inner(self, dst)
|
317
314
|
return self
|
318
315
|
end
|
@@ -334,7 +331,6 @@ module Miyako
|
|
334
331
|
#返却値:: 描く画像のupdate_spriteメソッドを呼び出した結果を配列で返す
|
335
332
|
def update_animation
|
336
333
|
update_animation_inner(self)
|
337
|
-
@visibles.update_animation
|
338
334
|
end
|
339
335
|
|
340
336
|
#===変数を参照する
|
@@ -785,23 +781,6 @@ module Miyako
|
|
785
781
|
Screen.render
|
786
782
|
end
|
787
783
|
|
788
|
-
#===別のYukiエンジンを実行する
|
789
|
-
#[[Yukiスクリプトとして利用可能]]
|
790
|
-
#もう一つのYukiエンジンを実行させ、並行実行させることができる
|
791
|
-
#ウインドウの上にウインドウを表示したりするときに、このメソッドを使う
|
792
|
-
#renderメソッドで描画する際は、自分のインスタンスが描画した直後に描画される
|
793
|
-
#自分自身を実行しようとするとMiyakoValueError例外が発生する
|
794
|
-
#_yuki_:: 実行対象のYukiインスタンス(事前にsetupの呼び出しが必要)
|
795
|
-
#_plot_:: プロットインスタンス。すでにsetupなどで登録しているときはnilを渡す
|
796
|
-
#_params_:: プロット実行開始時に、プロットに渡す引数
|
797
|
-
#返却値:: 自分自身を返す
|
798
|
-
def over_exec(yuki, plot, *params)
|
799
|
-
raise MiyakoValueError, "This Yuki engine is same as self!" if yuki.eql?(self)
|
800
|
-
@over_yuki = yuki
|
801
|
-
@over_yuki.start_plot(self, plot, *params)
|
802
|
-
return self
|
803
|
-
end
|
804
|
-
|
805
784
|
#===シーンのセットアップ時に実行する処理
|
806
785
|
#
|
807
786
|
#ブロック引数として、テキストボックスの変更などの処理をブロック内に記述することが出来る。
|
@@ -884,7 +863,8 @@ module Miyako
|
|
884
863
|
def plot_facade(plot_proc = nil, *params, &plot_block) #:nodoc:
|
885
864
|
@plot_result = nil
|
886
865
|
exec_plot = @exec_plot
|
887
|
-
@plot_result =
|
866
|
+
@plot_result = @base ? self.instance_exec(*params, &@base.plot) :
|
867
|
+
plot_proc ? self.instance_exec(*params, &plot_proc) :
|
888
868
|
block_given? ? self.instance_exec(*params, &plot_block) :
|
889
869
|
exec_plot ? self.instance_exec(*params, &exec_plot) :
|
890
870
|
raise(MiyakoProcError, "Cannot find plot!")
|
@@ -1456,4 +1436,6 @@ module Miyako
|
|
1456
1436
|
@is_outer_height = nil
|
1457
1437
|
end
|
1458
1438
|
end
|
1439
|
+
|
1440
|
+
InitiativeScenarioEngine = InitiativeYuki
|
1459
1441
|
end
|
data/lib/Miyako/API/layout.rb
CHANGED
data/lib/Miyako/API/map.rb
CHANGED
data/lib/Miyako/API/map_event.rb
CHANGED
data/lib/Miyako/API/parts.rb
CHANGED
@@ -21,9 +21,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
21
21
|
=end
|
22
22
|
|
23
23
|
module Miyako
|
24
|
-
|
25
|
-
require 'delegate'
|
26
|
-
|
27
24
|
#==パーツ構成クラス
|
28
25
|
#複数のスプライト・アニメーションをまとめて一つの部品として構成できるクラス
|
29
26
|
#
|
@@ -219,13 +216,5 @@ module Miyako
|
|
219
216
|
def move_to!(x, y, &block)
|
220
217
|
@list.move_to!(x, y, &block)
|
221
218
|
end
|
222
|
-
|
223
|
-
def part_move!(dx, dy)
|
224
|
-
@list.part_move!(dx, dy)
|
225
|
-
end
|
226
|
-
|
227
|
-
def part_move_to!(x, y)
|
228
|
-
@list.part_move_to!(x, y)
|
229
|
-
end
|
230
219
|
end
|
231
220
|
end
|
data/lib/Miyako/API/screen.rb
CHANGED
@@ -20,8 +20,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
20
20
|
++
|
21
21
|
=end
|
22
22
|
|
23
|
-
require 'singleton'
|
24
|
-
|
25
23
|
module Miyako
|
26
24
|
|
27
25
|
#==画面管理モジュール
|
@@ -55,7 +53,8 @@ module Miyako
|
|
55
53
|
@@min_interval_r = @@min_interval / 1000
|
56
54
|
@@t = 0
|
57
55
|
@@freezing = false
|
58
|
-
@@mode = FULLSCREEN_MODE
|
56
|
+
# @@mode = FULLSCREEN_MODE
|
57
|
+
@@mode = WINDOW_MODE
|
59
58
|
@@unit = SpriteUnitFactory.create
|
60
59
|
@@pos = Size.new(0,0)
|
61
60
|
|
@@ -241,7 +240,7 @@ module Miyako
|
|
241
240
|
# 生成される線分は、x方向が[0,w-1]、y方向が[0,h-1]となる
|
242
241
|
#返却値:: 生成したSegment構造体インスタンス
|
243
242
|
def Screen::segment
|
244
|
-
|
243
|
+
return Segments.create([0, 0, @@size[0]-1, @@size[1]-1])
|
245
244
|
end
|
246
245
|
|
247
246
|
#===画面のサーフェスを生成する
|
data/lib/Miyako/API/shape.rb
CHANGED
@@ -21,8 +21,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
21
21
|
=end
|
22
22
|
|
23
23
|
module Miyako
|
24
|
-
|
25
|
-
|
24
|
+
@@modes = [:text, :txt_calc, :takahashi, :tk_calc]
|
25
|
+
|
26
26
|
#==テキストや図形を描画するクラス
|
27
27
|
#図形は、長方形・丸み付き長方形・円・楕円が描画可能
|
28
28
|
#文字列は、通常の文字列と高橋メソッド形式文字列が描画可能
|
@@ -36,7 +36,7 @@ module Miyako
|
|
36
36
|
@edge = parameter[:edge] ||= nil
|
37
37
|
@align = parameter[:align] ||= :left
|
38
38
|
@valign = parameter[:valign] ||= :middle
|
39
|
-
|
39
|
+
@lines = parameter[:lines] ||= 2
|
40
40
|
@vertexes = parameter[:vertexes] ||= []
|
41
41
|
end
|
42
42
|
|
@@ -55,8 +55,8 @@ module Miyako
|
|
55
55
|
end
|
56
56
|
|
57
57
|
#===テキストを高橋メソッド形式で描画した画像を作成
|
58
|
-
|
59
|
-
|
58
|
+
#指定した大きさの矩形・行数で文字を描画する。
|
59
|
+
#指定した行数で描画を基準に文字サイズを算出する。
|
60
60
|
#但し、文字列が長すぎる時は、その文字数を基準に文字サイズを算出する。
|
61
61
|
#ブロックに渡した行数が指定数より多くなると文字列がはみ出るため、注意すること。
|
62
62
|
#_param_:: 設定パラメータ。ハッシュ形式。
|
@@ -123,13 +123,13 @@ module Miyako
|
|
123
123
|
|
124
124
|
def create_text(param, text_block) #:nodoc:
|
125
125
|
init_parameter(param)
|
126
|
-
text_block =
|
126
|
+
text_block = Proc.new{ @text } if @text
|
127
127
|
org_size = @font.size
|
128
128
|
org_color = @font.color
|
129
129
|
@margins = []
|
130
130
|
@heights = []
|
131
131
|
area_size = calc(text_block)
|
132
|
-
@sprite = Sprite.new(
|
132
|
+
@sprite = Sprite.new(:size => area_size, :type => :ac)
|
133
133
|
Drawing.fill(@sprite, [0, 0, 0])
|
134
134
|
Bitmap.ck_to_ac!(@sprite, [0, 0, 0])
|
135
135
|
case @align
|
@@ -140,7 +140,7 @@ module Miyako
|
|
140
140
|
when :right
|
141
141
|
@margins = @margins.map{|v| area_size.w - v }
|
142
142
|
end
|
143
|
-
|
143
|
+
@lines = @margins.length
|
144
144
|
vmargin = 0
|
145
145
|
case @valign
|
146
146
|
when :top
|
@@ -162,9 +162,9 @@ module Miyako
|
|
162
162
|
org_size = @font.size
|
163
163
|
org_color = @font.color
|
164
164
|
olines = @lines
|
165
|
-
|
165
|
+
# calc font size
|
166
166
|
@font.size = @size[1] / @lines
|
167
|
-
|
167
|
+
# calc font size incldue line_height
|
168
168
|
@font.size = @font.size * @font.size / @font.line_height
|
169
169
|
set_font_size_inner(text_block)
|
170
170
|
# over lines?
|
@@ -195,7 +195,7 @@ module Miyako
|
|
195
195
|
when :bottom
|
196
196
|
vmargin = @size[1] - @heights.inject(:+)
|
197
197
|
end
|
198
|
-
@sprite = Sprite.new(
|
198
|
+
@sprite = Sprite.new(:size => @size, :type => :ac)
|
199
199
|
Drawing.fill(@sprite, [0, 0, 0])
|
200
200
|
Bitmap.ck_to_ac!(@sprite, [0, 0, 0])
|
201
201
|
@locate = Point.new(@margins.shift, vmargin)
|
@@ -204,7 +204,7 @@ module Miyako
|
|
204
204
|
@font.color = org_color
|
205
205
|
return @sprite
|
206
206
|
end
|
207
|
-
|
207
|
+
|
208
208
|
def set_font_size_inner(text_block) #:nodoc:
|
209
209
|
@max_height = @font.line_height
|
210
210
|
@margins = []
|
@@ -242,7 +242,7 @@ module Miyako
|
|
242
242
|
end
|
243
243
|
@img_size.w = [@locate.x, @img_size.w].max
|
244
244
|
end
|
245
|
-
|
245
|
+
|
246
246
|
#===Shape.textメソッドのブロック内で使用する、文字描画指示メソッド
|
247
247
|
#(例)Shape.text(){ text "abc" }
|
248
248
|
#(例)Shape.takahashi(:size=>[200,200]){ text "名前重要" }
|
@@ -255,7 +255,7 @@ module Miyako
|
|
255
255
|
@locate.x += @font.text_size(txt)[0]
|
256
256
|
return self
|
257
257
|
end
|
258
|
-
|
258
|
+
|
259
259
|
#===Shape.text/takahashiメソッドのブロック内で使用する、文字色指示メソッド
|
260
260
|
#ブロック内で指定した範囲でのみ色が変更される
|
261
261
|
#(例)Shape.text(){ text "abc"; cr; color(:red){"def"} }
|
@@ -278,7 +278,7 @@ module Miyako
|
|
278
278
|
}
|
279
279
|
return self
|
280
280
|
end
|
281
|
-
|
281
|
+
|
282
282
|
def size_inner(margin, &block) #:nodoc:
|
283
283
|
@locate.y += margin
|
284
284
|
text instance_eval(&block)
|
@@ -294,7 +294,7 @@ module Miyako
|
|
294
294
|
@font.bold{ text instance_eval(&block) }
|
295
295
|
return self
|
296
296
|
end
|
297
|
-
|
297
|
+
|
298
298
|
#===Shape.textメソッドのブロック内で使用する、斜体指示メソッド
|
299
299
|
#ブロック内で指定した範囲でのみ斜体文字になる
|
300
300
|
#(使用すると文字の端が切れてしまう場合あり!)
|
@@ -304,7 +304,7 @@ module Miyako
|
|
304
304
|
@font.italic{ text instance_eval(&block) }
|
305
305
|
return self
|
306
306
|
end
|
307
|
-
|
307
|
+
|
308
308
|
#===Shape.textメソッドのブロック内で使用する、下線指示メソッド
|
309
309
|
#ブロック内で指定した範囲でのみ文字に下線が付く
|
310
310
|
#(例)Shape.text(){ text "abc"; cr; bold{"def"} }
|
@@ -331,10 +331,10 @@ module Miyako
|
|
331
331
|
@locate.y += @max_height
|
332
332
|
return self
|
333
333
|
end
|
334
|
-
|
334
|
+
|
335
335
|
def box(param) #:nodoc:
|
336
336
|
init_parameter(param)
|
337
|
-
s = Sprite.new(size
|
337
|
+
s = Sprite.new(:size => [w, h], :type => :alpha_channel)
|
338
338
|
w = @size[0]
|
339
339
|
h = @size[1]
|
340
340
|
Drawing.fill(s, [0, 0, 0])
|
@@ -363,7 +363,7 @@ module Miyako
|
|
363
363
|
init_parameter(param)
|
364
364
|
w = @size[0]
|
365
365
|
h = @size[1]
|
366
|
-
s = Sprite.new(size
|
366
|
+
s = Sprite.new(:size => @size, :type => :ac)
|
367
367
|
Drawing.fill(s, [0, 0, 0])
|
368
368
|
Bitmap.ck_to_ac!(s, [0, 0, 0])
|
369
369
|
if @edge
|
@@ -377,7 +377,7 @@ module Miyako
|
|
377
377
|
|
378
378
|
def circle(param) #:nodoc:
|
379
379
|
init_parameter(param)
|
380
|
-
s = Sprite.new(size
|
380
|
+
s = Sprite.new(:size => [@ray*2+1, @ray*2+1], :type => :alpha_channel)
|
381
381
|
Drawing.fill(s, [0, 0, 0])
|
382
382
|
Bitmap.ck_to_ac!(s, [0, 0, 0])
|
383
383
|
if @edge
|
@@ -396,7 +396,7 @@ module Miyako
|
|
396
396
|
w2 = w * 2 + 1
|
397
397
|
h = @size[1]
|
398
398
|
h2 = h * 2 + 1
|
399
|
-
s = Sprite.new(size
|
399
|
+
s = Sprite.new(:size => [w2, h2], :type => :alpha_channel)
|
400
400
|
Drawing.fill(s, [0, 0, 0])
|
401
401
|
Bitmap.ck_to_ac!(s, [0, 0, 0])
|
402
402
|
if @edge
|
@@ -410,16 +410,16 @@ module Miyako
|
|
410
410
|
|
411
411
|
def polygon(param) #:nodoc:
|
412
412
|
init_parameter(param)
|
413
|
-
|
413
|
+
|
414
414
|
min_x, max_x = @vertexes.map{|v| v[0]}.minmax
|
415
415
|
min_y, max_y = @vertexes.map{|v| v[1]}.minmax
|
416
|
-
|
416
|
+
|
417
417
|
w = max_x - min_x
|
418
418
|
h = max_y - min_y
|
419
|
-
|
419
|
+
|
420
420
|
@vertexes = @vertexes.map{|v| [v[0]-min_x, v[1]-min_y]}
|
421
|
-
|
422
|
-
s = Sprite.new(size
|
421
|
+
|
422
|
+
s = Sprite.new(:size => [w, h], :type => :alpha_channel)
|
423
423
|
Drawing.fill(s, [0, 0, 0])
|
424
424
|
Bitmap.ck_to_ac!(s, [0, 0, 0])
|
425
425
|
Drawing.polygon(s, @vertexes, Color.to_rgb(@color), true)
|
data/lib/Miyako/API/sprite.rb
CHANGED
data/lib/Miyako/API/story.rb
CHANGED
data/lib/Miyako/API/textbox.rb
CHANGED
@@ -30,7 +30,7 @@ module Miyako
|
|
30
30
|
extend Forwardable
|
31
31
|
|
32
32
|
attr_accessor :textarea, :visible
|
33
|
-
attr_accessor :
|
33
|
+
attr_accessor :waiting, :selecting
|
34
34
|
attr_accessor :font, :margin
|
35
35
|
attr_reader :wait_cursor, :select_cursor, :choices
|
36
36
|
attr_reader :locate, :size, :max_height
|
@@ -89,7 +89,6 @@ module Miyako
|
|
89
89
|
@pre_attach = false
|
90
90
|
|
91
91
|
@waiting = false
|
92
|
-
@select_type = :left
|
93
92
|
@selecting = false
|
94
93
|
|
95
94
|
@textarea.snap(self)
|
@@ -98,10 +97,10 @@ module Miyako
|
|
98
97
|
@fiber = nil
|
99
98
|
|
100
99
|
if @wait_cursor
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
100
|
+
@wait_cursor.snap(self)
|
101
|
+
@default_wait_cursor_position.call(@wait_cursor, self)
|
102
|
+
end
|
103
|
+
@select_cursor.snap(self) if @select_cursor
|
105
104
|
|
106
105
|
@move_list = [
|
107
106
|
[lambda{ },
|
@@ -148,7 +147,6 @@ module Miyako
|
|
148
147
|
@choices.left!.top!
|
149
148
|
|
150
149
|
@waiting = false
|
151
|
-
@select_type = :left
|
152
150
|
@selecting = false
|
153
151
|
|
154
152
|
@textarea = @textarea.dup
|
@@ -156,10 +154,10 @@ module Miyako
|
|
156
154
|
@textarea.centering!
|
157
155
|
|
158
156
|
if @wait_cursor
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
157
|
+
@wait_cursor.snap(self)
|
158
|
+
@default_wait_cursor_position.call(@wait_cursor, self)
|
159
|
+
end
|
160
|
+
@select_cursor.snap(self) if @select_cursor
|
163
161
|
|
164
162
|
@move_list = @move_list.dup
|
165
163
|
end
|
data/lib/Miyako/API/utility.rb
CHANGED
@@ -163,7 +163,7 @@ module Miyako
|
|
163
163
|
y_array = ((y1 / size[1])..(y2 / size[1])).to_a.map{|e| e * size[1]}
|
164
164
|
return x_array.product(y_array)
|
165
165
|
end
|
166
|
-
|
166
|
+
|
167
167
|
#===指定の矩形が格子状のどこに重なっているかを返す
|
168
168
|
# position(Point([x,y])形式)を基準として、矩形rect(Rect([x,y,w,h])形式)が、格子状の並べた矩形
|
169
169
|
# (基準を[0,0]とした、大きさ[size,size]の矩形をタイル状に並べた物)にある場合、
|
@@ -201,7 +201,7 @@ module Miyako
|
|
201
201
|
y_array = [min] + get_step_array_f(min, y2.to_f, sz, skip_even)
|
202
202
|
return x_array.uniq.product(y_array.uniq)
|
203
203
|
end
|
204
|
-
|
204
|
+
|
205
205
|
#===指定の矩形が格子状のどこに重なっているかを返す(実数で指定)
|
206
206
|
#position(Point([x,y])形式)を基準として、矩形rect(Rect([x,y,w,h])形式)が、格子状の並べた矩形
|
207
207
|
#(基準を[0.0,0.0]とした、大きさ[size,size]の矩形をタイル状に並べた物)にある場合、
|