Class: Miyako::Map
- Includes:
- Animation, SpriteBase
- Defined in:
- lib/Miyako/API/map.rb
Overview
==マップ定義クラス
Defined Under Namespace
Classes: MapLayer
Constant Summary collapse
- @@idx_ix =
[-1, 2, 4]
- @@idx_iy =
[-1, 0, 6]
Instance Attribute Summary collapse
-
#h ⇒ Object
(also: #map_h)
readonly
Returns the value of attribute h.
-
#map_layers ⇒ Object
readonly
Returns the value of attribute map_layers.
-
#mapchips ⇒ Object
readonly
Returns the value of attribute mapchips.
-
#pos ⇒ Object
readonly
Returns the value of attribute pos.
-
#size ⇒ Object
(also: #map_size)
readonly
Returns the value of attribute size.
-
#visible ⇒ Object
レンダリングの可否(true->描画 false->非描画).
-
#w ⇒ Object
(also: #map_w)
readonly
Returns the value of attribute w.
Instance Method Summary collapse
-
#[](idx) ⇒ Object
- ===設定したマージンを各レイヤーに同期させる マージンを設定した後は必ずこのメソッドを呼び出すこと 返却値
自分自身を返す.
-
#add_event(idx, code, x, y) ⇒ Object
- ===マップにイベントを追加する EventManagerが登録されていないときや登録されていないイベント番号で追加したときは例外を返す idx
- 追加するイベントレイヤの指標 code
- イベント番号(Map.newメソッドで渡したイベント番号に対応) x
- マップ上の初期位置(x方向) y
- マップ上の初期位置(y方向) 返却値
自分自身を返す.
-
#all_event_move!(dx, dy, *params) ⇒ Object
- ===全てのイベントに対してmove!メソッドを呼び出す 全レイヤーのイベントを呼び出すことに注意 dx
- x座標の移動量 dy
- y座標の移動量 params
- イベントのmove!メソッドを呼び出すときに渡す引数。可変個数 返却値
レシーバ.
-
#all_event_pos_move!(dx, dy, *params) ⇒ Object
- ===全てのイベントに対してsprite_move!メソッドを呼び出す 全レイヤーのイベントを呼び出すことに注意 dx
- x座標の移動量 dy
- y座標の移動量 params
- イベントのmove!メソッドを呼び出すときに渡す引数。可変個数 返却値
レシーバ.
-
#all_event_sprite_move!(dx, dy, *params) ⇒ Object
- ===全てのイベントに対してsprite_move!メソッドを呼び出す 全レイヤーのイベントを呼び出すことに注意 dx
- x座標の移動量 dy
- y座標の移動量 params
- イベントのmove!メソッドを呼び出すときに渡す引数。可変個数 返却値
レシーバ.
-
#all_event_update(*params) ⇒ Object
- ===全てのイベントに対してupdateメソッドを呼び出す 全レイヤーのイベントを呼び出すことに注意 updateメソッドに渡されるレイヤーは、そのイベントが登録されているレイヤーのみ渡される params
イベントのupdateメソッドを呼び出すときに渡す引数。可変個数.
-
#all_event_update2(*params) ⇒ Object
- ===全てのイベントに対してupdate2メソッドを呼び出す 全レイヤーのイベントを呼び出すことに注意 params
イベントのupdate2メソッドを呼び出すときに渡す引数。可変個数.
-
#append_event(idx, event) ⇒ Object
- ===マップに生成済みのイベントを追加する idx
- 追加するイベントレイヤの指標 event
- イベント番号(Map.newメソッドで渡したイベント番号に対応) 返却値
自分自身を返す.
-
#broad_rect ⇒ Object
- ===現在の画面の最大の大きさを矩形で取得する 但し、Mapの場合は最大の大きさ=画面の大きさなので、rectと同じ値が得られる 返却値
画像の大きさ(Rect構造体のインスタンス).
-
#chip_size ⇒ Object
- ===マップチップ1枚の大きさを取得する マップチップの大きさが32×32ピクセルの場合は、[32,32]のSize構造体が返る 返却値
マップチップのサイズ(Size構造体).
-
#dispose ⇒ Object
===マップ情報を解放する.
-
#event_move!(idx, dx, dy, *params) ⇒ Object
- ===指定のレイヤーのイベントに対してmove!メソッドを呼び出す イベントレイヤーidxの全てのイベントに対してmove!メソッドを呼び出す idx
- 更新するイベントレイヤーの番号 dx
- x座標の移動量 dy
- y座標の移動量 params
- イベントのmove!メソッドを呼び出すときに渡す引数。可変個数 返却値
レシーバ.
-
#event_pos_move!(idx, dx, dy, *params) ⇒ Object
- ===指定のレイヤーのイベントに対してsprite_move!メソッドを呼び出す イベントレイヤーidxの全てのイベントに対してsprite_move!メソッドを呼び出す idx
- 更新するイベントレイヤーの番号 dx
- x座標の移動量 dy
- y座標の移動量 params
- イベントのmove!メソッドを呼び出すときに渡す引数。可変個数 返却値
レシーバ.
-
#event_sprite_move!(idx, dx, dy, *params) ⇒ Object
- ===指定のレイヤーのイベントに対してsprite_move!メソッドを呼び出す イベントレイヤーidxの全てのイベントに対してsprite_move!メソッドを呼び出す idx
- 更新するイベントレイヤーの番号 dx
- x座標の移動量 dy
- y座標の移動量 params
- イベントのmove!メソッドを呼び出すときに渡す引数。可変個数 返却値
レシーバ.
-
#event_update(idx, *params) ⇒ Object
- ===指定のレイヤーのイベントに対してupdateメソッドを呼び出す イベントレイヤーidxの全てのイベントに対してupdateメソッドを呼び出す ただし、updateメソッドに渡されるレイヤーは、idxで指定したレイヤーのイベントのみ渡される idx
- 更新するイベントレイヤーの番号 params
- イベントのupdateメソッドを呼び出すときに渡す引数。可変個数 返却値
レシーバ.
-
#event_update2(idx, *params) ⇒ Object
- ===指定のレイヤーのイベントに対してupdate2メソッドを呼び出す イベントレイヤーidxの全てのイベントに対してupdateメソッドを呼び出す idx
- 更新するイベントレイヤーの番号 params
- イベントのupdateメソッドを呼び出すときに渡す引数。可変個数 返却値
レシーバ.
-
#events ⇒ Object
- ===マップに登録しているイベントインスタンス(マップイベント)を取得する 返却値
マップイベントの配列.
-
#final ⇒ Object
===すべてのマップイベントを終了させる マップに登録しているイベントすべてのfinalメソッドを呼び出す.
-
#get_code(idx, x = 0, y = 0) {|code| ... } ⇒ Object
- ===実座標を使用して、指定のレイヤー・位置のマップチップ番号を取得 イベントレイヤーでの番号はイベント番号と一致する ブロックを渡すと、求めたマップチップ番号をブロック引数として受け取る評価を行える idx
- マップレイヤー配列のインデックス x
- マップチップ単位での位置(ピクセル単位) y
- マップチップ単位での位置(ピクセル単位) 返却値
マップチップ番号(マップチップが設定されている時は0以上の整数、設定されていない場合は-1が返る).
-
#initialize(mapchips, map_struct, event_manager = nil) ⇒ Map
constructor
- ===インスタンスを生成する レイヤーごとにMapChip構造体を用意する。 但し、すべてのレイヤーに同一のMapChip構造体を使うときは、単体で渡すことも可能 第1引数にto_aメソッドが実装されていれば、配列化した要素をMapChip構造体として各レイヤに渡す また、各レイヤにMapChip構造体を渡すとき、レイヤ数より要素数が少ないときは、先頭に戻って繰り返し渡す仕様になっている 各MapChip構造体のマップチップの大きさを同じにしておく必要がある mapchips
- マップチップ構造体群(MapChip構造体単体もしくは配列) map_struct
- MapStruct構造体のインスタンス event_manager
- MapEventManagerクラスのインスタンス。省略時(イベントを使わない時)はnil 返却値
生成したインスタンス.
-
#initialize_copy(obj) ⇒ Object
:nodoc:.
-
#move(dx, dy) ⇒ Object
- ===マップを移動(移動量指定)位置を求める ただし、自分自身の位置は変わらない dx
- 移動量(x方向) dy
- 移動量(y方向) 返却値
変更した位置のインスタンス(Position構造体).
-
#move!(dx, dy) ⇒ Object
- ===マップを移動(移動量指定) dx
- 移動量(x方向) dy
- 移動量(y方向) 返却値
自分自身を返す.
-
#move_to(x, y) ⇒ Object
- ===マップを移動(移動先指定)位置を求める ただし、自分自身の位置は変わらない dx
- 移動先(x方向) dy
- 移動先(y方向) 返却値
変更した位置のインスタンス(Position構造体).
-
#move_to!(x, y) ⇒ Object
- ===マップを移動(移動先指定) dx
- 移動先(x方向) dy
- 移動先(y方向) 返却値
自分自身を返す.
-
#rect ⇒ Object
- ===画像の表示矩形を取得する Mapの大きさを矩形で取得する。値は、Screen.rectメソッドの値と同じ。 返却値
生成された矩形.
-
#render ⇒ Object
- ===マップを画面に描画する 転送する画像は、マップ上のから(-margin.x, -margin.y)(単位:ピクセル)の位置に対応するチップを左上にして描画する 各レイヤ-を、レイヤーインデックス番号の若い順に描画する 但し、マップイベントは描画しない ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|画面のSpriteUnit|となる。 visibleメソッドの値がfalseのときは描画されない。 返却値
自分自身を返す.
-
#render_to(dst) ⇒ Object
- ===マップを画像に描画する 転送する画像は、マップ上のから(-margin.x, -margin.y)(単位:ピクセル)の位置に対応するチップを左上にして描画する 各レイヤ-を、レイヤーインデックス番号の若い順に描画する 但し、マップイベントは描画しない ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|転送先のSpriteUnit|となる。 visibleメソッドの値がfalseのときは描画されない。 dst
- 転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) 返却値
自分自身を返す.
-
#set_mapchip_base(idx, code, base) ⇒ Object
- ===対象のマップチップ番号の画像を置き換える idx
- 置き換えるマップチップレイヤー番号 code
- 置き換えるマップチップ番号 base
- 置き換え対象の画像・アニメーション 返却値
自分自身を返す.
-
#to_sprite {|sprite| ... } ⇒ Object
- ===スプライトに変換した画像を表示する すべてのパーツを貼り付けた、1枚のスプライトを返す 引数1個のブロックを渡せば、スプライトに補正をかけることが出来る 返却値
描画したスプライト.
-
#to_unit ⇒ Object
- ===SpriteUnit構造体を生成する いったんSpriteインスタンスを作成し、それをもとにSpriteUnit構造体を生成する。 返却値
生成したSpriteUnit構造体.
Methods included from Animation
[], []=, anim_hash, #reset, reset, start, #start, #stop, stop, update, update_animation, #update_animation
Methods included from SpriteBase
#bitmap, #hide, #image_rect, #image_size, #oh, #oh=, #ow, #ow=, #ox, #ox=, #oy, #oy=, #part_rect, #render_d, #render_xy, #render_xy_to, #show, #update
Constructor Details
#initialize(mapchips, map_struct, event_manager = nil) ⇒ Map
===インスタンスを生成する レイヤーごとにMapChip構造体を用意する。 但し、すべてのレイヤーに同一のMapChip構造体を使うときは、単体で渡すことも可能 第1引数にto_aメソッドが実装されていれば、配列化した要素をMapChip構造体として各レイヤに渡す また、各レイヤにMapChip構造体を渡すとき、レイヤ数より要素数が少ないときは、先頭に戻って繰り返し渡す仕様になっている 各MapChip構造体のマップチップの大きさを同じにしておく必要がある
- mapchips
マップチップ構造体群(MapChip構造体単体もしくは配列)
- map_struct
MapStruct構造体のインスタンス
- event_manager
MapEventManagerクラスのインスタンス。省略時(イベントを使わない時)はnil
- 返却値
生成したインスタンス
281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 |
# File 'lib/Miyako/API/map.rb', line 281 def initialize(mapchips, map_struct, event_manager=nil) if event_manager @em = event_manager.dup @em.set(self) else @em = nil end @mapchips = mapchips.to_a @visible = true @pos = Point.new(0, 0) @size = map_struct.size @w = @size.w @h = @size.h @event_layers = [] if map_struct.elayers raise MiyakoError "Event Manager is not registered!" unless @em map_struct.elayers.each{|events| event_layer = Array.new events.each_with_index{|ly, y| ly.each_with_index{|code, x| next unless @em.include?(code) event_layer.push(@em.create(code, x * @mapchips.first.chip_size.w, y * @mapchips.first.chip_size.h)) } } @event_layers << event_layer } end @event_layers << [] if @event_layers.empty? mc = @mapchips.cycle @mapchips = mc.take(map_struct.layer_num) @map_layers = [] map_struct.layers.each{|br| br = br.map{|b| b.map{|bb| bb >= @mapchips.first.chips ? -1 : bb } } @map_layers.push(MapLayer.new(mc.next, br, @size)) } end |
Instance Attribute Details
#h ⇒ Object (readonly) Also known as: map_h
Returns the value of attribute h.
33 34 35 |
# File 'lib/Miyako/API/map.rb', line 33 def h @h end |
#map_layers ⇒ Object (readonly)
Returns the value of attribute map_layers.
33 34 35 |
# File 'lib/Miyako/API/map.rb', line 33 def map_layers @map_layers end |
#mapchips ⇒ Object (readonly)
Returns the value of attribute mapchips.
33 34 35 |
# File 'lib/Miyako/API/map.rb', line 33 def mapchips @mapchips end |
#pos ⇒ Object (readonly)
Returns the value of attribute pos.
33 34 35 |
# File 'lib/Miyako/API/map.rb', line 33 def pos @pos end |
#size ⇒ Object (readonly) Also known as: map_size
Returns the value of attribute size.
33 34 35 |
# File 'lib/Miyako/API/map.rb', line 33 def size @size end |
#visible ⇒ Object
レンダリングの可否(true->描画 false->非描画)
32 33 34 |
# File 'lib/Miyako/API/map.rb', line 32 def visible @visible end |
#w ⇒ Object (readonly) Also known as: map_w
Returns the value of attribute w.
33 34 35 |
# File 'lib/Miyako/API/map.rb', line 33 def w @w end |
Instance Method Details
#[](idx) ⇒ Object
===設定したマージンを各レイヤーに同期させる マージンを設定した後は必ずこのメソッドを呼び出すこと
- 返却値
自分自身を返す
430 431 432 |
# File 'lib/Miyako/API/map.rb', line 430 def [](idx) return @map_layers[idx] end |
#add_event(idx, code, x, y) ⇒ Object
===マップにイベントを追加する EventManagerが登録されていないときや登録されていないイベント番号で追加したときは例外を返す
- idx
追加するイベントレイヤの指標
- code
イベント番号(Map.newメソッドで渡したイベント番号に対応)
- x
マップ上の初期位置(x方向)
- y
マップ上の初期位置(y方向)
- 返却値
自分自身を返す
338 339 340 341 342 343 |
# File 'lib/Miyako/API/map.rb', line 338 def add_event(idx, code, x, y) raise MiyakoError "Event Manager is not registered!" unless @em raise MiyakoError "Unregisted event code! : #{code}" unless @em.include?(code) @event_layers[idx].push(@em.create(code, x, y)) return self end |
#all_event_move!(dx, dy, *params) ⇒ Object
===全てのイベントに対してmove!メソッドを呼び出す 全レイヤーのイベントを呼び出すことに注意
- dx
x座標の移動量
- dy
y座標の移動量
- params
イベントのmove!メソッドを呼び出すときに渡す引数。可変個数
- 返却値
レシーバ
550 551 552 553 |
# File 'lib/Miyako/API/map.rb', line 550 def all_event_move!(dx, dy, *params) @event_layers.each{|el| el.each{|event| event.move!(dx, dy, *params) } } self end |
#all_event_pos_move!(dx, dy, *params) ⇒ Object
===全てのイベントに対してsprite_move!メソッドを呼び出す 全レイヤーのイベントを呼び出すことに注意
- dx
x座標の移動量
- dy
y座標の移動量
- params
イベントのmove!メソッドを呼び出すときに渡す引数。可変個数
- 返却値
レシーバ
596 597 598 599 |
# File 'lib/Miyako/API/map.rb', line 596 def all_event_pos_move!(dx, dy, *params) @event_layers.each{|el| el.each{|event| event.pos_move!(dx, dy, *params) } } self end |
#all_event_sprite_move!(dx, dy, *params) ⇒ Object
===全てのイベントに対してsprite_move!メソッドを呼び出す 全レイヤーのイベントを呼び出すことに注意
- dx
x座標の移動量
- dy
y座標の移動量
- params
イベントのmove!メソッドを呼び出すときに渡す引数。可変個数
- 返却値
レシーバ
573 574 575 576 |
# File 'lib/Miyako/API/map.rb', line 573 def all_event_sprite_move!(dx, dy, *params) @event_layers.each{|el| el.each{|event| event.sprite_move!(dx, dy, *params) } } self end |
#all_event_update(*params) ⇒ Object
===全てのイベントに対してupdateメソッドを呼び出す 全レイヤーのイベントを呼び出すことに注意 updateメソッドに渡されるレイヤーは、そのイベントが登録されているレイヤーのみ渡される
- params
イベントのupdateメソッドを呼び出すときに渡す引数。可変個数
509 510 511 512 |
# File 'lib/Miyako/API/map.rb', line 509 def all_event_update(*params) @event_layers.each{|el| el.each{|event| event.update(self, el, *params) } } self end |
#all_event_update2(*params) ⇒ Object
===全てのイベントに対してupdate2メソッドを呼び出す 全レイヤーのイベントを呼び出すことに注意
- params
イベントのupdate2メソッドを呼び出すときに渡す引数。可変個数
527 528 529 530 |
# File 'lib/Miyako/API/map.rb', line 527 def all_event_update2(*params) @event_layers.each{|el| el.each{|event| event.update2(*params) } } self end |
#append_event(idx, event) ⇒ Object
===マップに生成済みのイベントを追加する
- idx
追加するイベントレイヤの指標
- event
イベント番号(Map.newメソッドで渡したイベント番号に対応)
- 返却値
自分自身を返す
349 350 351 352 |
# File 'lib/Miyako/API/map.rb', line 349 def append_event(idx, event) @event_layers[idx].push(event) return self end |
#broad_rect ⇒ Object
===現在の画面の最大の大きさを矩形で取得する 但し、Mapの場合は最大の大きさ=画面の大きさなので、rectと同じ値が得られる
- 返却値
画像の大きさ(Rect構造体のインスタンス)
402 403 404 |
# File 'lib/Miyako/API/map.rb', line 402 def broad_rect return self.rect end |
#chip_size ⇒ Object
===マップチップ1枚の大きさを取得する マップチップの大きさが32×32ピクセルの場合は、[32,32]のSize構造体が返る
- 返却値
マップチップのサイズ(Size構造体)
460 461 462 |
# File 'lib/Miyako/API/map.rb', line 460 def chip_size return @mapchips.first.chip_size end |
#dispose ⇒ Object
===マップ情報を解放する
471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 |
# File 'lib/Miyako/API/map.rb', line 471 def dispose @map_layers.each{|l| l.dispose l = nil } @map_layers = Array.new @event_layers.each{|ee| ee.each{|e| e.dispose } ee.clear } @event_layers.clear @mapchips.clear @mapchips = nil end |
#event_move!(idx, dx, dy, *params) ⇒ Object
===指定のレイヤーのイベントに対してmove!メソッドを呼び出す イベントレイヤーidxの全てのイベントに対してmove!メソッドを呼び出す
- idx
更新するイベントレイヤーの番号
- dx
x座標の移動量
- dy
y座標の移動量
- params
イベントのmove!メソッドを呼び出すときに渡す引数。可変個数
- 返却値
レシーバ
539 540 541 542 |
# File 'lib/Miyako/API/map.rb', line 539 def event_move!(idx, dx, dy, *params) @event_layers[idx].each{|event| event.move!(dx, dy, *params) } self end |
#event_pos_move!(idx, dx, dy, *params) ⇒ Object
===指定のレイヤーのイベントに対してsprite_move!メソッドを呼び出す イベントレイヤーidxの全てのイベントに対してsprite_move!メソッドを呼び出す
- idx
更新するイベントレイヤーの番号
- dx
x座標の移動量
- dy
y座標の移動量
- params
イベントのmove!メソッドを呼び出すときに渡す引数。可変個数
- 返却値
レシーバ
585 586 587 588 |
# File 'lib/Miyako/API/map.rb', line 585 def event_pos_move!(idx, dx, dy, *params) @event_layers[idx].each{|event| event.pos_move!(dx, dy, *params) } self end |
#event_sprite_move!(idx, dx, dy, *params) ⇒ Object
===指定のレイヤーのイベントに対してsprite_move!メソッドを呼び出す イベントレイヤーidxの全てのイベントに対してsprite_move!メソッドを呼び出す
- idx
更新するイベントレイヤーの番号
- dx
x座標の移動量
- dy
y座標の移動量
- params
イベントのmove!メソッドを呼び出すときに渡す引数。可変個数
- 返却値
レシーバ
562 563 564 565 |
# File 'lib/Miyako/API/map.rb', line 562 def event_sprite_move!(idx, dx, dy, *params) @event_layers[idx].each{|event| event.sprite_move!(dx, dy, *params) } self end |
#event_update(idx, *params) ⇒ Object
===指定のレイヤーのイベントに対してupdateメソッドを呼び出す イベントレイヤーidxの全てのイベントに対してupdateメソッドを呼び出す ただし、updateメソッドに渡されるレイヤーは、idxで指定したレイヤーのイベントのみ渡される
- idx
更新するイベントレイヤーの番号
- params
イベントのupdateメソッドを呼び出すときに渡す引数。可変個数
- 返却値
レシーバ
500 501 502 503 |
# File 'lib/Miyako/API/map.rb', line 500 def event_update(idx, *params) @event_layers[idx].each{|event| event.update(self, @event_layers[idx], *params) } self end |
#event_update2(idx, *params) ⇒ Object
===指定のレイヤーのイベントに対してupdate2メソッドを呼び出す イベントレイヤーidxの全てのイベントに対してupdateメソッドを呼び出す
- idx
更新するイベントレイヤーの番号
- params
イベントのupdateメソッドを呼び出すときに渡す引数。可変個数
- 返却値
レシーバ
519 520 521 522 |
# File 'lib/Miyako/API/map.rb', line 519 def event_update2(idx, *params) @event_layers[idx].each{|event| event.update2(*params) } self end |
#events ⇒ Object
===マップに登録しているイベントインスタンス(マップイベント)を取得する
- 返却値
マップイベントの配列
490 491 492 |
# File 'lib/Miyako/API/map.rb', line 490 def events return @event_layers end |
#final ⇒ Object
===すべてのマップイベントを終了させる マップに登録しているイベントすべてのfinalメソッドを呼び出す
466 467 468 |
# File 'lib/Miyako/API/map.rb', line 466 def final @event_layers.each{|ee| ee.each{|e| e.final }} end |
#get_code(idx, x = 0, y = 0) {|code| ... } ⇒ Object
===実座標を使用して、指定のレイヤー・位置のマップチップ番号を取得 イベントレイヤーでの番号はイベント番号と一致する ブロックを渡すと、求めたマップチップ番号をブロック引数として受け取る評価を行える
- idx
マップレイヤー配列のインデックス
- x
マップチップ単位での位置(ピクセル単位)
- y
マップチップ単位での位置(ピクセル単位)
- 返却値
マップチップ番号(マップチップが設定されている時は0以上の整数、設定されていない場合は-1が返る)
441 442 443 444 445 |
# File 'lib/Miyako/API/map.rb', line 441 def get_code(idx, x = 0, y = 0) code = @map_layers[idx].get_code(x, y) yield code if block_given? return code end |
#initialize_copy(obj) ⇒ Object
:nodoc:
322 323 324 325 326 327 328 329 |
# File 'lib/Miyako/API/map.rb', line 322 def initialize_copy(obj) #:nodoc: @map_layers = @map_layers.dup @event_layers = @event_layers.dup @em = @em.dup if @em @mapchips = @mapchips.dup @size = @size.dup @pos = @pos.dup end |
#move(dx, dy) ⇒ Object
===マップを移動(移動量指定)位置を求める ただし、自分自身の位置は変わらない
- dx
移動量(x方向)
- dy
移動量(y方向)
- 返却値
変更した位置のインスタンス(Position構造体)
379 380 381 |
# File 'lib/Miyako/API/map.rb', line 379 def move(dx,dy) @pos.move(dx, dy) end |
#move!(dx, dy) ⇒ Object
===マップを移動(移動量指定)
- dx
移動量(x方向)
- dy
移動量(y方向)
- 返却値
自分自身を返す
358 359 360 361 362 |
# File 'lib/Miyako/API/map.rb', line 358 def move!(dx,dy) @pos.move!(dx, dy) @map_layers.each{|l| l.pos.move!(dx, dy) } return self end |
#move_to(x, y) ⇒ Object
===マップを移動(移動先指定)位置を求める ただし、自分自身の位置は変わらない
- dx
移動先(x方向)
- dy
移動先(y方向)
- 返却値
変更した位置のインスタンス(Position構造体)
388 389 390 |
# File 'lib/Miyako/API/map.rb', line 388 def move_to(x,y) @pos.move_to(x, y) end |
#move_to!(x, y) ⇒ Object
===マップを移動(移動先指定)
- dx
移動先(x方向)
- dy
移動先(y方向)
- 返却値
自分自身を返す
368 369 370 371 372 |
# File 'lib/Miyako/API/map.rb', line 368 def move_to!(x,y) @pos.move_to!(x, y) @map_layers.each{|l| l.pos.move_to!(x, y) } return self end |
#rect ⇒ Object
===画像の表示矩形を取得する Mapの大きさを矩形で取得する。値は、Screen.rectメソッドの値と同じ。
- 返却値
生成された矩形
395 396 397 |
# File 'lib/Miyako/API/map.rb', line 395 def rect return Screen.rect end |
#render ⇒ Object
===マップを画面に描画する 転送する画像は、マップ上のから(-margin.x, -margin.y)(単位:ピクセル)の位置に対応するチップを左上にして描画する 各レイヤ-を、レイヤーインデックス番号の若い順に描画する 但し、マップイベントは描画しない ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|画面のSpriteUnit|となる。 visibleメソッドの値がfalseのときは描画されない。
- 返却値
自分自身を返す
610 611 |
# File 'lib/Miyako/API/map.rb', line 610 def render end |
#render_to(dst) ⇒ Object
===マップを画像に描画する 転送する画像は、マップ上のから(-margin.x, -margin.y)(単位:ピクセル)の位置に対応するチップを左上にして描画する 各レイヤ-を、レイヤーインデックス番号の若い順に描画する 但し、マップイベントは描画しない ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|転送先のSpriteUnit|となる。 visibleメソッドの値がfalseのときは描画されない。
- dst
転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- 返却値
自分自身を返す
623 624 |
# File 'lib/Miyako/API/map.rb', line 623 def render_to(dst) end |
#set_mapchip_base(idx, code, base) ⇒ Object
===対象のマップチップ番号の画像を置き換える
- idx
置き換えるマップチップレイヤー番号
- code
置き換えるマップチップ番号
- base
置き換え対象の画像・アニメーション
- 返却値
自分自身を返す
452 453 454 455 |
# File 'lib/Miyako/API/map.rb', line 452 def set_mapchip_base(idx, code, base) @map_layers[idx].mapchip_units[code] = base return self end |
#to_sprite {|sprite| ... } ⇒ Object
===スプライトに変換した画像を表示する すべてのパーツを貼り付けた、1枚のスプライトを返す 引数1個のブロックを渡せば、スプライトに補正をかけることが出来る
- 返却値
描画したスプライト
410 411 412 413 414 415 416 417 418 |
# File 'lib/Miyako/API/map.rb', line 410 def to_sprite rect = self.broad_rect sprite = Sprite.new(:size=>rect.to_a[2,2], :type=>:ac) Drawing.fill(sprite, [0,0,0]) Bitmap.ck_to_ac!(sprite, [0,0,0]) self.render_to(sprite){|sunit, dunit| sunit.x -= rect.x; sunit.y -= rect.y } yield sprite if block_given? return sprite end |
#to_unit ⇒ Object
===SpriteUnit構造体を生成する いったんSpriteインスタンスを作成し、それをもとにSpriteUnit構造体を生成する。
- 返却値
生成したSpriteUnit構造体
423 424 425 |
# File 'lib/Miyako/API/map.rb', line 423 def to_unit return self.to_sprite.to_unit end |