cyross-ruby-miyako 2.0.0 → 2.0.5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. data/README +106 -154
  2. data/defines.h +144 -0
  3. data/{miyako_no_katana/extconf.rb → extconf.rb} +10 -0
  4. data/extern.h +29 -0
  5. data/install_miyako.rb +26 -14
  6. data/lib/Miyako/API/audio.rb +2 -2
  7. data/lib/Miyako/API/basic_data.rb +183 -41
  8. data/lib/Miyako/API/bitmap.rb +474 -2
  9. data/lib/Miyako/API/choices.rb +215 -48
  10. data/lib/Miyako/API/collision.rb +267 -251
  11. data/lib/Miyako/API/diagram.rb +58 -70
  12. data/lib/Miyako/API/drawing.rb +93 -52
  13. data/lib/Miyako/API/fixedmap.rb +233 -120
  14. data/lib/Miyako/API/font.rb +59 -40
  15. data/lib/Miyako/API/input.rb +34 -27
  16. data/lib/Miyako/API/layout.rb +154 -172
  17. data/lib/Miyako/API/map.rb +285 -159
  18. data/lib/Miyako/API/map_event.rb +4 -4
  19. data/lib/Miyako/API/modules.rb +1 -1
  20. data/lib/Miyako/API/movie.rb +8 -5
  21. data/lib/Miyako/API/parts.rb +44 -9
  22. data/lib/Miyako/API/plane.rb +37 -2
  23. data/lib/Miyako/API/screen.rb +90 -22
  24. data/lib/Miyako/API/shape.rb +118 -37
  25. data/lib/Miyako/API/sprite.rb +475 -61
  26. data/lib/Miyako/API/sprite_animation.rb +83 -63
  27. data/lib/Miyako/API/spriteunit.rb +47 -13
  28. data/lib/Miyako/API/story.rb +123 -47
  29. data/lib/Miyako/API/textbox.rb +361 -132
  30. data/lib/Miyako/API/utility.rb +388 -0
  31. data/lib/Miyako/API/viewport.rb +54 -349
  32. data/lib/Miyako/API/yuki.rb +570 -353
  33. data/lib/Miyako/EXT/miyako_cairo.rb +5 -3
  34. data/lib/Miyako/EXT/slides.rb +22 -1
  35. data/lib/Miyako/miyako.rb +12 -13
  36. data/logo/EGSR_logo.png +0 -0
  37. data/logo/EGSR_logo_bg.png +0 -0
  38. data/logo/EGSR_logo_fg.png +0 -0
  39. data/logo/EGSR_title_banner.png +0 -0
  40. data/logo/EGSR_title_logo.png +0 -0
  41. data/logo/miyako.png +0 -0
  42. data/logo/miyako_banner.png +0 -0
  43. data/logo/space.png +0 -0
  44. data/miyako_basicdata.c +590 -0
  45. data/miyako_bitmap.c +1225 -0
  46. data/miyako_collision.c +403 -0
  47. data/miyako_drawing.c +187 -0
  48. data/miyako_font.c +334 -0
  49. data/miyako_hsv.c +830 -0
  50. data/miyako_layout.c +191 -0
  51. data/miyako_no_katana.c +1074 -0
  52. data/miyako_transform.c +438 -0
  53. data/miyako_utility.c +288 -0
  54. data/sample/Animation1/m1ku.rb +10 -31
  55. data/sample/Animation1/readme.txt +6 -6
  56. data/sample/Animation2/lex.rb +1 -0
  57. data/sample/Animation2/readme.txt +6 -6
  58. data/sample/Diagram_sample/diagram_sample_yuki2.rb +152 -48
  59. data/sample/Diagram_sample/readme.txt +9 -6
  60. data/sample/Room3/blue.rb +234 -187
  61. data/sample/Room3/ending.rb +68 -63
  62. data/sample/Room3/green.rb +159 -124
  63. data/sample/Room3/main.rb +50 -32
  64. data/sample/Room3/main_component.rb +3 -2
  65. data/sample/Room3/readme.txt +6 -6
  66. data/sample/Room3/red.rb +161 -134
  67. data/sample/Room3/room3.rb +1 -0
  68. data/sample/Room3/title.rb +75 -62
  69. data/sample/ball_action_sample.rb +204 -0
  70. data/sample/blit_rop.rb +70 -0
  71. data/sample/cairo_sample.rb +25 -0
  72. data/sample/circle_collision_test.rb +66 -0
  73. data/sample/collision_test.rb +33 -0
  74. data/sample/collision_test2.rb +108 -0
  75. data/sample/fixed_map_test/fixed_map_sample.rb +23 -32
  76. data/sample/fixed_map_test/readme.txt +38 -38
  77. data/sample/map_test/chara.rb +17 -9
  78. data/sample/map_test/main_parts.rb +30 -9
  79. data/sample/map_test/main_scene.rb +57 -41
  80. data/sample/map_test/map_manager.rb +13 -30
  81. data/sample/map_test/map_test.rb +2 -2
  82. data/sample/map_test/oasis.rb +17 -11
  83. data/sample/map_test/readme.txt +50 -48
  84. data/sample/map_test/route.rb +46 -33
  85. data/sample/map_test/town.rb +19 -13
  86. data/sample/polygon_test.rb +35 -0
  87. data/sample/rasterscroll.rb +25 -0
  88. data/sample/takahashi.rb +42 -0
  89. data/sample/text.png +0 -0
  90. data/sample/textbox_sample.rb +190 -0
  91. data/sample/transform.rb +54 -0
  92. data/sample/utility_test.rb +73 -0
  93. data/sample/utility_test2.rb +61 -0
  94. data/sample/utility_test3.rb +64 -0
  95. data/sample/utility_test4.rb +73 -0
  96. data/uninstall_miyako.rb +19 -0
  97. data/win/miyako_no_katana.so +0 -0
  98. metadata +165 -148
  99. data/miyako.png +0 -0
  100. data/miyako_banner.png +0 -0
  101. data/miyako_no_katana/miyako_no_katana.c +0 -3301
  102. data/sample/fixed_map_test/map_sample.rb +0 -121
@@ -1,3 +1,4 @@
1
+ # -*- encoding: utf-8 -*-
1
2
  # エンディング定義
2
3
  class Ending
3
4
  include Story::Scene
@@ -5,6 +6,14 @@ class Ending
5
6
 
6
7
  def init
7
8
  @yuki = Yuki.new
9
+
10
+ def @yuki.text_wait(*txt)
11
+ txt.each{|t|
12
+ text t
13
+ wait 0.3
14
+ }
15
+ end
16
+
8
17
  @yuki.select_textbox(message_box[:box])
9
18
  @bg = Sprite.new(:file => "image/congratulation_bg.png", :type => :as)
10
19
  @bg.oh = @bg.h / 2
@@ -35,6 +44,7 @@ class Ending
35
44
  @end_roll.snap(message_box)
36
45
  @end_roll.centering
37
46
  @yuki.regist_parts(:end_roll, @end_roll)
47
+ @yuki.vars[:staff_roll] = self.method(:staff_roll)
38
48
 
39
49
  @exec = self.method(:view_in1)
40
50
  end
@@ -74,7 +84,7 @@ class Ending
74
84
  def view_in2
75
85
  if @timer.finish?
76
86
  @exec = self.method(:plot_executing)
77
- @yuki.exec_plot(self.method(:plot))
87
+ @yuki.start_plot(plot)
78
88
  end
79
89
  return @now
80
90
  end
@@ -91,68 +101,63 @@ class Ending
91
101
  return r
92
102
  end
93
103
 
94
- def plot(yuki)
95
- yuki.text "「コ〜ン "
96
- yuki.wait 0.3
97
- yuki.text "グラッチュ "
98
- yuki.wait 0.3
99
- yuki.text "レ〜ショ〜ン♪」"
100
- yuki.pause.cr
101
- yuki.text "「いやぁ、"
102
- yuki.wait 0.2
103
- yuki.text "見事難関をクリアしたとはオドロキだ!"
104
- yuki.pause.cr
105
- yuki.text " 君には全くもって、感服だ!」"
106
- yuki.pause.clear
107
- yuki.text "「勿論、クリアしたんだから"
108
- yuki.wait 0.5
109
- yuki.cr
110
- yuki.text " 商品をプレゼントしなくちゃね!」"
111
- yuki.pause.clear
112
- text_wait "「まずは", "・", "・", "・"
113
- yuki.text "「青いはいからうどん」1年分!"
114
- yuki.wait 0.5
115
- yuki.cr
116
- text_wait " 次に", "・", "・", "・"
117
- yuki.text "いつも真っ赤「炎天下ツアー」!"
118
- yuki.wait 0.5
119
- yuki.cr
120
- text_wait " 最後に", "・", "・", "・"
121
- yuki.text "「緑のバルーン」提供の沖縄旅行!"
122
- yuki.wait 0.5
123
- yuki.cr
124
- yuki.text " 現地集合現地解散!"
125
- yuki.wait 0.5
126
- yuki.cr
127
- yuki.text " さ、遠慮せずにうけとってくれ!」"
128
- yuki.pause.clear
129
- yuki.text "「今日は見事クリアされたけど、"
130
- yuki.cr
131
- yuki.text " 次回はもっと"
132
- yuki.color(:red){ "ヒィヒィ"}
133
- yuki.text "言わせる"
134
- yuki.cr
135
- yuki.text " 仕掛けを用意するから覚悟しとけよ〜!」"
136
- yuki.pause.clear
137
- yuki.text "「次回の挑戦者はキミだ!"
138
- yuki.wait 0.5
139
- yuki.cr
140
- yuki.text " じゃ、また来週! "
141
- yuki.wait 0.5
142
- yuki.text "バイバ〜イ!」"
143
- yuki.pause.clear
144
- staff_roll
145
- yuki.show :end_roll
146
- yuki.pause.clear
147
- yuki.hide :end_roll
148
- return nil
149
- end
150
-
151
- def text_wait(*txt)
152
- txt.each{|t|
153
- @yuki.text t
154
- @yuki.wait 0.3
155
- }
104
+ def plot
105
+ yuki_plot do
106
+ text "「コ〜ン "
107
+ wait 0.3
108
+ text "グラッチュ "
109
+ wait 0.3
110
+ text "レ〜ショ〜ン♪」"
111
+ pause.cr
112
+ text "「いやぁ、"
113
+ wait 0.2
114
+ text "見事難関をクリアしたとはオドロキだ!"
115
+ pause.cr
116
+ text " 君には全くもって、感服だ!」"
117
+ pause.clear
118
+ text "「勿論、クリアしたんだから"
119
+ wait 0.5
120
+ cr
121
+ text " 商品をプレゼントしなくちゃね!」"
122
+ pause.clear
123
+ text_wait "「まずは", "・", "・", "・"
124
+ text "「青いはいからうどん」1年分!"
125
+ wait 0.5
126
+ cr
127
+ text_wait " 次に", "・", "・", "・"
128
+ text "いつも真っ赤「炎天下ツアー」!"
129
+ wait 0.5
130
+ cr
131
+ text_wait " 最後に", "・", "・", "・"
132
+ text "「緑のバルーン」提供の沖縄旅行!"
133
+ wait 0.5
134
+ cr
135
+ text " 現地集合現地解散!"
136
+ wait 0.5
137
+ cr
138
+ text " さ、遠慮せずにうけとってくれ!」"
139
+ pause.clear
140
+ text "「今日は見事クリアされたけど、"
141
+ cr
142
+ text " 次回はもっと"
143
+ color(:red){ "ヒィヒィ"}
144
+ text "言わせる"
145
+ cr
146
+ text " 仕掛けを用意するから覚悟しとけよ〜!」"
147
+ pause.clear
148
+ text "「次回の挑戦者はキミだ!"
149
+ wait 0.5
150
+ cr
151
+ text " じゃ、また来週! "
152
+ wait 0.5
153
+ text "バイバ〜イ!」"
154
+ pause.clear
155
+ vars[:staff_roll].call
156
+ show :end_roll
157
+ pause.clear
158
+ hide :end_roll
159
+ nil
160
+ end
156
161
  end
157
162
 
158
163
  def staff_roll
@@ -1,3 +1,4 @@
1
+ # -*- encoding: utf-8 -*-
1
2
  class Green
2
3
  include Story::Scene
3
4
  include MainComponent
@@ -17,12 +18,19 @@ class Green
17
18
  var[:release_aoyama_book] = false if var[:release_aoyama_book] == nil
18
19
  var[:midori_talk] = 0 if var[:midori_talk] == nil
19
20
 
20
- @talks = Array.new(6){|i| self.method("talk#{i}".to_sym)}
21
+ @talks = Array.new(6){|i| self.method("talk#{i}".to_sym).call}
22
+
23
+ @yuki.vars[:var] = var
24
+ @yuki.vars[:main_command] = main_command
25
+ @yuki.vars[:command] = get_command
26
+ @yuki.vars[:talks] = @talks
21
27
  end
22
28
 
23
29
  def setup
24
30
  @yuki.setup
25
- @yuki.exec_plot(self.method(:plot))
31
+ message_box.start
32
+ command_box.start
33
+ @yuki.start_plot(plot)
26
34
  end
27
35
 
28
36
  def update
@@ -32,7 +40,7 @@ class Green
32
40
  @yuki.update
33
41
  r = @yuki.executing? ? @now : @yuki.result
34
42
  if @yuki.is_scenario?(r)
35
- @yuki.exec_plot(r)
43
+ @yuki.start_plot(r)
36
44
  r = @now
37
45
  end
38
46
  return r
@@ -46,136 +54,163 @@ class Green
46
54
  end
47
55
 
48
56
  def get_command
49
- return [Yuki::Command.new("挨拶する", nil, lambda{var[:midori_aisatsu]==false}, self.method(:green2)),
50
- Yuki::Command.new("辺りを見る", nil, lambda{var[:midori_aisatsu]==true}, self.method(:look_green)),
51
- Yuki::Command.new("話す", nil, lambda{var[:midori_aisatsu]==true}, self.method(:talk)),
52
- Yuki::Command.new("戻る", nil, lambda{var[:midori_aisatsu]==true}, MainScene)]
57
+ return [Yuki::Command.new("挨拶する", nil, lambda{var[:midori_aisatsu]==false}, green2),
58
+ Yuki::Command.new("辺りを見る", nil, lambda{var[:midori_aisatsu]==true}, look_green),
59
+ Yuki::Command.new("話す", nil, lambda{var[:midori_aisatsu]==true}, talk),
60
+ Yuki::Command.new("戻る", nil, lambda{var[:midori_aisatsu]==true}, MainScene)]
53
61
  end
54
62
 
55
- def plot(yuki)
56
- yuki.text "緑の扉から中に入った。"
57
- yuki.pause.clear
58
- yuki.show :midori
59
- yuki.text "目の前には"
60
- yuki.color(:green){var[:midori_aisatsu]==true ? "みどりさん" : "女の人"}
61
- yuki.text "が居る。"
62
- yuki.cr
63
- return self.method(:main_command)
63
+ def plot
64
+ yuki_plot do
65
+ text "緑の扉から中に入った。"
66
+ pause.clear
67
+ show :midori
68
+ text "目の前には"
69
+ color(:green){vars[:var][:midori_aisatsu]==true ? "みどりさん" : "女の人"}
70
+ text "が居る。"
71
+ cr
72
+ vars[:main_command]
73
+ end
64
74
  end
65
75
 
66
- def main_command(yuki)
76
+ def main_command
77
+ yuki_plot do
67
78
  loop do
68
- yuki.text "どうする?"
69
- yuki.command get_command
70
- yuki.clear
71
- return yuki.select_result if yuki.is_scene?(yuki.select_result)
72
- yuki.select_result.call(yuki) if yuki.is_scenario?(yuki.select_result)
79
+ text "どうする?"
80
+ command vars[:command]
81
+ clear
82
+ break select_result if is_scene?(select_result)
83
+ call_plot(select_result) if is_scenario?(select_result)
84
+ end
85
+ end
86
+ end
87
+
88
+ def green2
89
+ yuki_plot do
90
+ text "「私の名前はみどり。よろしくぅ」"
91
+ pause.clear
92
+ vars[:var][:midori_aisatsu]=true
93
+ end
94
+ end
95
+
96
+ def look_green
97
+ yuki_plot do
98
+ text "部屋の中は、いたってシンプルだ。"
99
+ pause.cr
100
+ text "女の子らしく、鏡台がある。"
101
+ pause.clear
73
102
  end
74
103
  end
75
104
 
76
- def green2(yuki)
77
- yuki.text "「私の名前はみどり。よろしくぅ」"
78
- yuki.pause.clear
79
- var[:midori_aisatsu]=true
80
- end
81
-
82
- def look_green(yuki)
83
- yuki.text "部屋の中は、いたってシンプルだ。"
84
- yuki.pause.cr
85
- yuki.text "女の子らしく、鏡台がある。"
86
- yuki.pause.clear
87
- end
88
-
89
- def talk(yuki)
90
- @talks[var[:midori_talk]].call(yuki)
91
- end
92
-
93
- def talk0(yuki)
94
- yuki.text "「普通の大学生よぉ。」"
95
- yuki.pause.clear
96
- var[:midori_talk] += 1
97
- end
98
-
99
- def talk1(yuki)
100
- yuki.text "「最近はぁ、"
101
- yuki.wait 0.3
102
- yuki.cr
103
- yuki.text " お菓子作りにぃ、"
104
- yuki.wait 0.3
105
- yuki.cr
106
- yuki.text " 凝ってる、"
107
- yuki.wait 0.3
108
- yuki.text "みたいな?」"
109
- yuki.pause.clear
110
- var[:midori_talk] += 1
111
- end
112
-
113
- def talk2(yuki)
114
- yuki.text "「・・・え、"
115
- yuki.wait 0.3
116
- yuki.text "流行らないってぇ?"
117
- yuki.wait 0.3
118
- yuki.cr
119
- yuki.text " 駄目よぉ。流行に流されてちゃ。」"
120
- yuki.pause.clear
121
- var[:midori_talk] += 1
122
- end
123
-
124
- def talk3(yuki)
125
- yuki.text "「何事もぉ、"
126
- yuki.wait 0.3
127
- yuki.cr
128
- yuki.text " ゴーイングマイウェイってやっていかないとぉ、"
129
- yuki.wait 0.3
130
- yuki.cr
131
- yuki.text " 体持たないよっ!?」"
132
- yuki.pause.clear
133
- var[:midori_talk] += 1
134
- end
135
-
136
- def talk4(yuki)
137
- yuki.text "「・・・ああ、そうそう!"
138
- yuki.wait 0.3
139
- yuki.cr
140
- yuki.text " この本、"
141
- yuki.wait 0.3
142
- yuki.text "隣の青山くんのところから"
143
- yuki.cr
144
- yuki.text " 借りてきてたんだけどぉ、"
145
- yuki.cr
146
- yuki.text " 返しといてくれないかなぁ?"
147
- yuki.wait 1.0
148
- yuki.text "・"
149
- yuki.wait 0.5
150
- yuki.text "・"
151
- yuki.wait 0.5
152
- yuki.text "・"
153
- yuki.wait 1.0
154
- yuki.clear
155
- yuki.size(32){
156
- yuki.color(:red){
157
- yuki.text " さっさと"
158
- yuki.wait 0.5
159
- yuki.cr
160
- yuki.text " 持って行け"
161
- yuki.wait 0.5
162
- yuki.cr
163
- yuki.text " っつてんだろぉ!"
105
+ def talk
106
+ yuki_plot do
107
+ call_plot(vars[:talks][vars[:var][:midori_talk]])
108
+ end
109
+ end
110
+
111
+ def talk0
112
+ yuki_plot do
113
+ text "「普通の大学生よぉ。」"
114
+ pause.clear
115
+ vars[:var][:midori_talk] += 1
116
+ end
117
+ end
118
+
119
+ def talk1
120
+ yuki_plot do
121
+ text "「最近はぁ、"
122
+ wait 0.3
123
+ cr
124
+ text " お菓子作りにぃ、"
125
+ wait 0.3
126
+ cr
127
+ text " 凝ってる、"
128
+ wait 0.3
129
+ text "みたいな?」"
130
+ pause.clear
131
+ vars[:var][:midori_talk] += 1
132
+ end
133
+ end
134
+
135
+ def talk2
136
+ yuki_plot do
137
+ text "「・・・え、"
138
+ wait 0.3
139
+ text "流行らないってぇ?"
140
+ wait 0.3
141
+ cr
142
+ text " 駄目よぉ。流行に流されてちゃ。」"
143
+ pause.clear
144
+ vars[:var][:midori_talk] += 1
145
+ end
146
+ end
147
+
148
+ def talk3
149
+ yuki_plot do
150
+ text "「何事もぉ、"
151
+ wait 0.3
152
+ cr
153
+ text " ゴーイングマイウェイってやっていかないとぉ、"
154
+ wait 0.3
155
+ cr
156
+ text " 体持たないよっ!?」"
157
+ pause.clear
158
+ vars[:var][:midori_talk] += 1
159
+ end
160
+ end
161
+
162
+ def talk4
163
+ yuki_plot do
164
+ text "「・・・ああ、そうそう!"
165
+ wait 0.3
166
+ cr
167
+ text " この本、"
168
+ wait 0.3
169
+ text "隣の青山くんのところから"
170
+ cr
171
+ text " 借りてきてたんだけどぉ、"
172
+ cr
173
+ text " 返しといてくれないかなぁ?"
174
+ wait 1.0
175
+ text ""
176
+ wait 0.5
177
+ text "・"
178
+ wait 0.5
179
+ text "・"
180
+ wait 1.0
181
+ clear
182
+ size(32){
183
+ color(:red){
184
+ text " さっさと"
185
+ wait 0.5
186
+ cr
187
+ text " 持って行け"
188
+ wait 0.5
189
+ cr
190
+ text " っつてんだろぉ!"
191
+ }
164
192
  }
165
- }
166
- yuki.text "」"
167
- yuki.pause.clear
168
- yuki.text "ひゃあ。"
169
- yuki.wait 0.5
170
- yuki.text " 結局、本を無理矢理渡された。"
171
- yuki.pause.clear
172
- var[:release_aoyama_book] = true
173
- var[:midori_talk] += 1
174
- end
175
-
176
- def talk5(yuki)
177
- yuki.text "「ちゃんと本渡してくれたぁ?」"
178
- yuki.pause.clear
193
+ text "」"
194
+ pause.clear
195
+ text "ひゃあ。"
196
+ wait 0.5
197
+ text " 結局、本を無理矢理渡された。"
198
+ pause.clear
199
+ vars[:var][:release_aoyama_book] = true
200
+ vars[:var][:midori_talk] += 1
201
+ end
202
+ end
203
+
204
+ def talk5
205
+ yuki_plot do
206
+ text "「ちゃんと本渡してくれたぁ?」"
207
+ pause.clear
208
+ end
209
+ end
210
+
211
+ def final
212
+ message_box.stop
213
+ command_box.stop
179
214
  end
180
215
 
181
216
  def dispose