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ピクセルの場合は、の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
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 |