Class: Miyako::Plane
Overview
プレーン(画面いっぱいにタイル表示される画像)を表現するクラス
Class Method Summary collapse
-
.resize ⇒ Object
:nodoc:.
Instance Method Summary collapse
-
#broad_rect ⇒ Object
現在の画面の最大の大きさを矩形で取得する 但し、Planeの場合は最大の大きさ=画面の大きさなので、rectと同じ値が得られる 返却値:: 生成された矩形(Rect構造体のインスタンス).
-
#dispose ⇒ Object
プレーンのデータを解放する.
-
#initialize(param) ⇒ Plane
constructor
インスタンスの作成 パラメータは、Sprite.newのパラメータと同じ。但し、追加のパラメータがある。.
-
#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
プレーンの表示位置を移動させたときの位置を求める(移動位置指定) 画像スクロールと同じ効果を得る ただし、自分自身の位置は変わらない x:: 移動先の位置(x 座標) y:: 移動先の位置(y 座標) 返却値:: 変更したPosition構造体を返す.
-
#move_to!(x, y) ⇒ Object
プレーンの表示位置を移動させる(移動位置指定) 画像スクロールと同じ効果を得る x:: 移動先の位置(x 座標) y:: 移動先の位置(y 座標) 返却値:: 自分自身を返す.
-
#rect ⇒ Object
画像の表示矩形を取得する Planeの大きさを矩形で取得する。値は、Screen.rectメソッドの値と同じ。 返却値:: 生成された矩形(Rect構造体のインスタンス).
-
#render ⇒ Object
プレーンを画面に描画する 転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点にする。 画面の描画範囲は、src側SpriteUnitの(x,y)を起点に、タイリングを行いながら貼り付ける。 visibleメソッドの値がfalseのときは描画されない。.
-
#render_to(dst) ⇒ Object
プレーンを画像に描画する 転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点にする。 転送先の描画範囲は、src側SpriteUnitの(x,y)を起点に、タイリングを行いながら貼り付ける。 visibleメソッドの値がfalseのときは描画されない。 dst:: 転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス).
-
#resize ⇒ Object
:nodoc:.
-
#to_sprite {|sprite| ... } ⇒ Object
現在表示されているプレーンをSpriteクラスのインスタンスとして取得 引数1個のブロックを渡せば、スプライトに補正をかけることが出来る 返却値:: 取り込んだ画像を含むSpriteクラスのインスタンス.
-
#to_unit ⇒ Object
SpriteUnit構造体を生成する いったんSpriteインスタンスを作成し、それをもとにSpriteUnit構造体を生成する。 返却値:: 生成したSpriteUnit構造体.
-
#update_animation ⇒ Object
描画の素になるスプライトのアニメーションを更新する 返却値:: 更新した結果、パターンが変わった・アニメーションが終了したときはtrue、それ以外はfalseを返す.
-
#x ⇒ Object
プレーン画像左上の x 座標の値を取得する 元画像の左上の位置がどこにあるのかを示す 返却値:: x 座標の値.
-
#y ⇒ Object
プレーン画像左上の y 座標の値を取得する 元画像の左上の位置がどこにあるのかを示す 返却値:: y 座標の値.
Methods included from Animation
[], []=, anim_hash, #reset, reset, start, #start, #stop, stop, update, 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, #visible, #visible=
Constructor Details
#initialize(param) ⇒ Plane
インスタンスの作成
パラメータは、Sprite.newのパラメータと同じ。但し、追加のパラメータがある。
:sprite => (インスタンス) : 表示対象のスプライト(アニメーション)のインスタンス
- param
-
プレーンの情報(:sprite(=>Sprite・SpriteAnimationクラスのインスタンス))
- 返却値
-
生成したインスタンス
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/Miyako/API/plane.rb', line 42 def initialize(param) if param.has_key?(:sprite) @sprite = param[:sprite] else @sprite = Sprite.new(param) end resize @pos = Point.new(0, 0) @visible = true end |
Class Method Details
Instance Method Details
#broad_rect ⇒ Object
現在の画面の最大の大きさを矩形で取得する
但し、Planeの場合は最大の大きさ=画面の大きさなので、rectと同じ値が得られる
- 返却値
-
生成された矩形(Rect構造体のインスタンス)
132 133 134 |
# File 'lib/Miyako/API/plane.rb', line 132 def broad_rect return self.rect end |
#dispose ⇒ Object
プレーンのデータを解放する
137 138 139 |
# File 'lib/Miyako/API/plane.rb', line 137 def dispose @sprite.dispose end |
#initialize_copy(obj) ⇒ Object
:nodoc:
53 54 55 56 |
# File 'lib/Miyako/API/plane.rb', line 53 def initialize_copy(obj) #:nodoc: @sprite = @sprite.dup @pos = @pos.dup end |
#move(dx, dy) ⇒ Object
プレーンの表示位置を移動させたときの位置を求める
画像スクロールと同じ効果を得る ただし、自分自身の位置は変わらない
- dx
-
移動量(x 座標)
- dy
-
移動量(y 座標)
- 返却値
-
変更したPosition構造体を返す
108 109 110 |
# File 'lib/Miyako/API/plane.rb', line 108 def move(dx, dy) return adjust_pos(@pos.move(dx, dy)) end |
#move!(dx, dy) ⇒ Object
プレーンの表示位置を移動させる
画像スクロールと同じ効果を得る
- dx
-
移動量(x 座標)
- dy
-
移動量(y 座標)
- 返却値
-
自分自身を返す
85 86 87 88 89 |
# File 'lib/Miyako/API/plane.rb', line 85 def move!(dx, dy) @pos.move!(dx, dy) @pos = adjust_pos(@pos) return self end |
#move_to(x, y) ⇒ Object
プレーンの表示位置を移動させたときの位置を求める(移動位置指定)
画像スクロールと同じ効果を得る ただし、自分自身の位置は変わらない
- x
-
移動先の位置(x 座標)
- y
-
移動先の位置(y 座標)
- 返却値
-
変更したPosition構造体を返す
118 119 120 |
# File 'lib/Miyako/API/plane.rb', line 118 def move_to(x, y) return adjust_pos(@pos.move_to(x, y)) end |
#move_to!(x, y) ⇒ Object
プレーンの表示位置を移動させる(移動位置指定)
画像スクロールと同じ効果を得る
- x
-
移動先の位置(x 座標)
- y
-
移動先の位置(y 座標)
- 返却値
-
自分自身を返す
96 97 98 99 100 |
# File 'lib/Miyako/API/plane.rb', line 96 def move_to!(x, y) @pos.move_to!(x, y) @pos = adjust_pos(@pos) return self end |
#rect ⇒ Object
画像の表示矩形を取得する
Planeの大きさを矩形で取得する。値は、Screen.rectメソッドの値と同じ。
- 返却値
-
生成された矩形(Rect構造体のインスタンス)
125 126 127 |
# File 'lib/Miyako/API/plane.rb', line 125 def rect return Screen.rect end |
#render ⇒ Object
プレーンを画面に描画する
転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点にする。 画面の描画範囲は、src側SpriteUnitの(x,y)を起点に、タイリングを行いながら貼り付ける。 visibleメソッドの値がfalseのときは描画されない。
175 176 177 178 179 180 181 182 |
# File 'lib/Miyako/API/plane.rb', line 175 def render @size.h.times{|y| @size.w.times{|x| @sprite.render_xy(x * @sprite.ow + @pos.x, y * @sprite.oh + @pos.y) } } return self end |
#render_to(dst) ⇒ Object
プレーンを画像に描画する
転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点にする。 転送先の描画範囲は、src側SpriteUnitの(x,y)を起点に、タイリングを行いながら貼り付ける。 visibleメソッドの値がfalseのときは描画されない。
- dst
-
転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
189 190 191 192 193 194 195 196 |
# File 'lib/Miyako/API/plane.rb', line 189 def render_to(dst) @size.h.times{|y| @size.w.times{|x| @sprite.render_xy_to(dst, x * @sprite.ow + @pos.x, y * @sprite.oh + @pos.y) } } return self end |
#resize ⇒ Object
:nodoc:
30 31 32 33 |
# File 'lib/Miyako/API/plane.rb', line 30 def resize #:nodoc: @size = Size.new(((Screen.w + @sprite.ow - 1) / @sprite.ow + 2), ((Screen.h + @sprite.oh - 1) / @sprite.oh + 2)) end |
#to_sprite {|sprite| ... } ⇒ Object
現在表示されているプレーンをSpriteクラスのインスタンスとして取得
引数1個のブロックを渡せば、スプライトに補正をかけることが出来る
- 返却値
-
取り込んだ画像を含むSpriteクラスのインスタンス
150 151 152 153 154 155 156 157 |
# File 'lib/Miyako/API/plane.rb', line 150 def to_sprite sprite = Sprite.new(:size=>self.rect.to_a[2..3], :type=>:ac) Drawing.fill(sprite, [0,0,0]) Bitmap.ck_to_ac!(sprite, [0,0,0]) self.render_to(sprite) yield sprite if block_given? return sprite end |
#to_unit ⇒ Object
SpriteUnit構造体を生成する
いったんSpriteインスタンスを作成し、それをもとにSpriteUnit構造体を生成する。
- 返却値
-
生成したSpriteUnit構造体
162 163 164 |
# File 'lib/Miyako/API/plane.rb', line 162 def to_unit return self.to_sprite.to_unit end |
#update_animation ⇒ Object
描画の素になるスプライトのアニメーションを更新する
- 返却値
-
更新した結果、パターンが変わった・アニメーションが終了したときはtrue、それ以外はfalseを返す
143 144 145 |
# File 'lib/Miyako/API/plane.rb', line 143 def update_animation return @sprite.update_animation end |
#x ⇒ Object
プレーン画像左上の x 座標の値を取得する
元画像の左上の位置がどこにあるのかを示す
- 返却値
-
x 座標の値
61 62 63 |
# File 'lib/Miyako/API/plane.rb', line 61 def x return @pos.x end |
#y ⇒ Object
プレーン画像左上の y 座標の値を取得する
元画像の左上の位置がどこにあるのかを示す
- 返却値
-
y 座標の値
68 69 70 |
# File 'lib/Miyako/API/plane.rb', line 68 def y return @pos.y end |