cyross-ruby-miyako 2.0.5.1.0 → 2.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 (91) hide show
  1. data/README +1092 -929
  2. data/Rakefile +7 -7
  3. data/defines.h +144 -144
  4. data/extern.h +29 -29
  5. data/install_miyako.rb +87 -87
  6. data/lib/Miyako/API/audio.rb +572 -198
  7. data/lib/Miyako/API/basic_data.rb +825 -573
  8. data/lib/Miyako/API/bitmap.rb +534 -507
  9. data/lib/Miyako/API/choices.rb +481 -475
  10. data/lib/Miyako/API/collision.rb +486 -460
  11. data/lib/Miyako/API/diagram.rb +586 -561
  12. data/lib/Miyako/API/drawing.rb +151 -151
  13. data/lib/Miyako/API/exceptions.rb +105 -0
  14. data/lib/Miyako/API/fixedmap.rb +462 -428
  15. data/lib/Miyako/API/font.rb +430 -403
  16. data/lib/Miyako/API/input.rb +456 -447
  17. data/lib/Miyako/API/layout.rb +636 -433
  18. data/lib/Miyako/API/map.rb +583 -529
  19. data/lib/Miyako/API/map_event.rb +222 -198
  20. data/lib/Miyako/API/modules.rb +357 -109
  21. data/lib/Miyako/API/movie.rb +166 -154
  22. data/lib/Miyako/API/parts.rb +276 -189
  23. data/lib/Miyako/API/plane.rb +205 -166
  24. data/lib/Miyako/API/screen.rb +341 -325
  25. data/lib/Miyako/API/shape.rb +443 -443
  26. data/lib/Miyako/API/sprite.rb +771 -752
  27. data/lib/Miyako/API/sprite_animation.rb +490 -481
  28. data/lib/Miyako/API/sprite_list.rb +1135 -0
  29. data/lib/Miyako/API/spriteunit.rb +168 -147
  30. data/lib/Miyako/API/story.rb +350 -300
  31. data/lib/Miyako/API/textbox.rb +770 -725
  32. data/lib/Miyako/API/utility.rb +419 -388
  33. data/lib/Miyako/API/viewport.rb +189 -139
  34. data/lib/Miyako/API/yuki.rb +1226 -996
  35. data/lib/Miyako/EXT/miyako_cairo.rb +62 -62
  36. data/lib/Miyako/EXT/raster_scroll.rb +138 -138
  37. data/lib/Miyako/EXT/slides.rb +157 -157
  38. data/lib/Miyako/miyako.rb +201 -171
  39. data/lib/Miyako/miyako_require_only.rb +35 -0
  40. data/miyako_basicdata.c +590 -590
  41. data/miyako_bitmap.c +1225 -1225
  42. data/miyako_collision.c +403 -403
  43. data/miyako_drawing.c +187 -187
  44. data/miyako_font.c +334 -334
  45. data/miyako_hsv.c +830 -830
  46. data/miyako_input_audio.c +254 -0
  47. data/miyako_layout.c +191 -191
  48. data/miyako_no_katana.c +1078 -1074
  49. data/miyako_sprite2.c +431 -0
  50. data/miyako_transform.c +438 -438
  51. data/miyako_utility.c +288 -288
  52. data/sample/Animation1/m1ku.rb +68 -68
  53. data/sample/Animation2/lex.rb +96 -96
  54. data/sample/Diagram_sample/diagram_sample_yuki2.rb +328 -386
  55. data/sample/Room3/blue.rb +297 -297
  56. data/sample/Room3/ending.rb +180 -180
  57. data/sample/Room3/green.rb +220 -220
  58. data/sample/Room3/main.rb +119 -119
  59. data/sample/Room3/main_component.rb +59 -59
  60. data/sample/Room3/red.rb +227 -227
  61. data/sample/Room3/room3.rb +25 -27
  62. data/sample/Room3/title.rb +184 -184
  63. data/sample/ball_action_sample.rb +204 -204
  64. data/sample/blit_rop.rb +70 -70
  65. data/sample/cairo_sample.rb +25 -25
  66. data/sample/circle_collision_test.rb +66 -66
  67. data/sample/collision_test.rb +33 -33
  68. data/sample/collision_test2.rb +108 -108
  69. data/sample/fixed_map_test/fixed_map_sample.rb +140 -140
  70. data/sample/fixed_map_test/readme.txt +72 -72
  71. data/sample/map_test/chara.rb +58 -58
  72. data/sample/map_test/main_parts.rb +69 -69
  73. data/sample/map_test/main_scene.rb +153 -153
  74. data/sample/map_test/map_manager.rb +75 -75
  75. data/sample/map_test/map_test.rb +23 -23
  76. data/sample/map_test/oasis.rb +71 -71
  77. data/sample/map_test/readme.txt +89 -89
  78. data/sample/map_test/route.rb +157 -157
  79. data/sample/map_test/town.rb +74 -74
  80. data/sample/polygon_test.rb +35 -35
  81. data/sample/rasterscroll.rb +24 -24
  82. data/sample/takahashi.rb +42 -42
  83. data/sample/textbox_sample.rb +189 -189
  84. data/sample/transform.rb +54 -54
  85. data/sample/utility_test.rb +73 -73
  86. data/sample/utility_test2.rb +61 -61
  87. data/sample/utility_test3.rb +64 -64
  88. data/sample/utility_test4.rb +73 -73
  89. data/uninstall_miyako.rb +19 -19
  90. data/win/miyako_no_katana.so +0 -0
  91. metadata +7 -2
@@ -1,204 +1,204 @@
1
- # encoding: utf-8
2
- # 自由落下運動サンプル
3
- # 2009.4.19 Cyross Makoto
4
-
5
- require 'Miyako/miyako'
6
-
7
- include Miyako
8
-
9
- # 基本オブジェクト
10
- class Obj
11
- include Layout
12
-
13
- attr_reader :collision, :position
14
-
15
- def initialize(size)
16
- init_layout
17
- set_layout_size(*size.to_a)
18
-
19
- # スプライトの生成
20
- @sprite = Sprite.new(size: size, type: :ac)
21
-
22
- # コリジョンの生成
23
- @collision = Collision.new(Rect.new(0, 0, *size.to_a))
24
-
25
- # 位置情報の生成
26
- @position = Point.new(0, 0)
27
- end
28
-
29
- def update_layout_position
30
- # 画像はマージンが掛かっている可能性があるため、
31
- # 補正を掛けておく
32
- @sprite.move(@layout.pos[0]-@position[0],
33
- @layout.pos[1]-@position[1])
34
- @position.move_to(*@layout.pos.to_a)
35
- end
36
-
37
- # スプライトとコリジョン間でマージンを設定
38
- def margin(dx, dy)
39
- @sprite.move(dx, dy)
40
- return self
41
- end
42
-
43
- # 衝突判定
44
- def collision?(col, pos)
45
- return @collision.collision?(@position, col, pos)
46
- end
47
-
48
- # 画面へ描画
49
- def render
50
- @sprite.render
51
- end
52
- end
53
-
54
- # ボール
55
- class Ball < Obj
56
- V0 = [4.0, 6.0, 8.0, 12.0].cycle
57
- VX = [1, -1].cycle
58
- G = 9.8
59
-
60
- # 初速度の取得
61
- attr_reader :v0
62
-
63
- def initialize
64
- size = Size.new(32, 32)
65
- super(size)
66
- Drawing.circle(@sprite,
67
- [size.w/2,size.h/2],
68
- size.w/2,
69
- [255,255,255],
70
- true)
71
-
72
- # ジャンプ中?
73
- @jumping = false
74
- # y基準位置
75
- @by = 0.0
76
- # 元y
77
- @oy = 0.0
78
- # 速度
79
- @v = 0.0
80
- # 初速度
81
- @v0 = 0.0
82
- # 時間
83
- @t = 0.0
84
- # 時間刻み
85
- @dt = 0.01
86
- # 床の跳ね返り係数
87
- # 0.9や0.8にすると永遠に跳ねる
88
- @e = 0.5
89
- # 拡大率
90
- @zoom = 1.0 / @dt
91
- # ウェイト
92
- @wait = WaitCounter.new(@dt)
93
- end
94
-
95
- # ボールの更新
96
- # 床(floor)を引数に取る
97
- def update(floor)
98
- if @jumping
99
- # 放物運動の公式より。
100
- # 当たり判定のテストも兼ねていることから、
101
- # 整数単位の値が必要だったため、時間刻みを元に値を拡大している
102
- y = (@v0 * @t - G * (@t ** 2) / 2) * @zoom
103
- # 移動量の算出
104
- dy = y - @oy
105
- # 床とぶつかる?
106
- # 移動範囲を作成
107
- rect = Rect.new(@position.x,
108
- @position.y,
109
- 1, -dy)
110
- # 所定の間隔で床と衝突判定
111
- if Utility.product_liner_f(rect, floor.h).any?{|pos|
112
- @collision.collision?(pos,
113
- floor.collision,
114
- floor.position)
115
- }
116
- # 床にぶつかれば跳ね返る
117
- self.move_to(self.x, @by)
118
- # 跳ね返り時の速度を求める。
119
- # 実数にすると何故か永遠にはねるため、整数化して強制的に値を少なくしている
120
- @v0 = -((@v0 - G * @t) * @e).to_i
121
- @t = @dt
122
- @oy = 0.0
123
- @wait.start
124
- elsif @wait.finish?
125
- # ぶつからなければ移動
126
- self.move_to(self.x, @by - y.to_i)
127
- @t = @t + @dt
128
- @oy = y
129
- @wait.start
130
- end
131
- # 初速度がゼロ?(止まった?)
132
- if @v0 == 0.0
133
- # ジャンプの終了
134
- @wait.stop
135
- @jumping = false
136
- end
137
- end
138
- end
139
-
140
- # 飛び上がれ!
141
- def jumpup
142
- return if @jumping
143
- # y基準位置の決定
144
- @by = self.y.to_f
145
- # 初速度の決定
146
- @v0 = V0.next
147
- @jumping = true
148
- @t = @dt
149
- @wait.start
150
- end
151
-
152
- # ジャンプ中?
153
- def jumping?
154
- return @jumping
155
- end
156
- end
157
-
158
- # 床
159
- class Floor < Obj
160
- def initialize
161
- size = Size.new(640, 16)
162
- super(size)
163
- Drawing.fill(@sprite, [255,64,64])
164
- end
165
- end
166
-
167
- # ボールの用意
168
- @ball = Ball.new
169
-
170
- # 床の用意
171
- @floor = Floor.new
172
-
173
- # 床の初期位置設定
174
- @floor.center.bottom
175
-
176
- # ボールの初期位置設定
177
- @ball.center.bottom{|b| @floor.size.h }
178
-
179
- # フォントの用意
180
- @font = Font.serif
181
- @font.size = 16
182
-
183
- # 情報表示用スプライトの用意
184
- @speed = Sprite.new(size: Size.new(640, 16), type: :ac)
185
- @info = Shape.text(font: @font, text: "1ボタンを押せばボールが跳ね上がります")
186
- @info.snap(@speed).left.outside_bottom
187
-
188
- Miyako.main_loop do
189
- break if Input.quit_or_escape?
190
- @ball.update(@floor)
191
- # 1ボタンを押した時、ボールのジャンプを始める
192
- @ball.jumpup if Input.pushed_any?(:btn1)
193
-
194
- # 初速度表示スプライトの更新
195
- @speed.clear!
196
- @font.draw_text(@speed, "初速度:#{@ball.v0}", 0, 0)
197
-
198
- # 画面への描画
199
- @floor.render
200
- @ball.render
201
- @speed.render
202
- # ジャンプ中でなければ説明を表示
203
- @info.render unless @ball.jumping?
204
- end
1
+ # encoding: utf-8
2
+ # 自由落下運動サンプル
3
+ # 2009.4.19 Cyross Makoto
4
+
5
+ require 'Miyako/miyako'
6
+
7
+ include Miyako
8
+
9
+ # 基本オブジェクト
10
+ class Obj
11
+ include Layout
12
+
13
+ attr_reader :collision, :position
14
+
15
+ def initialize(size)
16
+ init_layout
17
+ set_layout_size(*size.to_a)
18
+
19
+ # スプライトの生成
20
+ @sprite = Sprite.new(size: size, type: :ac)
21
+
22
+ # コリジョンの生成
23
+ @collision = Collision.new(Rect.new(0, 0, *size.to_a))
24
+
25
+ # 位置情報の生成
26
+ @position = Point.new(0, 0)
27
+ end
28
+
29
+ def update_layout_position
30
+ # 画像はマージンが掛かっている可能性があるため、
31
+ # 補正を掛けておく
32
+ pos = @layout.pos.move(-@position[0],-@position[1])
33
+ @sprite.move!(*pos)
34
+ @position.move_to!(*@layout.pos)
35
+ end
36
+
37
+ # スプライトとコリジョン間でマージンを設定
38
+ def margin(dx, dy)
39
+ @sprite.move!(dx, dy)
40
+ return self
41
+ end
42
+
43
+ # 衝突判定
44
+ def collision?(col, pos)
45
+ return @collision.collision?(@position, col, pos)
46
+ end
47
+
48
+ # 画面へ描画
49
+ def render
50
+ @sprite.render
51
+ end
52
+ end
53
+
54
+ # ボール
55
+ class Ball < Obj
56
+ V0 = [8.0, 12.0].cycle
57
+ VX = [1, -1].cycle
58
+ G = 9.8
59
+
60
+ # 初速度の取得
61
+ attr_reader :v0
62
+
63
+ def initialize
64
+ size = Size.new(32, 32)
65
+ super(size)
66
+ Drawing.circle(@sprite,
67
+ [size.w/2,size.h/2],
68
+ size.w/2,
69
+ [255,255,255],
70
+ true)
71
+
72
+ # ジャンプ中?
73
+ @jumping = false
74
+ # y基準位置
75
+ @by = 0.0
76
+ # 元y
77
+ @oy = 0.0
78
+ # 速度
79
+ @v = 0.0
80
+ # 初速度
81
+ @v0 = 0.0
82
+ # 時間
83
+ @t = 0.0
84
+ # 時間刻み
85
+ @dt = 0.01
86
+ # 床の跳ね返り係数
87
+ # 0.9や0.8にすると永遠に跳ねる
88
+ @e = 0.5
89
+ # 拡大率
90
+ @zoom = 1.0 / @dt
91
+ # ウェイト
92
+ @wait = WaitCounter.new(@dt)
93
+ end
94
+
95
+ # ボールの更新
96
+ # 床(floor)を引数に取る
97
+ def update(floor)
98
+ if @jumping
99
+ # 放物運動の公式より。
100
+ # 当たり判定のテストも兼ねていることから、
101
+ # 整数単位の値が必要だったため、時間刻みを元に値を拡大している
102
+ y = (@v0 * @t - G * (@t ** 2) / 2) * @zoom
103
+ # 移動量の算出
104
+ dy = y - @oy
105
+ # 床とぶつかる?
106
+ # 移動範囲を作成
107
+ rect = Rect.new(@position.x,
108
+ @position.y,
109
+ 1, -dy)
110
+ # 所定の間隔で床と衝突判定
111
+ if Utility.product_liner_f(rect, floor.h).any?{|pos|
112
+ @collision.collision?(pos,
113
+ floor.collision,
114
+ floor.position)
115
+ }
116
+ # 床にぶつかれば跳ね返る
117
+ self.move_to!(self.x, @by)
118
+ # 跳ね返り時の速度を求める。
119
+ # 実数にすると何故か永遠にはねるため、整数化して強制的に値を少なくしている
120
+ @v0 = -((@v0 - G * @t) * @e).to_i
121
+ @t = @dt
122
+ @oy = 0.0
123
+ @wait.start
124
+ elsif @wait.finish?
125
+ # ぶつからなければ移動
126
+ self.move_to!(self.x, @by - y.to_i)
127
+ @t = @t + @dt
128
+ @oy = y
129
+ @wait.start
130
+ end
131
+ # 初速度がゼロ?(止まった?)
132
+ if @v0 == 0.0
133
+ # ジャンプの終了
134
+ @wait.stop
135
+ @jumping = false
136
+ end
137
+ end
138
+ end
139
+
140
+ # 飛び上がれ!
141
+ def jumpup
142
+ return if @jumping
143
+ # y基準位置の決定
144
+ @by = self.y.to_f
145
+ # 初速度の決定
146
+ @v0 = V0.next
147
+ @jumping = true
148
+ @t = @dt
149
+ @wait.start
150
+ end
151
+
152
+ # ジャンプ中?
153
+ def jumping?
154
+ return @jumping
155
+ end
156
+ end
157
+
158
+ # 床
159
+ class Floor < Obj
160
+ def initialize
161
+ size = Size.new(640, 16)
162
+ super(size)
163
+ Drawing.fill(@sprite, [255,64,64])
164
+ end
165
+ end
166
+
167
+ # ボールの用意
168
+ @ball = Ball.new
169
+
170
+ # 床の用意
171
+ @floor = Floor.new
172
+
173
+ # 床の初期位置設定
174
+ @floor.center!.bottom!
175
+
176
+ # ボールの初期位置設定
177
+ @ball.center!.bottom!{|b| @floor.size.h }
178
+
179
+ # フォントの用意
180
+ @font = Font.serif
181
+ @font.size = 16
182
+
183
+ # 情報表示用スプライトの用意
184
+ @speed = Sprite.new(size: Size.new(640, 16), type: :ac)
185
+ @info = Shape.text(font: @font, text: "1ボタンを押せばボールが跳ね上がります")
186
+ @info.snap(@speed).left!.outside_bottom!
187
+
188
+ Miyako.main_loop do
189
+ break if Input.quit_or_escape?
190
+ @ball.update(@floor)
191
+ # 1ボタンを押した時、ボールのジャンプを始める
192
+ @ball.jumpup if Input.pushed_any?(:btn1)
193
+
194
+ # 初速度表示スプライトの更新
195
+ @speed.clear!
196
+ @font.draw_text(@speed, "初速度:#{@ball.v0}", 0, 0)
197
+
198
+ # 画面への描画
199
+ @floor.render
200
+ @ball.render
201
+ @speed.render
202
+ # ジャンプ中でなければ説明を表示
203
+ @info.render unless @ball.jumping?
204
+ end
data/sample/blit_rop.rb CHANGED
@@ -1,70 +1,70 @@
1
- # 画像ビット操作サンプル
2
- # 2009.4.17 Cyross Makoto
3
-
4
- require 'Miyako/miyako'
5
-
6
- include Miyako
7
-
8
- # 画像が画面をはみ出そうになったら移動量を+-反転
9
- # spr:: 移動対象のスプライト
10
- # amt:: 移動量配列
11
- # 返却値:: 変更した移動量配列
12
- def turn(spr, amt)
13
- amt[0] = -amt[0] if (spr.x + spr.ow) >= Screen.w
14
- amt[0] = -amt[0] if spr.x <= 0
15
- amt[1] = -amt[1] if (spr.y + spr.oh) >= Screen.h
16
- amt[1] = -amt[1] if spr.y <= 0
17
- return amt
18
- end
19
-
20
- # マスク画像を作成
21
- bmask = Sprite.new(:size=>Size.new(100,100), :type=>:ac)
22
- Drawing.circle(bmask, [50,50], 50, [255,255,255], :fill)
23
-
24
- # 描画用スプライトを作成
25
- spr1 = Sprite.new(:size=>Size.new(100,100), :type=>:ac)
26
- spr2 = Sprite.new(:size=>Size.new(100,100), :type=>:ac)
27
- spr3 = Sprite.new(:size=>Size.new(100,100), :type=>:ac)
28
-
29
- # 転送元背景を準備
30
- bk = Sprite.new(:file=>"Animation1/m1ku_back.jpg", :type=>:as)
31
- text = Sprite.new(:file=>"text.png", :type=>:ac)
32
- # 表示用背景を準備(元画像を反転)
33
- bk2 = bk.inverse
34
-
35
- spr2.centering
36
- spr3.right.bottom
37
-
38
- # 移動量配列を設定
39
- @amt1 = [ 4, 4]
40
- @amt2 = [ 4,-4]
41
- @amt3 = [-4,-4]
42
-
43
- # Main Routine
44
- Miyako.main_loop do
45
- break if Input.quit_or_escape?
46
- # マスク画像の転送
47
- bmask.render_to(spr1)
48
- bk.render_to(spr2){|src, dst| src.ox = spr2.x; src.oy = spr2.y}
49
- bk2.render_to(spr3){|src, dst| src.ox = spr3.x; src.oy = spr3.y}
50
- # 元画像をandして描画用スプライトへ転送
51
- spr1.and!(bk){|src, dst| src.ox = spr1.x; src.oy = spr1.y}
52
- # 元画像をorして描画用スプライトへ転送
53
- spr2.or!(text)
54
- # 元画像をxorして描画用スプライトへ転送
55
- spr3.xor!(text)
56
-
57
- # 画像を画面に描画
58
- bk2.render
59
- spr1.render
60
- spr2.render
61
- spr3.render
62
- # スプライトの移動
63
- spr1.move(*@amt1)
64
- spr2.move(*@amt2)
65
- spr3.move(*@amt3)
66
- # 画像が画面をはみ出そうになったら移動量を+-反転
67
- @amt1 = turn(spr1, @amt1)
68
- @amt2 = turn(spr2, @amt2)
69
- @amt3 = turn(spr3, @amt3)
70
- end
1
+ # 画像ビット操作サンプル
2
+ # 2009.4.17 Cyross Makoto
3
+
4
+ require 'Miyako/miyako'
5
+
6
+ include Miyako
7
+
8
+ # 画像が画面をはみ出そうになったら移動量を+-反転
9
+ # spr:: 移動対象のスプライト
10
+ # amt:: 移動量配列
11
+ # 返却値:: 変更した移動量配列
12
+ def turn(spr, amt)
13
+ amt[0] = -amt[0] if (spr.x + spr.ow) >= Screen.w
14
+ amt[0] = -amt[0] if spr.x <= 0
15
+ amt[1] = -amt[1] if (spr.y + spr.oh) >= Screen.h
16
+ amt[1] = -amt[1] if spr.y <= 0
17
+ return amt
18
+ end
19
+
20
+ # マスク画像を作成
21
+ bmask = Sprite.new(:size=>Size.new(100,100), :type=>:ac)
22
+ Drawing.circle(bmask, [50,50], 50, [255,255,255], :fill)
23
+
24
+ # 描画用スプライトを作成
25
+ spr1 = Sprite.new(:size=>Size.new(100,100), :type=>:ac)
26
+ spr2 = Sprite.new(:size=>Size.new(100,100), :type=>:ac)
27
+ spr3 = Sprite.new(:size=>Size.new(100,100), :type=>:ac)
28
+
29
+ # 転送元背景を準備
30
+ bk = Sprite.new(:file=>"Animation1/m1ku_back.jpg", :type=>:as)
31
+ text = Sprite.new(:file=>"text.png", :type=>:ac)
32
+ # 表示用背景を準備(元画像を反転)
33
+ bk2 = bk.inverse
34
+
35
+ spr2.centering!
36
+ spr3.right!.bottom!
37
+
38
+ # 移動量配列を設定
39
+ @amt1 = [ 4, 4]
40
+ @amt2 = [ 4,-4]
41
+ @amt3 = [-4,-4]
42
+
43
+ # Main Routine
44
+ Miyako.main_loop do
45
+ break if Input.quit_or_escape?
46
+ # マスク画像の転送
47
+ bmask.render_to(spr1)
48
+ bk.render_to(spr2){|src, dst| src.ox = spr2.x; src.oy = spr2.y}
49
+ bk2.render_to(spr3){|src, dst| src.ox = spr3.x; src.oy = spr3.y}
50
+ # 元画像をandして描画用スプライトへ転送
51
+ spr1.and!(bk){|src, dst| src.ox = spr1.x; src.oy = spr1.y}
52
+ # 元画像をorして描画用スプライトへ転送
53
+ spr2.or!(text)
54
+ # 元画像をxorして描画用スプライトへ転送
55
+ spr3.xor!(text)
56
+
57
+ # 画像を画面に描画
58
+ bk2.render
59
+ spr1.render
60
+ spr2.render
61
+ spr3.render
62
+ # スプライトの移動
63
+ spr1.move!(*@amt1)
64
+ spr2.move!(*@amt2)
65
+ spr3.move!(*@amt3)
66
+ # 画像が画面をはみ出そうになったら移動量を+-反転
67
+ @amt1 = turn(spr1, @amt1)
68
+ @amt2 = turn(spr2, @amt2)
69
+ @amt3 = turn(spr3, @amt3)
70
+ end
@@ -1,25 +1,25 @@
1
- # encoding: utf-8
2
- # MiyakoCairoサンプル
3
- # 2009.4.12 Cyross Makoto
4
-
5
- require 'Miyako/miyako'
6
- require 'Miyako/EXT/miyako_cairo'
7
-
8
- sprite = Miyako::Sprite.new(:file=>"Animation2/lex_body.png", :type=>:ck)
9
- sprite.bitmap.saveBMP("./sample.bmp")
10
-
11
- surface = Miyako::MiyakoCairo.to_cairo_surface(sprite)
12
- surface.write_to_png("./sample.png")
13
-
14
- surface = Cairo::ImageSurface.new(Cairo::Format::ARGB32, 320, 240)
15
- context = Cairo::Context.new(surface)
16
-
17
- context.set_source_rgb(1.0, 0.5, 0.8)
18
- context.fill{
19
- context.rectangle(50, 50, 150, 100)
20
- }
21
-
22
- surface.write_to_png("./sample2.png")
23
-
24
- sprite = Miyako::MiyakoCairo.to_sprite(surface)
25
- sprite.bitmap.saveBMP("./sample2.bmp")
1
+ # encoding: utf-8
2
+ # MiyakoCairoサンプル
3
+ # 2009.4.12 Cyross Makoto
4
+
5
+ require 'Miyako/miyako'
6
+ require 'Miyako/EXT/miyako_cairo'
7
+
8
+ sprite = Miyako::Sprite.new(:file=>"Animation2/lex_body.png", :type=>:ck)
9
+ sprite.bitmap.saveBMP("./sample.bmp")
10
+
11
+ surface = Miyako::MiyakoCairo.to_cairo_surface(sprite)
12
+ surface.write_to_png("./sample.png")
13
+
14
+ surface = Cairo::ImageSurface.new(Cairo::Format::ARGB32, 320, 240)
15
+ context = Cairo::Context.new(surface)
16
+
17
+ context.set_source_rgb(1.0, 0.5, 0.8)
18
+ context.fill{
19
+ context.rectangle(50, 50, 150, 100)
20
+ }
21
+
22
+ surface.write_to_png("./sample2.png")
23
+
24
+ sprite = Miyako::MiyakoCairo.to_sprite(surface)
25
+ sprite.bitmap.saveBMP("./sample2.bmp")