cyross-ruby-miyako 2.0.5.1 → 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.
- data/README +1092 -929
- data/Rakefile +7 -7
- data/defines.h +144 -144
- data/extern.h +29 -29
- data/install_miyako.rb +87 -87
- data/lib/Miyako/API/audio.rb +572 -198
- data/lib/Miyako/API/basic_data.rb +825 -573
- data/lib/Miyako/API/bitmap.rb +534 -507
- data/lib/Miyako/API/choices.rb +481 -475
- data/lib/Miyako/API/collision.rb +486 -460
- data/lib/Miyako/API/diagram.rb +586 -561
- data/lib/Miyako/API/drawing.rb +151 -151
- data/lib/Miyako/API/exceptions.rb +105 -0
- data/lib/Miyako/API/fixedmap.rb +462 -428
- data/lib/Miyako/API/font.rb +430 -403
- data/lib/Miyako/API/input.rb +456 -447
- data/lib/Miyako/API/layout.rb +636 -433
- data/lib/Miyako/API/map.rb +583 -529
- data/lib/Miyako/API/map_event.rb +222 -198
- data/lib/Miyako/API/modules.rb +357 -109
- data/lib/Miyako/API/movie.rb +166 -154
- data/lib/Miyako/API/parts.rb +276 -189
- data/lib/Miyako/API/plane.rb +205 -166
- data/lib/Miyako/API/screen.rb +341 -325
- data/lib/Miyako/API/shape.rb +443 -443
- data/lib/Miyako/API/sprite.rb +771 -752
- data/lib/Miyako/API/sprite_animation.rb +490 -481
- data/lib/Miyako/API/sprite_list.rb +1135 -0
- data/lib/Miyako/API/spriteunit.rb +168 -147
- data/lib/Miyako/API/story.rb +350 -300
- data/lib/Miyako/API/textbox.rb +770 -725
- data/lib/Miyako/API/utility.rb +419 -388
- data/lib/Miyako/API/viewport.rb +189 -139
- data/lib/Miyako/API/yuki.rb +1226 -996
- data/lib/Miyako/EXT/miyako_cairo.rb +62 -62
- data/lib/Miyako/EXT/raster_scroll.rb +138 -138
- data/lib/Miyako/EXT/slides.rb +157 -157
- data/lib/Miyako/miyako.rb +201 -171
- data/lib/Miyako/miyako_require_only.rb +35 -0
- data/miyako_basicdata.c +590 -590
- data/miyako_bitmap.c +1225 -1225
- data/miyako_collision.c +403 -403
- data/miyako_drawing.c +187 -187
- data/miyako_font.c +334 -334
- data/miyako_hsv.c +830 -830
- data/miyako_input_audio.c +254 -0
- data/miyako_layout.c +191 -191
- data/miyako_no_katana.c +1078 -1074
- data/miyako_sprite2.c +431 -0
- data/miyako_transform.c +438 -438
- data/miyako_utility.c +288 -288
- data/sample/Animation1/m1ku.rb +68 -68
- data/sample/Animation2/lex.rb +96 -96
- data/sample/Diagram_sample/diagram_sample_yuki2.rb +328 -386
- data/sample/Room3/blue.rb +297 -297
- data/sample/Room3/ending.rb +180 -180
- data/sample/Room3/green.rb +220 -220
- data/sample/Room3/main.rb +119 -119
- data/sample/Room3/main_component.rb +59 -59
- data/sample/Room3/red.rb +227 -227
- data/sample/Room3/room3.rb +25 -27
- data/sample/Room3/title.rb +184 -184
- data/sample/ball_action_sample.rb +204 -204
- data/sample/blit_rop.rb +70 -70
- data/sample/cairo_sample.rb +25 -25
- data/sample/circle_collision_test.rb +66 -66
- data/sample/collision_test.rb +33 -33
- data/sample/collision_test2.rb +108 -108
- data/sample/fixed_map_test/fixed_map_sample.rb +140 -140
- data/sample/fixed_map_test/readme.txt +72 -72
- data/sample/map_test/chara.rb +58 -58
- data/sample/map_test/main_parts.rb +69 -69
- data/sample/map_test/main_scene.rb +153 -153
- data/sample/map_test/map_manager.rb +75 -75
- data/sample/map_test/map_test.rb +23 -23
- data/sample/map_test/oasis.rb +71 -71
- data/sample/map_test/readme.txt +89 -89
- data/sample/map_test/route.rb +157 -157
- data/sample/map_test/town.rb +74 -74
- data/sample/polygon_test.rb +35 -35
- data/sample/rasterscroll.rb +24 -24
- data/sample/takahashi.rb +42 -42
- data/sample/textbox_sample.rb +189 -189
- data/sample/transform.rb +54 -54
- data/sample/utility_test.rb +73 -73
- data/sample/utility_test2.rb +61 -61
- data/sample/utility_test3.rb +64 -64
- data/sample/utility_test4.rb +73 -73
- data/uninstall_miyako.rb +19 -19
- data/win/miyako_no_katana.so +0 -0
- metadata +7 -2
@@ -1,140 +1,140 @@
|
|
1
|
-
#encoding: UTF-8
|
2
|
-
# FixedMap Sample
|
3
|
-
# 2009.4.12 Cyross Makoto
|
4
|
-
|
5
|
-
require 'Miyako/miyako'
|
6
|
-
|
7
|
-
include Miyako
|
8
|
-
|
9
|
-
Screen::fps_view = true
|
10
|
-
|
11
|
-
# Monster Class
|
12
|
-
class Monster
|
13
|
-
extend Forwardable
|
14
|
-
|
15
|
-
def initialize(map, name, size, wait, pattern, x, y)
|
16
|
-
@spr = Sprite.new({:filename => name, :type => :color_key})
|
17
|
-
@spr.ow = size
|
18
|
-
@spr.oh = size
|
19
|
-
@coll = Collision.new(Rect.new(0, 0, @spr.ow, @spr.oh))
|
20
|
-
@cpos = Point.new(x, y)
|
21
|
-
ap = { }
|
22
|
-
ap[:sprite] = @spr
|
23
|
-
ap[:wait] = wait
|
24
|
-
ap[:pattern_list] = pattern
|
25
|
-
@anim = SpriteAnimation.new(ap)
|
26
|
-
@anim.snap(map)
|
27
|
-
@anim.left
|
28
|
-
end
|
29
|
-
|
30
|
-
def start
|
31
|
-
@anim.start
|
32
|
-
end
|
33
|
-
|
34
|
-
def update(map, events, param)
|
35
|
-
@anim.update_animation
|
36
|
-
end
|
37
|
-
|
38
|
-
def render
|
39
|
-
@anim.render
|
40
|
-
end
|
41
|
-
|
42
|
-
def finish
|
43
|
-
end
|
44
|
-
|
45
|
-
def dispose
|
46
|
-
@anim.dispose
|
47
|
-
@spr.dispose
|
48
|
-
end
|
49
|
-
|
50
|
-
def_delegators(:@anim, :start, :stop)
|
51
|
-
end
|
52
|
-
|
53
|
-
class Slime < Monster
|
54
|
-
def initialize(map, x, y)
|
55
|
-
super(map, "monster.png", 32, 0.5, [0, 1, 2, 3, 2, 1], x, y)
|
56
|
-
@interval = 2
|
57
|
-
@interval_x = 0
|
58
|
-
@interval_y = 0
|
59
|
-
@cnt = 0
|
60
|
-
@wait0 = WaitCounter.new(0.1)
|
61
|
-
@wait = WaitCounter.new(0.4)
|
62
|
-
@types = 5
|
63
|
-
# 方向による移動量リスト
|
64
|
-
@ary = [[ 0, @spr.oh, 0, @interval, @spr.oh],
|
65
|
-
[ @spr.ow, 0, @interval, 0, @spr.ow],
|
66
|
-
[-@spr.ow, 0, -@interval, 0, @spr.ow],
|
67
|
-
[ 0,-@spr.oh, 0,-@interval, @spr.oh]]
|
68
|
-
end
|
69
|
-
|
70
|
-
def update(map, events, param)
|
71
|
-
super
|
72
|
-
return if @wait.waiting? || @wait0.waiting?
|
73
|
-
if @cnt > 0
|
74
|
-
@anim.move(@interval_x, @interval_y)
|
75
|
-
@cpos.move(@interval_x, @interval_y)
|
76
|
-
@cnt -= @interval
|
77
|
-
@wait0.start
|
78
|
-
return
|
79
|
-
end
|
80
|
-
val = rand(@types)
|
81
|
-
if val == 0
|
82
|
-
@interval_x = 0
|
83
|
-
@interval_y = 0
|
84
|
-
@wait.start
|
85
|
-
else
|
86
|
-
data = @ary[val-1]
|
87
|
-
# スライムが当たっているマップ位置リストを取得
|
88
|
-
colls = Utility.product_position(
|
89
|
-
@cpos.dup.move(data[0], data[1]), @coll.rect, map.mapchips[0].chip_size.to_a
|
90
|
-
)
|
91
|
-
# 障害物に当たってない?
|
92
|
-
if colls.inject(true){|r, pos| r &= map[0].can_access?(0, :in, @cpos, data[0], data[1]) }
|
93
|
-
@interval_x, @interval_y = data[2..3]
|
94
|
-
@cnt = data[4]
|
95
|
-
end
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
class SlimeEvent
|
101
|
-
include MapEvent
|
102
|
-
|
103
|
-
def init(map, x, y)
|
104
|
-
@slime = Slime.new(map, x, y)
|
105
|
-
end
|
106
|
-
|
107
|
-
def update(map, events, param)
|
108
|
-
@slime.update(map, events, param)
|
109
|
-
end
|
110
|
-
|
111
|
-
def final
|
112
|
-
@slime.finish
|
113
|
-
end
|
114
|
-
|
115
|
-
def dispose
|
116
|
-
@slime.dispose
|
117
|
-
end
|
118
|
-
|
119
|
-
def render
|
120
|
-
@slime.render
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
em = MapEventManager.new
|
125
|
-
em.add(1, SlimeEvent)
|
126
|
-
|
127
|
-
# main
|
128
|
-
mp = MapChipFactory.load("./mapchip.csv")
|
129
|
-
@fmap = FixedMap.new(mp, "./map.csv", em)
|
130
|
-
|
131
|
-
Miyako.main_loop do
|
132
|
-
break if Input.quit_or_escape?
|
133
|
-
dx, dy = Input.trigger_amount.map{|v| v * 4 }
|
134
|
-
dx = 0 unless Utility.in_bounds?([@fmap.rect.x,@fmap.rect.x+@fmap.rect.w-1], [0,Screen.w-1], dx)
|
135
|
-
dy = 0 unless Utility.in_bounds?([@fmap.rect.y,@fmap.rect.y+@fmap.rect.h-1], [0,Screen.h-1], dy)
|
136
|
-
@fmap.move(dx, dy)
|
137
|
-
@fmap.events.each{|ee| ee.each{|e| e.update(@fmap, @fmap.events, nil)}}
|
138
|
-
@fmap.render_to(Screen)
|
139
|
-
@fmap.events.each{|ee| ee.each{|e| e.render}}
|
140
|
-
end
|
1
|
+
#encoding: UTF-8
|
2
|
+
# FixedMap Sample
|
3
|
+
# 2009.4.12 Cyross Makoto
|
4
|
+
|
5
|
+
require 'Miyako/miyako'
|
6
|
+
|
7
|
+
include Miyako
|
8
|
+
|
9
|
+
Screen::fps_view = true
|
10
|
+
|
11
|
+
# Monster Class
|
12
|
+
class Monster
|
13
|
+
extend Forwardable
|
14
|
+
|
15
|
+
def initialize(map, name, size, wait, pattern, x, y)
|
16
|
+
@spr = Sprite.new({:filename => name, :type => :color_key})
|
17
|
+
@spr.ow = size
|
18
|
+
@spr.oh = size
|
19
|
+
@coll = Collision.new(Rect.new(0, 0, @spr.ow, @spr.oh))
|
20
|
+
@cpos = Point.new(x, y)
|
21
|
+
ap = { }
|
22
|
+
ap[:sprite] = @spr
|
23
|
+
ap[:wait] = wait
|
24
|
+
ap[:pattern_list] = pattern
|
25
|
+
@anim = SpriteAnimation.new(ap)
|
26
|
+
@anim.snap(map)
|
27
|
+
@anim.left!.top!.move!(x, y)
|
28
|
+
end
|
29
|
+
|
30
|
+
def start
|
31
|
+
@anim.start
|
32
|
+
end
|
33
|
+
|
34
|
+
def update(map, events, param)
|
35
|
+
@anim.update_animation
|
36
|
+
end
|
37
|
+
|
38
|
+
def render
|
39
|
+
@anim.render
|
40
|
+
end
|
41
|
+
|
42
|
+
def finish
|
43
|
+
end
|
44
|
+
|
45
|
+
def dispose
|
46
|
+
@anim.dispose
|
47
|
+
@spr.dispose
|
48
|
+
end
|
49
|
+
|
50
|
+
def_delegators(:@anim, :start, :stop)
|
51
|
+
end
|
52
|
+
|
53
|
+
class Slime < Monster
|
54
|
+
def initialize(map, x, y)
|
55
|
+
super(map, "monster.png", 32, 0.5, [0, 1, 2, 3, 2, 1], x, y)
|
56
|
+
@interval = 2
|
57
|
+
@interval_x = 0
|
58
|
+
@interval_y = 0
|
59
|
+
@cnt = 0
|
60
|
+
@wait0 = WaitCounter.new(0.1)
|
61
|
+
@wait = WaitCounter.new(0.4)
|
62
|
+
@types = 5
|
63
|
+
# 方向による移動量リスト
|
64
|
+
@ary = [[ 0, @spr.oh, 0, @interval, @spr.oh],
|
65
|
+
[ @spr.ow, 0, @interval, 0, @spr.ow],
|
66
|
+
[-@spr.ow, 0, -@interval, 0, @spr.ow],
|
67
|
+
[ 0,-@spr.oh, 0,-@interval, @spr.oh]]
|
68
|
+
end
|
69
|
+
|
70
|
+
def update(map, events, param)
|
71
|
+
super
|
72
|
+
return if @wait.waiting? || @wait0.waiting?
|
73
|
+
if @cnt > 0
|
74
|
+
@anim.move!(@interval_x, @interval_y)
|
75
|
+
@cpos.move!(@interval_x, @interval_y)
|
76
|
+
@cnt -= @interval
|
77
|
+
@wait0.start
|
78
|
+
return
|
79
|
+
end
|
80
|
+
val = rand(@types)
|
81
|
+
if val == 0
|
82
|
+
@interval_x = 0
|
83
|
+
@interval_y = 0
|
84
|
+
@wait.start
|
85
|
+
else
|
86
|
+
data = @ary[val-1]
|
87
|
+
# スライムが当たっているマップ位置リストを取得
|
88
|
+
colls = Utility.product_position(
|
89
|
+
@cpos.dup.move!(data[0], data[1]), @coll.rect, map.mapchips[0].chip_size.to_a
|
90
|
+
)
|
91
|
+
# 障害物に当たってない?
|
92
|
+
if colls.inject(true){|r, pos| r &= map[0].can_access?(0, :in, @cpos, data[0], data[1]) }
|
93
|
+
@interval_x, @interval_y = data[2..3]
|
94
|
+
@cnt = data[4]
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
class SlimeEvent
|
101
|
+
include MapEvent
|
102
|
+
|
103
|
+
def init(map, x, y)
|
104
|
+
@slime = Slime.new(map, x, y)
|
105
|
+
end
|
106
|
+
|
107
|
+
def update(map, events, param)
|
108
|
+
@slime.update(map, events, param)
|
109
|
+
end
|
110
|
+
|
111
|
+
def final
|
112
|
+
@slime.finish
|
113
|
+
end
|
114
|
+
|
115
|
+
def dispose
|
116
|
+
@slime.dispose
|
117
|
+
end
|
118
|
+
|
119
|
+
def render
|
120
|
+
@slime.render
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
em = MapEventManager.new
|
125
|
+
em.add(1, SlimeEvent)
|
126
|
+
|
127
|
+
# main
|
128
|
+
mp = MapChipFactory.load("./mapchip.csv")
|
129
|
+
@fmap = FixedMap.new(mp, "./map.csv", em)
|
130
|
+
|
131
|
+
Miyako.main_loop do
|
132
|
+
break if Input.quit_or_escape?
|
133
|
+
dx, dy = Input.trigger_amount.map{|v| v * 4 }
|
134
|
+
dx = 0 unless Utility.in_bounds?([@fmap.rect.x,@fmap.rect.x+@fmap.rect.w-1], [0,Screen.w-1], dx)
|
135
|
+
dy = 0 unless Utility.in_bounds?([@fmap.rect.y,@fmap.rect.y+@fmap.rect.h-1], [0,Screen.h-1], dy)
|
136
|
+
@fmap.move!(dx, dy)
|
137
|
+
@fmap.events.each{|ee| ee.each{|e| e.update(@fmap, @fmap.events, nil)}}
|
138
|
+
@fmap.render_to(Screen)
|
139
|
+
@fmap.events.each{|ee| ee.each{|e| e.render}}
|
140
|
+
end
|
@@ -1,72 +1,72 @@
|
|
1
|
-
*******************************************************************************
|
2
|
-
【 作者名 】 サイロス誠
|
3
|
-
【 ソフト名 】 Miyako v2.0サンプル(固定マップ)
|
4
|
-
【 バージョン 】 2.0
|
5
|
-
【 作成日 】 2009/04/12
|
6
|
-
【 種別 】 フリーウェア
|
7
|
-
【 開発言語 】 Ruby 1.8.9-p0
|
8
|
-
【 ランタイム 】 Miyako v2.0
|
9
|
-
【 対応機種 】 Windows 2000/XP/Vista、Linux
|
10
|
-
【 再配布 】 修正BSDライセンスによる
|
11
|
-
【 転載 】 修正BSDライセンスによる
|
12
|
-
【ホームページ】 http://www.twin.ne.jp/~cyross/Miyako/
|
13
|
-
【 連絡先 】 cyross@po.twin.ne.jp
|
14
|
-
*******************************************************************************
|
15
|
-
|
16
|
-
・概要
|
17
|
-
|
18
|
-
このプログラムは、Miyako v2.0以降に対応する、Miyakoサンプルプログラムです。
|
19
|
-
スクロールしないマップ上で、スライムがうねくねしながら動き回っています。
|
20
|
-
|
21
|
-
・Miyakoについて
|
22
|
-
|
23
|
-
Miyakoに関しては、以下のURLを参考にしてください。
|
24
|
-
http://www.twin.ne.jp/~cyross/Miyako/
|
25
|
-
|
26
|
-
Miyako(Ruby、Ruby/SDL含む)のインストールに関しましては、
|
27
|
-
上記URLを辿って得られるアーカイブされたMiyakoライブラリを
|
28
|
-
展開すると、readme.txtが得られますので、そちらをご参照下さい。
|
29
|
-
|
30
|
-
本サンプルでは、MiyakoがWindows上で動作することを前提にしています。
|
31
|
-
(インストールしたRuby実行環境がActiveRubyであることも前提に
|
32
|
-
しています)
|
33
|
-
|
34
|
-
・起動方法
|
35
|
-
|
36
|
-
エクスプローラーを開き、本サンプルのフォルダ内で、「m1ku.rb」を
|
37
|
-
ダブルクリックします。
|
38
|
-
もしくは、コマンドライン上で動かす場合は、本サンプルのディレクトリに
|
39
|
-
移動して、以下のコマンドを入力します。
|
40
|
-
|
41
|
-
ruby fixed_map_sample.rb
|
42
|
-
|
43
|
-
・免責事項
|
44
|
-
|
45
|
-
本サンプルは無保証です。もし本サンプルを使用することによる不具合・トラブル
|
46
|
-
が起こったとしても、いかなるトラブルに対する責任を負わないことをご了承下さい。
|
47
|
-
|
48
|
-
本サンプルは、修正BSDライセンスに基づいた転載・再配布を許可します。
|
49
|
-
|
50
|
-
・BSDライセンス文
|
51
|
-
|
52
|
-
Copyright (c) 2009, Cyross Makoto
|
53
|
-
|
54
|
-
All rights reserved.
|
55
|
-
|
56
|
-
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
57
|
-
|
58
|
-
・Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
59
|
-
・Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
60
|
-
・Neither the name of the Cyross Makoto nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
61
|
-
|
62
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
63
|
-
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
64
|
-
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
65
|
-
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
66
|
-
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
67
|
-
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
68
|
-
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
69
|
-
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
70
|
-
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
71
|
-
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
72
|
-
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
1
|
+
*******************************************************************************
|
2
|
+
【 作者名 】 サイロス誠
|
3
|
+
【 ソフト名 】 Miyako v2.0サンプル(固定マップ)
|
4
|
+
【 バージョン 】 2.0
|
5
|
+
【 作成日 】 2009/04/12
|
6
|
+
【 種別 】 フリーウェア
|
7
|
+
【 開発言語 】 Ruby 1.8.9-p0
|
8
|
+
【 ランタイム 】 Miyako v2.0
|
9
|
+
【 対応機種 】 Windows 2000/XP/Vista、Linux
|
10
|
+
【 再配布 】 修正BSDライセンスによる
|
11
|
+
【 転載 】 修正BSDライセンスによる
|
12
|
+
【ホームページ】 http://www.twin.ne.jp/~cyross/Miyako/
|
13
|
+
【 連絡先 】 cyross@po.twin.ne.jp
|
14
|
+
*******************************************************************************
|
15
|
+
|
16
|
+
・概要
|
17
|
+
|
18
|
+
このプログラムは、Miyako v2.0以降に対応する、Miyakoサンプルプログラムです。
|
19
|
+
スクロールしないマップ上で、スライムがうねくねしながら動き回っています。
|
20
|
+
|
21
|
+
・Miyakoについて
|
22
|
+
|
23
|
+
Miyakoに関しては、以下のURLを参考にしてください。
|
24
|
+
http://www.twin.ne.jp/~cyross/Miyako/
|
25
|
+
|
26
|
+
Miyako(Ruby、Ruby/SDL含む)のインストールに関しましては、
|
27
|
+
上記URLを辿って得られるアーカイブされたMiyakoライブラリを
|
28
|
+
展開すると、readme.txtが得られますので、そちらをご参照下さい。
|
29
|
+
|
30
|
+
本サンプルでは、MiyakoがWindows上で動作することを前提にしています。
|
31
|
+
(インストールしたRuby実行環境がActiveRubyであることも前提に
|
32
|
+
しています)
|
33
|
+
|
34
|
+
・起動方法
|
35
|
+
|
36
|
+
エクスプローラーを開き、本サンプルのフォルダ内で、「m1ku.rb」を
|
37
|
+
ダブルクリックします。
|
38
|
+
もしくは、コマンドライン上で動かす場合は、本サンプルのディレクトリに
|
39
|
+
移動して、以下のコマンドを入力します。
|
40
|
+
|
41
|
+
ruby fixed_map_sample.rb
|
42
|
+
|
43
|
+
・免責事項
|
44
|
+
|
45
|
+
本サンプルは無保証です。もし本サンプルを使用することによる不具合・トラブル
|
46
|
+
が起こったとしても、いかなるトラブルに対する責任を負わないことをご了承下さい。
|
47
|
+
|
48
|
+
本サンプルは、修正BSDライセンスに基づいた転載・再配布を許可します。
|
49
|
+
|
50
|
+
・BSDライセンス文
|
51
|
+
|
52
|
+
Copyright (c) 2009, Cyross Makoto
|
53
|
+
|
54
|
+
All rights reserved.
|
55
|
+
|
56
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
57
|
+
|
58
|
+
・Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
59
|
+
・Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
60
|
+
・Neither the name of the Cyross Makoto nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
61
|
+
|
62
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
63
|
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
64
|
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
65
|
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
66
|
+
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
67
|
+
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
68
|
+
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
69
|
+
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
70
|
+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
71
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
72
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/sample/map_test/chara.rb
CHANGED
@@ -1,58 +1,58 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
|
-
#キャラクタ管理クラス
|
3
|
-
class PChara # Player Character
|
4
|
-
extend Forwardable
|
5
|
-
attr_accessor :dir
|
6
|
-
attr_reader :collision, :position
|
7
|
-
@@dir2dir = {[0,1]=>0,[-1,0]=>1,[1,0]=>2,[0,-1]=>3}
|
8
|
-
@@dir2dir.default = -1
|
9
|
-
|
10
|
-
def initialize(fname, pw = 0.2)
|
11
|
-
# キャラクタスプライトを作成
|
12
|
-
@spr = Sprite.new({:filename => fname, :type => :color_key})
|
13
|
-
@spr.ow = 32
|
14
|
-
@spr.oh = 32
|
15
|
-
param = Hash.new
|
16
|
-
param[:sprite] = @spr
|
17
|
-
param[:wait] = pw
|
18
|
-
# コリジョン設定
|
19
|
-
@collision = Collision.new(@spr.rect)
|
20
|
-
# キャラクタ位置設定
|
21
|
-
@position = Point.new(0, 0)
|
22
|
-
# キャラパターンを表示
|
23
|
-
@anim = SpriteAnimation.new(param)
|
24
|
-
@anim.centering
|
25
|
-
@dir = :down
|
26
|
-
end
|
27
|
-
|
28
|
-
# マップの表示座標と実座標とのマージンを設定
|
29
|
-
def margin
|
30
|
-
return Size.new(-@spr.x, -@spr.y)
|
31
|
-
end
|
32
|
-
|
33
|
-
def turn(d)
|
34
|
-
@anim.character = @@dir2dir[d]
|
35
|
-
end
|
36
|
-
|
37
|
-
def start
|
38
|
-
@anim.start
|
39
|
-
end
|
40
|
-
|
41
|
-
def stop
|
42
|
-
@anim.stop
|
43
|
-
end
|
44
|
-
|
45
|
-
def update
|
46
|
-
@anim.update_animation
|
47
|
-
end
|
48
|
-
|
49
|
-
def render
|
50
|
-
@anim.render
|
51
|
-
end
|
52
|
-
|
53
|
-
def size
|
54
|
-
return Size.new(@spr.ow, @spr.oh)
|
55
|
-
end
|
56
|
-
|
57
|
-
def_delegators(:@spr, :dispose, :rect, :ow, :oh, :x, :y)
|
58
|
-
end
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
#キャラクタ管理クラス
|
3
|
+
class PChara # Player Character
|
4
|
+
extend Forwardable
|
5
|
+
attr_accessor :dir
|
6
|
+
attr_reader :collision, :position
|
7
|
+
@@dir2dir = {[0,1]=>0,[-1,0]=>1,[1,0]=>2,[0,-1]=>3}
|
8
|
+
@@dir2dir.default = -1
|
9
|
+
|
10
|
+
def initialize(fname, pw = 0.2)
|
11
|
+
# キャラクタスプライトを作成
|
12
|
+
@spr = Sprite.new({:filename => fname, :type => :color_key})
|
13
|
+
@spr.ow = 32
|
14
|
+
@spr.oh = 32
|
15
|
+
param = Hash.new
|
16
|
+
param[:sprite] = @spr
|
17
|
+
param[:wait] = pw
|
18
|
+
# コリジョン設定
|
19
|
+
@collision = Collision.new(@spr.rect)
|
20
|
+
# キャラクタ位置設定
|
21
|
+
@position = Point.new(0, 0)
|
22
|
+
# キャラパターンを表示
|
23
|
+
@anim = SpriteAnimation.new(param)
|
24
|
+
@anim.centering!
|
25
|
+
@dir = :down
|
26
|
+
end
|
27
|
+
|
28
|
+
# マップの表示座標と実座標とのマージンを設定
|
29
|
+
def margin
|
30
|
+
return Size.new(-@spr.x, -@spr.y)
|
31
|
+
end
|
32
|
+
|
33
|
+
def turn(d)
|
34
|
+
@anim.character = @@dir2dir[d]
|
35
|
+
end
|
36
|
+
|
37
|
+
def start
|
38
|
+
@anim.start
|
39
|
+
end
|
40
|
+
|
41
|
+
def stop
|
42
|
+
@anim.stop
|
43
|
+
end
|
44
|
+
|
45
|
+
def update
|
46
|
+
@anim.update_animation
|
47
|
+
end
|
48
|
+
|
49
|
+
def render
|
50
|
+
@anim.render
|
51
|
+
end
|
52
|
+
|
53
|
+
def size
|
54
|
+
return Size.new(@spr.ow, @spr.oh)
|
55
|
+
end
|
56
|
+
|
57
|
+
def_delegators(:@spr, :dispose, :rect, :ow, :oh, :x, :y)
|
58
|
+
end
|