Class: Miyako::SpriteUnitBase

Inherits:
Struct
  • Object
show all
Defined in:
lib/Miyako/API/spriteunit.rb

Overview

SpriteUnitを生成するための構造体クラス

Structクラスからの継承 – SpriteUnit = Struct.new(:bitmap, :ox, :oy, :ow, :oh, :x, :y, :cx, :cy) ++

Instance Method Summary collapse

Instance Method Details

#broad_rectObject

現在の画面の最大の大きさを矩形で取得する

但し、SpriteUnitの場合は最大の大きさ=画像の大きさなので、rectと同じ値が得られる

返却値

画像の大きさ(Rect構造体のインスタンス)


118
119
120
# File 'lib/Miyako/API/spriteunit.rb', line 118

def broad_rect
  return self.rect
end

#move(dx, dy) ⇒ Object

位置を変更したときの値を求める(変化量を指定)

位置を右方向へdxピクセル、下方向へdyピクセル移動する そのときの値をPosition構造体のインスタンスとして返す ただし、そのときの値が得られるだけで、自信の値に変更はない

dx

移動量(x方向)。単位はピクセル

dy

移動量(y方向)。単位はピクセル

返却値

更新した位置を示すPosition構造体のインスタンス


72
73
74
# File 'lib/Miyako/API/spriteunit.rb', line 72

def move(dx, dy)
  Position.new(self.x+dx, self.y+dy)
end

#move!(dx, dy) ⇒ Object

位置を変更する(変化量を指定)

位置を右方向へdxピクセル、下方向へdyピクセル移動する ブロックを渡すと、ブロック評価中の位置を変更する

dx

移動量(x方向)。単位はピクセル

dy

移動量(y方向)。単位はピクセル

返却値

自分自身を返す


37
38
39
40
41
42
43
44
45
46
# File 'lib/Miyako/API/spriteunit.rb', line 37

def move!(dx, dy)
  o = [self.x, self.y]
  self.x+=dx
  self.y+=dy
  if block_given?
    yield
    self.x, self.y = o
  end
  return self
end

#move_to(x, y) ⇒ Object

位置を変更したときの値を求める(位置指定)

左上を(0.0)として、位置を右xピクセル、下yピクセルの位置移動する そのときの値をPosition構造体のインスタンスとして返す ただし、そのときの値が得られるだけで、自信の値に変更はない

x

移動先位置(x方向)。単位はピクセル

y

移動先位置(y方向)。単位はピクセル

返却値

更新した位置を示すPosition構造体のインスタンス


83
84
85
# File 'lib/Miyako/API/spriteunit.rb', line 83

def move_to(x, y)
  Position.new(x, y)
end

#move_to!(x, y) ⇒ Object

位置を変更する(位置指定)

左上を(0.0)として、位置を右xピクセル、下yピクセルの位置移動する ブロックを渡すと、ブロック評価中の位置を変更する

x

移動先位置(x方向)。単位はピクセル

y

移動先位置(y方向)。単位はピクセル

返却値

自分自身を返す


54
55
56
57
58
59
60
61
62
63
# File 'lib/Miyako/API/spriteunit.rb', line 54

def move_to!(x, y)
  o = [self.x, self.y]
  self.x=x
  self.y=y
  if block_given?
    yield
    self.x, self.y = o
  end
  return self
end

#rectObject

画像の表示矩形を取得する

画像が表示されているときの矩形を取得する。矩形は、で取得する。

返却値

生成された矩形


111
112
113
# File 'lib/Miyako/API/spriteunit.rb', line 111

def rect
  return Rect.new(self.x, self.y, self.ow, self.oh)
end

#to_sprite {|sprite| ... } ⇒ Object

スプライトを生成して返す

ダックタイピング用のメソッド 所持しているSpriteUnitから、Spriteクラスのインスタンスを生成する 但し、bitmapの設定は:type=>:alpha_channelのみ 引数1個のブロックを渡せば、スプライトに補正をかけることが出来る

返却値

生成したスプライト

Yields:

  • (sprite)

102
103
104
105
106
# File 'lib/Miyako/API/spriteunit.rb', line 102

def to_sprite
  sprite = Sprite.new(:unit=>self, :type=>:ac)
  yield sprite if block_given?
  return sprite
end

#to_unitObject

自分自身を返す

SpriteUnit対応 ダックタイピング用のメソッド 得られるインスタンスは複写していないので、インスタンスの値を調整するには、dupメソッドで複製する必要がある

返却値

自分自身


92
93
94
# File 'lib/Miyako/API/spriteunit.rb', line 92

def to_unit
  return self
end