Class: Miyako::Sprite
- Extended by:
- Forwardable
- Includes:
- Animation, Layout, SpriteBase, SingleEnumerable
- Defined in:
- lib/Miyako/API/sprite.rb
Overview
スプライト管理クラス
Constant Summary collapse
- @@abb =
{:ck => :color_key, :as => :alpha_surface, :ac => :alpha_channel}
- @@sprites =
SpriteList.new
Instance Attribute Summary collapse
-
#collision ⇒ Object
Collision#bindで関連づけられた当たり判定.
-
#tr_color ⇒ Object
readonly
カラーキーが有向になっている場合のRGB値。の配列(各要素は0~255の整数).
-
#type ⇒ Object
readonly
画像の透明度・透過タイプを取得する(詳細はSprite.newメソッドを参照).
-
#visible ⇒ Object
レンダリングの可否(true->描画 false->非描画).
Class Method Summary collapse
- .[](name) ⇒ Object
- .[]=(name, sprite) ⇒ Object
-
.render_to(src, dst) ⇒ Object
インスタンスの内容を別のインスタンスに描画する 転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点に、src側(ow,oh)の範囲で転送する。 画面の描画範囲は、src側SpriteUnitの(x,y)を起点に設定にする。 ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) ブロックの引数は、|転送元のSpriteUnit,転送先のSpriteUnit|となる。 (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) src:: 転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) dst:: 転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) 返却値:: 自分自身を返す.
- .sprites ⇒ Object
Instance Method Summary collapse
-
#additive(src, &block) ⇒ Object
2枚の画像の加算合成を行う 範囲は、src側の(ow,oh)の範囲で転送する。転送先の描画開始位置は、src側の(x,y)を左上とする。 ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。 src:: 転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) 返却値:: 変更後の新しい画像インスタンス.
-
#additive!(src, &block) ⇒ Object
2枚の画像の加算合成を行う 範囲は、src側の(ow,oh)の範囲で転送する。転送先の描画開始位置は、src側の(x,y)を左上とする。 ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。 src:: 転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) 返却値:: 変更後の自分自身を返す.
-
#and(src, &block) ⇒ Object
2つの画像のandを取り、別の画像へ転送する 重ね合わせの式は、“src and self -> dst”で表される。自分自身と転送先画像は同じ大きさとなる。 範囲は、インスタンス側とsrc側との(ow,oh)の小さい方の範囲で転送する。 src側の(x,y)をインスタンス側の起点として、src側の(ow,oh)の範囲で転送する。 ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。 src:: 転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) 返却値:: 変更後の新しい画像インスタンス.
-
#and!(src, &block) ⇒ Object
2つの画像のandを破壊的に行う 重ね合わせの式は、“src and self -> self”で表される。 範囲は、インスタンス側とsrc側との(ow,oh)の小さい方の範囲で転送する。 src側の(x,y)をインスタンス側の起点として、src側の(ow,oh)の範囲で転送する。 ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。 src:: 転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) 返却値:: 変更後の自分自身を返す.
-
#bitmap ⇒ Object
:nodoc:.
-
#bitmap=(bmp) ⇒ Object
:nodoc:.
-
#black_out(degree, &block) ⇒ Object
画像の色を一定の割合で黒に近づける(ブラックアウト) 赤・青・緑・αの各要素を一定の割合で下げ、黒色に近づける。 degreeの値が1.0に近づけば近づくほど黒色に近づく(値が0.0のときは変化なし、1.0のときは真っ黒になる) αの値が0のときは変わらないことに注意! ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。 degree:: 変化率。0.0<=degree<=1.0までの実数 返却値:: 変更後の新しい画像インスタンス.
-
#black_out!(degree, &block) ⇒ Object
画像の色を一定の割合で黒に近づける(ブラックアウト) 赤・青・緑・αの各要素を一定の割合で下げ、黒色に近づける。 degreeの値が1.0に近づけば近づくほど黒色に近づく(値が0.0のときは変化なし、1.0のときは真っ黒になる) αの値が0のときは変わらないことに注意! ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。 degree:: 変化率。0.0<=degree<=1.0までの実数 返却値:: 変更後の自分自身を返す.
-
#broad_rect ⇒ Object
現在の画面の最大の大きさを矩形で取得する 但し、Spriteの場合は最大の大きさ=スプライトの大きさなので、rectと同じ値が得られる 返却値:: 画像の大きさ(Rect構造体のインスタンス).
-
#center_x ⇒ Object
画像の回転・拡大・縮小の中心座標を取得する x方向の中心座標を取得する 返却値:: 中心座標。.
-
#center_x=(pos) ⇒ Object
画像の回転・拡大・縮小の中心座標を取得する x方向の中心座標を取得する pos:: 中心座標.
-
#center_y ⇒ Object
画像の回転・拡大・縮小の中心座標を取得する y方向の中心座標を取得する 返却値:: 中心座標。.
-
#center_y=(pos) ⇒ Object
画像の回転・拡大・縮小の中心座標を取得する y方向の中心座標を取得する pos:: 中心座標.
-
#clear! ⇒ Object
画像の内容を破壊的に消去する インスタンスの複製を行う(画像インスタンスも複製) 引数1個のブロックを渡せば、スプライトに補正をかけることが出来る 注意事項: 1.複製のため、呼び出していくとメモリ使用量が著しく上がる 2.レイアウト情報がリセットされる(snapの親子関係が解消される) 返却値:: 自分自身を返す.
-
#dec_alpha(degree, &block) ⇒ Object
画像のαチャネルの値を一定の割合で変化させて転送する degreeの値が1.0に近づけば近づくほど透明に近づき、 degreeの値が-1.0に近づけば近づくほど不透明に近づく(値が-1.0のときは完全不透明、値が0.0のときは変化なし、1.0のときは完全に透明になる) 但し、元々αの値がゼロの時は変化しない ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。 degree:: 減少率。-1.0<=degree<=1.0までの実数 返却値:: 変更後の新しい画像インスタンス.
-
#dec_alpha!(degree, &block) ⇒ Object
画像のαチャネルの値を一定の割合で破壊的に変化させる degreeの値が1.0に近づけば近づくほど透明に近づき、 degreeの値が-1.0に近づけば近づくほど不透明に近づく (値が-1.0のときは完全不透明、値が0.0のときは変化なし、1.0のときは完全に透明になる) 但し、元々αの値がゼロの時は変化しない ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。 degree:: 減少率。-1.0<=degree<=1.0までの実数 返却値:: 変更後の自分自身を返す.
-
#dispose ⇒ Object
画像を解放する 内部で使用しているデータをインスタンスから解放する.
-
#fill(color) ⇒ Object
画像全体を指定の色で塗りつぶす color:: 塗りつぶす色。Color.to_rgbメソッドのパラメータでの指定が可能 返却値:: 自分自身を返す.
-
#h ⇒ Object
画像の高さを取得する 返却値:: 画像の高さ(ピクセル).
-
#hsv(degree, saturation, value, &block) ⇒ Object
画像の色相・彩度・明度を変更する ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。 degree:: 色相の変更量。単位は度(実数)。範囲は、-360.0<degree<360.0 saturation:: 彩度の変更量。範囲は0.0〜1.0の実数 value:: 明度の変更量。範囲は0.0〜1.0の実数 返却値:: 変更後の新しい画像インスタンス.
-
#hsv!(degree, saturation, value, &block) ⇒ Object
画像の色相・彩度・明度を変更する ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。 degree:: 色相の変更量。単位は度(実数)。範囲は、-360.0<degree<360.0 saturation:: 彩度の変更量。範囲は0.0〜1.0の実数 value:: 明度の変更量。範囲は0.0〜1.0の実数 返却値:: 変更後の画像インスタンス.
-
#hue(degree, &block) ⇒ Object
画像の色相を変更する ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。 degree:: 色相の変更量。単位は度(実数)。範囲は、-360.0<degree<360.0 返却値:: 変更後の新しい画像インスタンス.
-
#hue!(degree, &block) ⇒ Object
画像の色相を変更する degree:: 色相の変更量。単位は度(実数)。範囲は、-360.0<degree<360.0 ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。 返却値:: 変更後の画像インスタンス 返却値:: 変更後の自分自身を返す.
-
#image_rect ⇒ Object
スプライトの元画像の矩形を返す 返却値:: Rect構造体インスタンス.
-
#image_size ⇒ Object
スプライトの元画像の大きさを返す 返却値:: Size構造体インスタンス.
-
#initialize(param) ⇒ Sprite
constructor
インスタンス生成 スプライトをファイルや画像サイズから生成します。 Screen.init/Miyako.openが呼ばれる前に作成しようとするとMiyakoError例外が発生します.
-
#initialize_copy(obj) ⇒ Object
複写時に呼び出されるメソッド 複写と同時に、本インスタンスに対するスナップの関係を解消.
-
#inverse(&block) ⇒ Object
画像のRGB値を反転させる αチャネルの値は変更しない ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。 返却値:: 変更後の新しい画像インスタンス.
-
#inverse!(&block) ⇒ Object
画像のRGB値を反転させる αチャネルの値は変更しない ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。 返却値:: 変更後の自分自身を返す.
-
#oh=(v) ⇒ Object
画像の表示高を指定する ohを指定すると、縦方向の一部のみ表示される。 値が画像の高さの範囲外(値がマイナス、画像の高さを超える値)のときは例外が発生する v:: 表示高。整数で指定.
-
#or(src, &block) ⇒ Object
2つの画像のorを取り、別の画像へ転送する 重ね合わせの式は、“src or self -> dst”で表される。自分自身と転送先画像は同じ大きさとなる。 範囲は、インスタンス側とsrc側との(ow,oh)の小さい方の範囲で転送する。 src側の(x,y)をインスタンス側の起点として、src側の(ow,oh)の範囲で転送する。 ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。 src:: 転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) 返却値:: 変更後の新しい画像インスタンス.
-
#or!(src, &block) ⇒ Object
2つの画像のorを破壊的に行う 重ね合わせの式は、“src or self -> self”で表される。 範囲は、インスタンス側とsrc側との(ow,oh)の小さい方の範囲で転送する。 src側の(x,y)をインスタンス側の起点として、src側の(ow,oh)の範囲で転送する。 ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。 src:: 転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) 返却値:: 変更後の自分自身を返す.
-
#ow=(v) ⇒ Object
画像の表示幅を指定する owを指定すると、横方向の一部のみ表示される。 値が画像の幅の範囲外(値がマイナス、画像の幅を超える値)のときは例外が発生する v:: 表示幅。整数で指定.
-
#ox=(v) ⇒ Object
画像の表示開始位置(X座標)を指定する oxを指定すると、表示の左上位置が変更される。 値が画像の幅の範囲外(値がマイナス、画像の幅を超える値)のときは例外が発生する v:: 表示開始位置。整数で指定.
-
#oy=(v) ⇒ Object
画像の表示開始位置(Y座標)を指定する oyを指定すると、表示の左上位置が変更される。 値が画像の高さの範囲外(値がマイナス、画像の高さを超える値)のときは例外が発生する v:: 表示開始位置。整数で指定.
-
#part_move(dx, dy) ⇒ Object
範囲を画像の大きさに合わせながら、部分描画開始位置を移動させる ただし、移動した後の矩形を得られるだけで、内部を変更しない 返却値:: 変更後の部分描画矩形(Rect構造体).
-
#part_move!(dx, dy) ⇒ Object
範囲を画像の大きさに合わせながら、部分描画開始位置を移動させる.
-
#part_move_to(x, y) ⇒ Object
範囲を画像の大きさに合わせながら、部分描画開始位置を移動させる ただし、移動した後の矩形を得られるだけで、内部を変更しない 返却値:: 変更後の部分描画矩形(Rect構造体).
-
#part_move_to!(x, y) ⇒ Object
範囲を画像の大きさに合わせながら、部分描画開始位置を移動させる 返却値:: 自分自身.
-
#part_rect ⇒ Object
スプライトの部分描画矩形を返す 返却値:: Rect構造体インスタンス.
-
#part_resize(dw, dh) ⇒ Object
範囲を画像の大きさに合わせながら、部分描画の大きさを変える ただし、移動した後の矩形を得られるだけで、内部を変更しない 返却値:: 変更後の部分描画矩形(Rect構造体).
-
#part_resize!(dw, dh) ⇒ Object
範囲を画像の大きさに合わせながら、部分描画の大きさを変える 返却値:: 自分自身.
-
#part_resize_to(w, h) ⇒ Object
範囲を画像の大きさに合わせながら、部分描画の大きさを変える ただし、移動した後の矩形を得られるだけで、内部を変更しない 返却値:: 変更後の部分描画矩形(Rect構造体).
-
#part_resize_to!(w, h) ⇒ Object
範囲を画像の大きさに合わせながら、部分描画の大きさを変える 返却値:: 自分自身.
-
#rect ⇒ Object
画像の表示矩形を取得する 画像が表示されているときの矩形(Rect構造体)を取得する 返却値:: 生成された矩形(Rect構造体インスタンス).
-
#render ⇒ Object
インスタンスの内容を画面に描画する 現在の画像を、現在の状態で描画するよう指示する ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|インスタンスのSpriteUnit, 画面のSpriteUnit|となる。 visibleメソッドの値がfalseのときは描画されない。 返却値:: 自分自身を返す.
-
#render_rect(rect) ⇒ Object
部分矩形の一部分を画面に描画する 現在の画像を、現在の状態で描画するよう指示する ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|インスタンスのSpriteUnit, 画面のSpriteUnit|となる。 visibleメソッドの値がfalseのときは描画されない。 返却値:: 自分自身を返す.
-
#render_rect2(rect) ⇒ Object
画像の一部分を画面に描画する 画像の一部分(rect構造体で示した矩形)を画面に描画する このメソッドでは、部分矩形を無視して描画する visibleメソッドの値がfalseのときは描画されない。 rect:: Rect構造体 返却値:: 自分自身を返す.
-
#render_rect2_to(dst, rect) ⇒ Object
画像の一部分を別のインスタンスに描画する 画像の一部分(rect構造体で示した矩形)を別のスプライトに描画する このメソッドでは、部分矩形を無視して描画する visibleメソッドの値がfalseのときは描画されない。 dst:: 転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) rect:: Rect構造体 返却値:: 自分自身を返す.
-
#render_rect2_xy(rect, x, y) ⇒ Object
画像の一部分を画面の指定の位置に描画する 画像の一部分(rect構造体で示した矩形)を画面のの位置を開始点として描画する このメソッドでは、あらかじめ持っている描画開始位置と部分矩形を無視して描画する visibleメソッドの値がfalseのときは描画されない。 rect:: Rect構造体 x:: 描画開始位置(x座標) y:: 描画開始位置(y座標) 返却値:: 自分自身を返す.
-
#render_rect2_xy_to(dst, rect, x, y) ⇒ Object
画像の一部分を別のインスタンスの指定の位置にに描画する 画像の一部分(rect構造体で示した矩形)をスプライトのの位置を開始点として描画する このメソッドでは、あらかじめ持っている描画開始位置と部分矩形を無視して描画する visibleメソッドの値がfalseのときは描画されない。 dst:: 転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) rect:: Rect構造体 x:: 描画開始位置(x座標) y:: 描画開始位置(y座標) 返却値:: 自分自身を返す.
-
#render_rect_to(dst, rect) ⇒ Object
部分矩形の一部分を別のインスタンスに描画する 転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点に、src側(ow,oh)の範囲で転送する。 画面の描画範囲は、src側SpriteUnitの(x,y)を起点に設定にする。 ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|インスタンスのSpriteUnit,転送先のSpriteUnit|となる。 visibleメソッドの値がfalseのときは描画されない。 dst:: 転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) 返却値:: 自分自身を返す.
-
#render_rect_xy(rect, x, y) ⇒ Object
部分矩形の一部分を画面の指定の位置に描画する 画像の一部分(rect構造体で示した矩形)を画面のの位置を開始点として描画する このメソッドでは、あらかじめ持っている描画開始位置を無視して描画する visibleメソッドの値がfalseのときは描画されない。 rect:: Rect構造体 x:: 描画開始位置(x座標) y:: 描画開始位置(y座標) 返却値:: 自分自身を返す.
-
#render_rect_xy_to(dst, rect, x, y) ⇒ Object
部分矩形の一部分を別のインスタンスの指定の位置にに描画する 画像の一部分(rect構造体で示した矩形)をスプライトのの位置を開始点として描画する このメソッドでは、あらかじめ持っている描画開始位置を無視して描画する visibleメソッドの値がfalseのときは描画されない。 dst:: 転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) rect:: Rect構造体 x:: 描画開始位置(x座標) y:: 描画開始位置(y座標) 返却値:: 自分自身を返す.
-
#render_to(dst) ⇒ Object
インスタンスの内容を別のインスタンスに描画する 転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点に、src側(ow,oh)の範囲で転送する。 画面の描画範囲は、src側SpriteUnitの(x,y)を起点に設定にする。 ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|インスタンスのSpriteUnit,転送先のSpriteUnit|となる。 visibleメソッドの値がfalseのときは描画されない。 dst:: 転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) 返却値:: 自分自身を返す.
-
#render_to_transform(dst, radian, xscale, yscale) ⇒ Object
インスタンスの内容を画面に描画する(回転/拡大/縮小/鏡像付き) 転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点に、src側(ow,oh)の範囲で転送する。回転の中心はsrc側(ox,oy)を起点に、src側(cx,cy)が中心になるように設定する。 画面の描画範囲は、src側SpriteUnitの(x,y)を起点に、画面側SpriteUnitの(cx,cy)が中心になるように設定にする。 回転角度が正だと右回り、負だと左回りに回転する 変形の度合いは、src側SpriteUnitのxscale, yscaleを使用する(ともに実数で指定する)。それぞれ、x方向、y方向の度合いとなる 度合いが scale > 1.0 だと拡大、 0 < scale < 1.0 だと縮小、scale < 0.0 負だと鏡像の拡大・縮小になる(scale == -1.0 のときはミラー反転になる) また、変形元の幅・高さのいずれかが32768以上の時は回転・転送を行わない ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|インスタンスのSpriteUnit,転送先のSpriteUnit|となる。 visibleメソッドの値がfalseのときは描画されない。 dst:: 転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) radian:: 回転角度。単位はラジアン。値の範囲は0<=radian<2pi xscale:: 拡大率(x方向) yscale:: 拡大率(y方向) 返却値:: 自分自身を返す.
-
#render_transform(radian, xscale, yscale) ⇒ Object
インスタンスの内容を画面に描画する(回転/拡大/縮小/鏡像付き) 転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点に、src側(ow,oh)の範囲で転送する。回転の中心はsrc側(ox,oy)を起点に、src側(cx,cy)が中心になるように設定する。 画面の描画範囲は、src側SpriteUnitの(x,y)を起点に、画面側SpriteUnitの(cx,cy)が中心になるように設定にする。 回転角度が正だと右回り、負だと左回りに回転する 変形の度合いは、src側SpriteUnitのxscale, yscaleを使用する(ともに実数で指定する)。それぞれ、x方向、y方向の度合いとなる 度合いが scale > 1.0 だと拡大、 0 < scale < 1.0 だと縮小、scale < 0.0 負だと鏡像の拡大・縮小になる(scale == -1.0 のときはミラー反転になる) また、変形元の幅・高さのいずれかが32768以上の時は回転・転送を行わない ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|インスタンスのSpriteUnit,画面のSpriteUnit|となる。 visibleメソッドの値がfalseのときは描画されない。 radian:: 回転角度。単位はラジアン。値の範囲は0<=radian<2pi xscale:: 拡大率(x方向) yscale:: 拡大率(y方向) 返却値:: 自分自身を返す.
-
#render_xy(x, y) ⇒ Object
インスタンスの内容を画面の指定の位置に描画する 画像を画面のの位置を開始点として描画する このメソッドでは、あらかじめ持っている描画開始位置を無視して描画する visibleメソッドの値がfalseのときは描画されない。 返却値:: 自分自身を返す.
-
#render_xy_to(dst, x, y) ⇒ Object
インスタンスの内容を別のインスタンスの指定の位置に描画する 画像を大正の画像の位置を開始点として描画する このメソッドでは、あらかじめ持っている描画開始位置を無視して描画する visibleメソッドの値がfalseのときは描画されない。 dst:: 転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) 返却値:: 自分自身を返す.
-
#saturation(saturation, &block) ⇒ Object
画像の彩度を変更する ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。 saturation:: 彩度の変更量。範囲は0.0〜1.0の実数 返却値:: 変更後の新しい画像インスタンス.
-
#saturation!(saturation, &block) ⇒ Object
画像の彩度を変更する ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。 saturation:: 彩度の変更量。範囲は0.0〜1.0の実数 返却値:: 変更後の自分自身を返す.
-
#subtraction(src, &block) ⇒ Object
2枚の画像の減算合成を行う 範囲は、src側の(ow,oh)の範囲で転送する。転送先の描画開始位置は、src側の(x,y)を左上とする。 ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。 src:: 転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) 返却値:: 変更後の新しい画像インスタンス.
-
#subtraction!(src, &block) ⇒ Object
2枚の画像の減算合成を行う 範囲は、src側の(ow,oh)の範囲で転送する。転送先の描画開始位置は、src側の(x,y)を左上とする。 ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。 src:: 転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) 返却値:: 変更後の自分自身を返す.
-
#to_sprite {|sprite| ... } ⇒ Object
インスタンスをスプライト化して返す インスタンスの複製を行う(画像インスタンスも複製) 引数1個のブロックを渡せば、スプライトに補正をかけることが出来る 注意事項: 1.複製のため、呼び出していくとメモリ使用量が著しく上がる 2.レイアウト情報がリセットされる(snapの親子関係が解消される) 返却値:: 生成したインスタンスを返す.
-
#to_unit ⇒ Object
インスタンスをSpriteUnit構造体に変換して取得する 新しいSpriteUnitを作成して返す 返却値:: SpriteUnit化したスプライト.
-
#unit=(unit) ⇒ Object
:nodoc:.
-
#update {|_self| ... } ⇒ Object
:nodoc:.
-
#update=(u) ⇒ Object
:nodoc:.
-
#update_layout_position ⇒ Object
:nodoc:.
-
#value(value, &block) ⇒ Object
画像の明度を変更する ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。 value:: 明度の変更量。範囲は0.0〜1.0の実数 返却値:: 変更後の新しい画像インスタンス.
-
#value!(value, &block) ⇒ Object
画像の明度を変更する ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。 value:: 明度の変更量。範囲は0.0〜1.0の実数 返却値:: 変更後の画像インスタンス.
-
#w ⇒ Object
画像の幅を取得する 返却値:: 画像の幅(ピクセル).
-
#white_out(degree, &block) ⇒ Object
画像の色を一定の割合で白に近づける(ホワイトアウト) 赤・青・緑・αの各要素を一定の割合で上げ、白色に近づける。 degreeの値が1.0に近づけば近づくほど白色に近づく(値が0.0のときは変化なし、1.0のときは真っ白になる) αの値が0のときは変わらないことに注意! ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。 degree:: 変化率。0.0<=degree<=1.0までの実数 返却値:: 変更後の新しい画像インスタンス.
-
#white_out!(degree, &block) ⇒ Object
画像の色を一定の割合で白に近づける(ホワイトアウト) 赤・青・緑・αの各要素を一定の割合で上げ、白色に近づける。 degreeの値が1.0に近づけば近づくほど白色に近づく(値が0.0のときは変化なし、1.0のときは真っ白になる) αの値が0のときは変わらないことに注意! ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。 degree:: 変化率。0.0<=degree<=1.0までの実数 返却値:: 変更後の自分自身を返す.
-
#xor(src, &block) ⇒ Object
2つの画像のxorを取り、別の画像へ転送する 重ね合わせの式は、“src xor self -> dst”で表される。自分自身と転送先画像は同じ大きさとなる。 範囲は、インスタンス側とsrc側との(ow,oh)の小さい方の範囲で転送する。 src側の(x,y)をインスタンス側の起点として、src側の(ow,oh)の範囲で転送する。 ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。 src:: 転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) 返却値:: 変更後の新しい画像インスタンス.
-
#xor!(src, &block) ⇒ Object
2つの画像のxorを破壊的に行う 重ね合わせの式は、“src xor self -> self”で表される。 範囲は、インスタンス側とsrc側との(ow,oh)の小さい方の範囲で転送する。 src側の(x,y)をインスタンス側の起点として、src側の(ow,oh)の範囲で転送する。 ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。 src:: 転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス) 返却値:: 変更後の自分自身を返す.
Methods included from SingleEnumerable
Methods included from Layout
#add_snap_child, #bottom, #bottom!, #center, #center!, #centering, #centering!, #copy_layout, #delete_snap_child, #get_snap_children, #get_snap_sprite, #include_snap_child?, #init_layout, #layout_dispose, #left, #left!, #middle, #middle!, #move, #move!, #move_to, #move_to!, #on_move, #outside_bottom, #outside_bottom!, #outside_left, #outside_left!, #outside_right, #outside_right!, #outside_top, #outside_top!, #pos, #relative_move_to, #relative_move_to!, #reset_snap, #right, #right!, #segment, #set_layout_size, #set_snap_children, #set_snap_sprite, #size, #snap, #top, #top!, #update_layout, #x, #y
Methods included from Animation
anim_hash, #reset, reset, start, #start, stop, #stop, update, update_animation, #update_animation
Methods included from SpriteBase
#hide, #oh, #ow, #ox, #oy, #render_d, #show
Constructor Details
#initialize(param) ⇒ Sprite
インスタンス生成
スプライトをファイルや画像サイズから生成します。 Screen.init/Miyako.openが呼ばれる前に作成しようとするとMiyakoError例外が発生します
v1.5以前は、ファイルからスプライトを生成するときは、ファイル名で画像が共有されていましたが、 v2.0では廃止されました。
- param
-
各種設定(ハッシュ引数。詳細は後述)
- 返却値
-
生成したインスタンス
<引数の内容>
-
1.画像の元データ(括弧内は省略形)。以下の3種類のどれかを必ず指定する。
-
画像ファイル(ファイル名)から生成。 (書式):filename(:file)=>画像ファイル名 (例):file=>“image.png”
-
画像サイズ(2要素の整数の配列もしくはSize構造体)から生成。
(書式1):size=>2要素の配列((例):size=>[100,100])
(書式2):size=>Size構造体((例):size=>Size.new(100,100))
* SDL::Surfaceクラスのインスタンスから生成。
(書式):bitmap(:bmp)=>SDL::Surfaceクラスのインスタンス((例):bmp=>@surface)
* SpriteUnit構造体のインスタンスから生成(ビットマップ以外のUnitの値は引き継がれる。
しかし、snapの親子関係は引き継がれない)。
(書式):unit=>SpriteUnit構造体のインスタンス((例):unit=>@spr.to_unit)
-
2.透過設定(括弧内は省略形)。以下の3種類のどれかを必ず指定する。
-
カラーキーによる透過は行わない方式(デフォルトの方式) (書式):type=>:alpha_surface(:as)
-
カラーキーの指定。 (書式):type=>:color_key(:ck) カラーキー指定の方法は以下のとおり
-
透明色にするピクセルの位置(2要素の整数の配列、Point構造体)
(書式1):point=>2要素の配列((例):type=>:ck, :point=>) (書式2):point=>Point構造体((例):type=>:ck, :point=>Point.new(20,20))
-
色を直接指定
(書式):tr_color=>色情報(Color.to_rgbメソッドで生成できるパラメータ)
((例1):type=>:ck, :tr_color=>[255,0,255] # 紫色を透明色に (例2):type=>:ck, :tr_color=>:red # 赤色を透明色に)
-
デフォルト:画像のの位置にあるピクセルの色
-
-
αチャネル付き画像を使用(設定変更不可) (書式):type=>:alpha_channel(:ac)
-
-
4.背景塗りつぶし。必要ならば、色を指定してその色で塗りつぶす
(書式):fill=> #=> 白で塗りつぶす 省略時は塗りつぶさない
-
5.半透明設定。必要ならば、指定した割合で透明度を変える
値の範囲は0.0 <= alpha <= 1.0。範囲外の値を渡すとMiyakoValueErrorが発生 (書式):alpha=>0.5 #=> 半透明 (書式):alpha=>0.1 #=> 1割残っている程度 (書式):alpha=>0.0 #=> 完全透明 (書式):alpha=>1.0 #=> 完全不透明 省略時は生成時そのままの画像
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/Miyako/API/sprite.rb', line 110 def initialize(param) raise MiyakoError, "Sprite instance cannot create uninitialized yet!" unless Screen.initialized? raise MiyakoTypeError, "Sprite parameter is not Hash!" unless param.kind_of?(Hash) setup init_layout bitmap = nil @tr_color = nil param[:type] ||= :color_key param[:type] = @@abb[param[:type]] if @@abb.has_key?(param[:type]) param[:point] ||= Point.new(0, 0) param[:tr_color] ||= Color[:black] param[:is_fill] ||= false param[:fill] ||= nil param[:alpha] ||= nil if param.has_key?(:bitmap) || param.has_key?(:bmp) self.bitmap = param[:bitmap] || param[:bmp] elsif param.has_key?(:size) self.bitmap = Bitmap.create(*(param[:size].to_a)) param[:is_fill] = true elsif param.has_key?(:filename) || param.has_key?(:file) name = param[:filename] || param[:file] raise MiyakoIOError.no_file(name) unless File.exist?(name) begin self.bitmap = Bitmap.load(name) rescue SDL::Error raise MiyakoFileFormatError, "Illegal file format! collect? #{name}" end elsif param.has_key?(:unit) self.bitmap = param[:unit].bitmap else raise MiyakoError, "Illegal Sprite parameter!" end case param[:type] when :color_key if param.has_key?(:point) @tr_color = Color.to_rgb(@unit.bitmap.get_rgb(@unit.bitmap.getPixel(*(param[:point].to_a)))) else @tr_color = Color.to_rgb(param[:tr_color]) end # カラーキーのα値を0にしたビットマップを作成 if param[:is_fill] @unit.bitmap.fill_rect(0,0,@unit.bitmap.w,@unit.bitmap.h,[0, 0, 0]) Bitmap.ck_to_ac!(@unit, [0,0,0]) else Bitmap.ck_to_ac!(@unit, @tr_color) end when :alpha_surface # カラーキーのα値を0にしたビットマップを作成 Bitmap.normal_to_ac!(@unit) if param[:is_fill] @unit.bitmap.fill_rect(0,0,@unit.bitmap.w,@unit.bitmap.h,[0, 0, 0]) Bitmap.ck_to_ac!(@unit, [0,0,0]) end when :alpha_channel if param[:is_fill] @unit.bitmap.fill_rect(0,0,@unit.bitmap.w,@unit.bitmap.h,[0, 0, 0]) Bitmap.ck_to_ac!(@unit, [0,0,0]) end else # 何もしない end @type = param[:type] if param.has_key?(:unit) SpriteUnitFactory.apply(@unit, :ow=>param[:unit].ow, :oh=>param[:unit].oh, :cx => param[:unit].cx, :cy => param[:unit].cy) self.move_to!(param[:unit].x, param[:unit].y) end if param[:fill] self.fill(param[:fill]) end if param[:alpha] alpha = param[:alpha] raise MiyakoValueError, "alpha is 0<=alpha<=1. value=#{param[:alpha]}" unless (alpha >= 0.0 and alpha <= 1.0) Bitmap.dec_alpha!(self, alpha) end end |
Instance Attribute Details
#collision ⇒ Object
Collision#bindで関連づけられた当たり判定
34 35 36 |
# File 'lib/Miyako/API/sprite.rb', line 34 def collision @collision end |
#tr_color ⇒ Object (readonly)
カラーキーが有向になっている場合のRGB値。の配列(各要素は0~255の整数)
35 36 37 |
# File 'lib/Miyako/API/sprite.rb', line 35 def tr_color @tr_color end |
#type ⇒ Object (readonly)
画像の透明度・透過タイプを取得する(詳細はSprite.newメソッドを参照)
36 37 38 |
# File 'lib/Miyako/API/sprite.rb', line 36 def type @type end |
#visible ⇒ Object
レンダリングの可否(true->描画 false->非描画)
33 34 35 |
# File 'lib/Miyako/API/sprite.rb', line 33 def visible @visible end |
Class Method Details
.[](name) ⇒ Object
45 46 47 |
# File 'lib/Miyako/API/sprite.rb', line 45 def Sprite.[](name) @@sprites[name] end |
.[]=(name, sprite) ⇒ Object
49 50 51 |
# File 'lib/Miyako/API/sprite.rb', line 49 def Sprite.[]=(name, sprite) @@sprites[name] = sprite end |
.render_to(src, dst) ⇒ Object
インスタンスの内容を別のインスタンスに描画する
転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点に、src側(ow,oh)の範囲で転送する。 画面の描画範囲は、src側SpriteUnitの(x,y)を起点に設定にする。 ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) ブロックの引数は、|転送元のSpriteUnit,転送先のSpriteUnit|となる。 (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない)
- src
-
転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- dst
-
転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- 返却値
-
自分自身を返す
534 535 |
# File 'lib/Miyako/API/sprite.rb', line 534 def Sprite.render_to(src, dst) end |
Instance Method Details
#additive(src, &block) ⇒ Object
2枚の画像の加算合成を行う
範囲は、src側の(ow,oh)の範囲で転送する。転送先の描画開始位置は、src側の(x,y)を左上とする。 ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。
- src
-
転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- 返却値
-
変更後の新しい画像インスタンス
908 909 910 911 912 913 |
# File 'lib/Miyako/API/sprite.rb', line 908 def additive(src, &block) dst = Sprite.new(:size=>self.size, :type=>:ac) self.render_to(dst) raise MiyakoValueError, "illegal range!" unless Bitmap.additive(src, dst, &block) return dst end |
#additive!(src, &block) ⇒ Object
2枚の画像の加算合成を行う
範囲は、src側の(ow,oh)の範囲で転送する。転送先の描画開始位置は、src側の(x,y)を左上とする。 ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。
- src
-
転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- 返却値
-
変更後の自分自身を返す
922 923 924 925 |
# File 'lib/Miyako/API/sprite.rb', line 922 def additive!(src, &block) raise MiyakoValueError, "illegal range!" unless Bitmap.additive(src, self, &block) return self end |
#and(src, &block) ⇒ Object
2つの画像のandを取り、別の画像へ転送する
重ね合わせの式は、“src and self -> dst”で表される。自分自身と転送先画像は同じ大きさとなる。 範囲は、インスタンス側とsrc側との(ow,oh)の小さい方の範囲で転送する。 src側の(x,y)をインスタンス側の起点として、src側の(ow,oh)の範囲で転送する。 ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。
- src
-
転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- 返却値
-
変更後の新しい画像インスタンス
709 710 711 712 713 714 |
# File 'lib/Miyako/API/sprite.rb', line 709 def and(src, &block) dst = Sprite.new(:size=>self.size, :type=>:ac) self.render_to(dst) raise MiyakoValueError, "illegal range!" unless Bitmap.blit_and(src, dst, &block) return dst end |
#and!(src, &block) ⇒ Object
2つの画像のandを破壊的に行う
重ね合わせの式は、“src and self -> self”で表される。 範囲は、インスタンス側とsrc側との(ow,oh)の小さい方の範囲で転送する。 src側の(x,y)をインスタンス側の起点として、src側の(ow,oh)の範囲で転送する。 ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。
- src
-
転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- 返却値
-
変更後の自分自身を返す
725 726 727 728 |
# File 'lib/Miyako/API/sprite.rb', line 725 def and!(src, &block) raise MiyakoValueError, "illegal range!" unless Bitmap.blit_and(src, self, &block) return self end |
#bitmap ⇒ Object
:nodoc:
223 224 225 |
# File 'lib/Miyako/API/sprite.rb', line 223 def bitmap #:nodoc: return @unit.bitmap end |
#bitmap=(bmp) ⇒ Object
:nodoc:
227 228 229 230 231 232 233 234 |
# File 'lib/Miyako/API/sprite.rb', line 227 def bitmap=(bmp) #:nodoc: @unit.bitmap = bmp @unit.ow = @unit.bitmap.w @unit.oh = @unit.bitmap.h @w = @unit.bitmap.w @h = @unit.bitmap.h set_layout_size(@unit.ow, @unit.oh) end |
#black_out(degree, &block) ⇒ Object
画像の色を一定の割合で黒に近づける(ブラックアウト)
赤・青・緑・αの各要素を一定の割合で下げ、黒色に近づける。 degreeの値が1.0に近づけば近づくほど黒色に近づく(値が0.0のときは変化なし、1.0のときは真っ黒になる) αの値が0のときは変わらないことに注意! ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。
- degree
-
変化率。0.0<=degree<=1.0までの実数
- 返却値
-
変更後の新しい画像インスタンス
829 830 831 832 833 |
# File 'lib/Miyako/API/sprite.rb', line 829 def black_out(degree, &block) dst = Sprite.new(:size=>self.size, :type=>:ac) raise MiyakoValueError, "illegal range!" unless Bitmap.black_out(self, dst, degree, &block) return dst end |
#black_out!(degree, &block) ⇒ Object
画像の色を一定の割合で黒に近づける(ブラックアウト)
赤・青・緑・αの各要素を一定の割合で下げ、黒色に近づける。 degreeの値が1.0に近づけば近づくほど黒色に近づく(値が0.0のときは変化なし、1.0のときは真っ黒になる) αの値が0のときは変わらないことに注意! ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。
- degree
-
変化率。0.0<=degree<=1.0までの実数
- 返却値
-
変更後の自分自身を返す
844 845 846 847 |
# File 'lib/Miyako/API/sprite.rb', line 844 def black_out!(degree, &block) raise MiyakoValueError, "illegal range!" unless Bitmap.black_out!(self, degree, &block) return self end |
#broad_rect ⇒ Object
現在の画面の最大の大きさを矩形で取得する
但し、Spriteの場合は最大の大きさ=スプライトの大きさなので、rectと同じ値が得られる
- 返却値
-
画像の大きさ(Rect構造体のインスタンス)
465 466 467 |
# File 'lib/Miyako/API/sprite.rb', line 465 def broad_rect return self.rect end |
#center_x ⇒ Object
画像の回転・拡大・縮小の中心座標を取得する
x方向の中心座標を取得する
- 返却値
-
中心座標。
430 431 432 |
# File 'lib/Miyako/API/sprite.rb', line 430 def center_x return @unit.cx end |
#center_x=(pos) ⇒ Object
画像の回転・拡大・縮小の中心座標を取得する
x方向の中心座標を取得する
- pos
-
中心座標
437 438 439 |
# File 'lib/Miyako/API/sprite.rb', line 437 def center_x=(pos) @unit.cx = pos end |
#center_y ⇒ Object
画像の回転・拡大・縮小の中心座標を取得する
y方向の中心座標を取得する
- 返却値
-
中心座標。
444 445 446 |
# File 'lib/Miyako/API/sprite.rb', line 444 def center_y return @unit.cy end |
#center_y=(pos) ⇒ Object
画像の回転・拡大・縮小の中心座標を取得する
y方向の中心座標を取得する
- pos
-
中心座標
451 452 453 |
# File 'lib/Miyako/API/sprite.rb', line 451 def center_y=(pos) @unit.cy = pos end |
#clear! ⇒ Object
画像の内容を破壊的に消去する
インスタンスの複製を行う(画像インスタンスも複製) 引数1個のブロックを渡せば、スプライトに補正をかけることが出来る 注意事項: 1.複製のため、呼び出していくとメモリ使用量が著しく上がる 2.レイアウト情報がリセットされる(snapの親子関係が解消される)
- 返却値
-
自分自身を返す
519 520 521 522 523 |
# File 'lib/Miyako/API/sprite.rb', line 519 def clear! Drawing.fill(self, [0,0,0]) Bitmap.ck_to_ac!(self, [0,0,0]) return self end |
#dec_alpha(degree, &block) ⇒ Object
画像のαチャネルの値を一定の割合で変化させて転送する
degreeの値が1.0に近づけば近づくほど透明に近づき、 degreeの値が-1.0に近づけば近づくほど不透明に近づく(値が-1.0のときは完全不透明、値が0.0のときは変化なし、1.0のときは完全に透明になる) 但し、元々αの値がゼロの時は変化しない ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。
- degree
-
減少率。-1.0<=degree<=1.0までの実数
- 返却値
-
変更後の新しい画像インスタンス
799 800 801 802 803 |
# File 'lib/Miyako/API/sprite.rb', line 799 def dec_alpha(degree, &block) dst = Sprite.new(:size=>self.size, :type=>:ac) raise MiyakoValueError, "illegal range!" unless Bitmap.dec_alpha(self, dst, degree, &block) return dst end |
#dec_alpha!(degree, &block) ⇒ Object
画像のαチャネルの値を一定の割合で破壊的に変化させる
degreeの値が1.0に近づけば近づくほど透明に近づき、 degreeの値が-1.0に近づけば近づくほど不透明に近づく (値が-1.0のときは完全不透明、値が0.0のときは変化なし、1.0のときは完全に透明になる) 但し、元々αの値がゼロの時は変化しない ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。
- degree
-
減少率。-1.0<=degree<=1.0までの実数
- 返却値
-
変更後の自分自身を返す
815 816 817 818 |
# File 'lib/Miyako/API/sprite.rb', line 815 def dec_alpha!(degree, &block) raise MiyakoValueError, "illegal range!" unless Bitmap.dec_alpha!(self, degree, &block) return self end |
#dispose ⇒ Object
画像を解放する
内部で使用しているデータをインスタンスから解放する
481 482 483 484 485 |
# File 'lib/Miyako/API/sprite.rb', line 481 def dispose layout_dispose @unit.bitmap = nil @unit = nil end |
#fill(color) ⇒ Object
画像全体を指定の色で塗りつぶす
- color
-
塗りつぶす色。Color.to_rgbメソッドのパラメータでの指定が可能
- 返却値
-
自分自身を返す
239 240 241 242 |
# File 'lib/Miyako/API/sprite.rb', line 239 def fill(color) @unit.bitmap.fill_rect(0,0,self.w,self.h,Color.to_rgb(color)) return self end |
#h ⇒ Object
画像の高さを取得する
- 返却値
-
画像の高さ(ピクセル)
219 220 221 |
# File 'lib/Miyako/API/sprite.rb', line 219 def h return @unit.bitmap.h end |
#hsv(degree, saturation, value, &block) ⇒ Object
画像の色相・彩度・明度を変更する
ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。
- degree
-
色相の変更量。単位は度(実数)。範囲は、-360.0<degree<360.0
- saturation
-
彩度の変更量。範囲は0.0〜1.0の実数
- value
-
明度の変更量。範囲は0.0〜1.0の実数
- 返却値
-
変更後の新しい画像インスタンス
1031 1032 1033 1034 1035 |
# File 'lib/Miyako/API/sprite.rb', line 1031 def hsv(degree, saturation, value, &block) dst = Sprite.new(:size=>self.size, :type=>:ac) raise MiyakoValueError, "illegal range!" unless Bitmap.hsv(self, dst, degree, saturation, value, &block) return dst end |
#hsv!(degree, saturation, value, &block) ⇒ Object
画像の色相・彩度・明度を変更する
ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。
- degree
-
色相の変更量。単位は度(実数)。範囲は、-360.0<degree<360.0
- saturation
-
彩度の変更量。範囲は0.0〜1.0の実数
- value
-
明度の変更量。範囲は0.0〜1.0の実数
- 返却値
-
変更後の画像インスタンス
1045 1046 1047 1048 |
# File 'lib/Miyako/API/sprite.rb', line 1045 def hsv!(degree, saturation, value, &block) raise MiyakoValueError, "illegal range!" unless Bitmap.hsv!(self, degree, saturation, value, &block) return self end |
#hue(degree, &block) ⇒ Object
画像の色相を変更する
ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。
- degree
-
色相の変更量。単位は度(実数)。範囲は、-360.0<degree<360.0
- 返却値
-
変更後の新しい画像インスタンス
959 960 961 962 963 |
# File 'lib/Miyako/API/sprite.rb', line 959 def hue(degree, &block) dst = Sprite.new(:size=>self.size, :type=>:ac) raise MiyakoValueError, "illegal range!" unless Bitmap.hue(self, dst, degree, &block) return dst end |
#hue!(degree, &block) ⇒ Object
画像の色相を変更する
- degree
-
色相の変更量。単位は度(実数)。範囲は、-360.0<degree<360.0
ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。
- 返却値
-
変更後の画像インスタンス
- 返却値
-
変更後の自分自身を返す
972 973 974 975 |
# File 'lib/Miyako/API/sprite.rb', line 972 def hue!(degree, &block) raise MiyakoValueError, "illegal range!" unless Bitmap.hue!(self, degree, &block) return self end |
#image_rect ⇒ Object
スプライトの元画像の矩形を返す
- 返却値
-
Rect構造体インスタンス
423 424 425 |
# File 'lib/Miyako/API/sprite.rb', line 423 def image_rect return Rect.new(0,0,self.bitmap.w, self.bitmap.h) end |
#image_size ⇒ Object
スプライトの元画像の大きさを返す
- 返却値
-
Size構造体インスタンス
417 418 419 |
# File 'lib/Miyako/API/sprite.rb', line 417 def image_size return Size.new(self.bitmap.w,self.bitmap.h) end |
#initialize_copy(obj) ⇒ Object
複写時に呼び出されるメソッド
複写と同時に、本インスタンスに対するスナップの関係を解消
198 199 200 201 |
# File 'lib/Miyako/API/sprite.rb', line 198 def initialize_copy(obj) self.unit = obj.to_unit copy_layout end |
#inverse(&block) ⇒ Object
画像のRGB値を反転させる
αチャネルの値は変更しない ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。
- 返却値
-
変更後の新しい画像インスタンス
884 885 886 887 888 |
# File 'lib/Miyako/API/sprite.rb', line 884 def inverse(&block) dst = Sprite.new(:size=>self.size, :type=>:ac) raise MiyakoValueError, "illegal range!" unless Bitmap.inverse(self, dst, &block) return dst end |
#inverse!(&block) ⇒ Object
画像のRGB値を反転させる
αチャネルの値は変更しない ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。
- 返却値
-
変更後の自分自身を返す
896 897 898 899 |
# File 'lib/Miyako/API/sprite.rb', line 896 def inverse!(&block) raise MiyakoValueError, "illegal range!" unless Bitmap.inverse!(self, &block) return self end |
#oh=(v) ⇒ Object
画像の表示高を指定する
ohを指定すると、縦方向の一部のみ表示される。 値が画像の高さの範囲外(値がマイナス、画像の高さを超える値)のときは例外が発生する
- v
-
表示高。整数で指定
273 274 275 276 |
# File 'lib/Miyako/API/sprite.rb', line 273 def oh=(v) @unit.oh = v set_layout_size(@unit.ow, v) end |
#or(src, &block) ⇒ Object
2つの画像のorを取り、別の画像へ転送する
重ね合わせの式は、“src or self -> dst”で表される。自分自身と転送先画像は同じ大きさとなる。 範囲は、インスタンス側とsrc側との(ow,oh)の小さい方の範囲で転送する。 src側の(x,y)をインスタンス側の起点として、src側の(ow,oh)の範囲で転送する。 ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。
- src
-
転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- 返却値
-
変更後の新しい画像インスタンス
739 740 741 742 743 744 |
# File 'lib/Miyako/API/sprite.rb', line 739 def or(src, &block) dst = Sprite.new(:size=>self.size, :type=>:ac) self.render_to(dst) raise MiyakoValueError, "illegal range!" unless Bitmap.blit_or(src, dst, &block) return dst end |
#or!(src, &block) ⇒ Object
2つの画像のorを破壊的に行う
重ね合わせの式は、“src or self -> self”で表される。 範囲は、インスタンス側とsrc側との(ow,oh)の小さい方の範囲で転送する。 src側の(x,y)をインスタンス側の起点として、src側の(ow,oh)の範囲で転送する。 ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。
- src
-
転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- 返却値
-
変更後の自分自身を返す
755 756 757 758 |
# File 'lib/Miyako/API/sprite.rb', line 755 def or!(src, &block) raise MiyakoValueError, "illegal range!" unless Bitmap.blit_or(src, self, &block) return self end |
#ow=(v) ⇒ Object
画像の表示幅を指定する
owを指定すると、横方向の一部のみ表示される。 値が画像の幅の範囲外(値がマイナス、画像の幅を超える値)のときは例外が発生する
- v
-
表示幅。整数で指定
264 265 266 267 |
# File 'lib/Miyako/API/sprite.rb', line 264 def ow=(v) @unit.ow = v set_layout_size(v, @unit.oh) end |
#ox=(v) ⇒ Object
画像の表示開始位置(X座標)を指定する
oxを指定すると、表示の左上位置が変更される。 値が画像の幅の範囲外(値がマイナス、画像の幅を超える値)のときは例外が発生する
- v
-
表示開始位置。整数で指定
248 249 250 |
# File 'lib/Miyako/API/sprite.rb', line 248 def ox=(v) @unit.ox = v end |
#oy=(v) ⇒ Object
画像の表示開始位置(Y座標)を指定する
oyを指定すると、表示の左上位置が変更される。 値が画像の高さの範囲外(値がマイナス、画像の高さを超える値)のときは例外が発生する
- v
-
表示開始位置。整数で指定
256 257 258 |
# File 'lib/Miyako/API/sprite.rb', line 256 def oy=(v) @unit.oy = v end |
#part_move(dx, dy) ⇒ Object
範囲を画像の大きさに合わせながら、部分描画開始位置を移動させる
ただし、移動した後の矩形を得られるだけで、内部を変更しない
- 返却値
-
変更後の部分描画矩形(Rect構造体)
370 371 372 373 374 375 376 377 |
# File 'lib/Miyako/API/sprite.rb', line 370 def part_move(dx, dy) return adjust_part( dx ? self.ox+dx : self.ox, dy ? self.oy+dy : self.oy, self.ow, self.oh ) end |
#part_move!(dx, dy) ⇒ Object
範囲を画像の大きさに合わせながら、部分描画開始位置を移動させる
- 返却値
-
自分自身
317 318 319 320 321 322 323 324 325 326 |
# File 'lib/Miyako/API/sprite.rb', line 317 def part_move!(dx, dy) @unit.ox, @unit.oy, @unit.ow, @unit.oh = adjust_part( dx ? @unit.ox+dx : @unit.ox, dy ? @unit.oy+dy : @unit.oy, @unit.ow, @unit.oh ) return self end |
#part_move_to(x, y) ⇒ Object
範囲を画像の大きさに合わせながら、部分描画開始位置を移動させる
ただし、移動した後の矩形を得られるだけで、内部を変更しない
- 返却値
-
変更後の部分描画矩形(Rect構造体)
382 383 384 385 386 387 388 389 |
# File 'lib/Miyako/API/sprite.rb', line 382 def part_move_to(x, y) return adjust_part( x ? x : self.ox, y ? y : self.oy, self.ow, self.oh ) end |
#part_move_to!(x, y) ⇒ Object
範囲を画像の大きさに合わせながら、部分描画開始位置を移動させる
- 返却値
-
自分自身
330 331 332 333 334 335 336 337 338 339 |
# File 'lib/Miyako/API/sprite.rb', line 330 def part_move_to!(x, y) @unit.ox, @unit.oy, @unit.ow, @unit.oh = adjust_part( x ? x : @unit.ox, y ? y : @unit.oy, @unit.ow, @unit.oh ) return self end |
#part_rect ⇒ Object
スプライトの部分描画矩形を返す
- 返却値
-
Rect構造体インスタンス
280 281 282 |
# File 'lib/Miyako/API/sprite.rb', line 280 def part_rect return Rect.new(self.ox,self.oy,self.ow,self.oh) end |
#part_resize(dw, dh) ⇒ Object
範囲を画像の大きさに合わせながら、部分描画の大きさを変える
ただし、移動した後の矩形を得られるだけで、内部を変更しない
- 返却値
-
変更後の部分描画矩形(Rect構造体)
394 395 396 397 398 399 400 401 |
# File 'lib/Miyako/API/sprite.rb', line 394 def part_resize(dw, dh) return adjust_part( self.ox, self.oy, dw ? self.ow+dw : self.ow, dh ? self.oh+dh : self.oh ) end |
#part_resize!(dw, dh) ⇒ Object
範囲を画像の大きさに合わせながら、部分描画の大きさを変える
- 返却値
-
自分自身
343 344 345 346 347 348 349 350 351 352 |
# File 'lib/Miyako/API/sprite.rb', line 343 def part_resize!(dw, dh) @unit.ox, @unit.oy, @unit.ow, @unit.oh = adjust_part( @unit.ox, @unit.oy, dw ? @unit.ow+dw : @unit.ow, dh ? @unit.oh+dh : @unit.oh ) return self end |
#part_resize_to(w, h) ⇒ Object
範囲を画像の大きさに合わせながら、部分描画の大きさを変える
ただし、移動した後の矩形を得られるだけで、内部を変更しない
- 返却値
-
変更後の部分描画矩形(Rect構造体)
406 407 408 409 410 411 412 413 |
# File 'lib/Miyako/API/sprite.rb', line 406 def part_resize_to(w, h) return adjust_part( self.ox, self.oy, w ? w : self.ow, h ? h : self.oh ) end |
#part_resize_to!(w, h) ⇒ Object
範囲を画像の大きさに合わせながら、部分描画の大きさを変える
- 返却値
-
自分自身
356 357 358 359 360 361 362 363 364 365 |
# File 'lib/Miyako/API/sprite.rb', line 356 def part_resize_to!(w, h) @unit.ox, @unit.oy, @unit.ow, @unit.oh = adjust_part( @unit.ox, @unit.oy, w ? w : @unit.ow, h ? h : @unit.oh ) return self end |
#rect ⇒ Object
画像の表示矩形を取得する
画像が表示されているときの矩形(Rect構造体)を取得する
- 返却値
-
生成された矩形(Rect構造体インスタンス)
458 459 460 |
# File 'lib/Miyako/API/sprite.rb', line 458 def rect return Rect.new(@unit.x, @unit.y, @unit.ow, @unit.oh) end |
#render ⇒ Object
インスタンスの内容を画面に描画する
現在の画像を、現在の状態で描画するよう指示する ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|インスタンスのSpriteUnit, 画面のSpriteUnit|となる。 visibleメソッドの値がfalseのときは描画されない。
- 返却値
-
自分自身を返す
544 545 |
# File 'lib/Miyako/API/sprite.rb', line 544 def render end |
#render_rect(rect) ⇒ Object
部分矩形の一部分を画面に描画する
現在の画像を、現在の状態で描画するよう指示する ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|インスタンスのSpriteUnit, 画面のSpriteUnit|となる。 visibleメソッドの値がfalseのときは描画されない。
- 返却値
-
自分自身を返す
583 584 |
# File 'lib/Miyako/API/sprite.rb', line 583 def render_rect(rect) end |
#render_rect2(rect) ⇒ Object
画像の一部分を画面に描画する
画像の一部分(rect構造体で示した矩形)を画面に描画する このメソッドでは、部分矩形を無視して描画する visibleメソッドの値がfalseのときは描画されない。
- rect
-
Rect構造体
- 返却値
-
自分自身を返す
604 605 |
# File 'lib/Miyako/API/sprite.rb', line 604 def render_rect2(rect) end |
#render_rect2_to(dst, rect) ⇒ Object
画像の一部分を別のインスタンスに描画する
画像の一部分(rect構造体で示した矩形)を別のスプライトに描画する このメソッドでは、部分矩形を無視して描画する visibleメソッドの値がfalseのときは描画されない。
- dst
-
転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- rect
-
Rect構造体
- 返却値
-
自分自身を返す
614 615 |
# File 'lib/Miyako/API/sprite.rb', line 614 def render_rect2_to(dst,rect) end |
#render_rect2_xy(rect, x, y) ⇒ Object
画像の一部分を画面の指定の位置に描画する
画像の一部分(rect構造体で示した矩形)を画面のの位置を開始点として描画する このメソッドでは、あらかじめ持っている描画開始位置と部分矩形を無視して描画する visibleメソッドの値がfalseのときは描画されない。
- rect
-
Rect構造体
- x
-
描画開始位置(x座標)
- y
-
描画開始位置(y座標)
- 返却値
-
自分自身を返す
648 649 |
# File 'lib/Miyako/API/sprite.rb', line 648 def render_rect2_xy(rect,x,y) end |
#render_rect2_xy_to(dst, rect, x, y) ⇒ Object
画像の一部分を別のインスタンスの指定の位置にに描画する
画像の一部分(rect構造体で示した矩形)をスプライトのの位置を開始点として描画する このメソッドでは、あらかじめ持っている描画開始位置と部分矩形を無視して描画する visibleメソッドの値がfalseのときは描画されない。
- dst
-
転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- rect
-
Rect構造体
- x
-
描画開始位置(x座標)
- y
-
描画開始位置(y座標)
- 返却値
-
自分自身を返す
660 661 |
# File 'lib/Miyako/API/sprite.rb', line 660 def render_rect2_xy_to(dst,rect,x,y) end |
#render_rect_to(dst, rect) ⇒ Object
部分矩形の一部分を別のインスタンスに描画する
転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点に、src側(ow,oh)の範囲で転送する。 画面の描画範囲は、src側SpriteUnitの(x,y)を起点に設定にする。 ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|インスタンスのSpriteUnit,転送先のSpriteUnit|となる。 visibleメソッドの値がfalseのときは描画されない。
- dst
-
転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- 返却値
-
自分自身を返す
595 596 |
# File 'lib/Miyako/API/sprite.rb', line 595 def render_rect_to(dst,rect) end |
#render_rect_xy(rect, x, y) ⇒ Object
部分矩形の一部分を画面の指定の位置に描画する
画像の一部分(rect構造体で示した矩形)を画面のの位置を開始点として描画する このメソッドでは、あらかじめ持っている描画開始位置を無視して描画する visibleメソッドの値がfalseのときは描画されない。
- rect
-
Rect構造体
- x
-
描画開始位置(x座標)
- y
-
描画開始位置(y座標)
- 返却値
-
自分自身を返す
625 626 |
# File 'lib/Miyako/API/sprite.rb', line 625 def render_rect_xy(rect,x,y) end |
#render_rect_xy_to(dst, rect, x, y) ⇒ Object
部分矩形の一部分を別のインスタンスの指定の位置にに描画する
画像の一部分(rect構造体で示した矩形)をスプライトのの位置を開始点として描画する このメソッドでは、あらかじめ持っている描画開始位置を無視して描画する visibleメソッドの値がfalseのときは描画されない。
- dst
-
転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- rect
-
Rect構造体
- x
-
描画開始位置(x座標)
- y
-
描画開始位置(y座標)
- 返却値
-
自分自身を返す
637 638 |
# File 'lib/Miyako/API/sprite.rb', line 637 def render_rect_xy_to(dst,rect,x,y) end |
#render_to(dst) ⇒ Object
インスタンスの内容を別のインスタンスに描画する
転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点に、src側(ow,oh)の範囲で転送する。 画面の描画範囲は、src側SpriteUnitの(x,y)を起点に設定にする。 ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|インスタンスのSpriteUnit,転送先のSpriteUnit|となる。 visibleメソッドの値がfalseのときは描画されない。
- dst
-
転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- 返却値
-
自分自身を返す
556 557 |
# File 'lib/Miyako/API/sprite.rb', line 556 def render_to(dst) end |
#render_to_transform(dst, radian, xscale, yscale) ⇒ Object
インスタンスの内容を画面に描画する(回転/拡大/縮小/鏡像付き)
転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点に、src側(ow,oh)の範囲で転送する。回転の中心はsrc側(ox,oy)を起点に、src側(cx,cy)が中心になるように設定する。 画面の描画範囲は、src側SpriteUnitの(x,y)を起点に、画面側SpriteUnitの(cx,cy)が中心になるように設定にする。 回転角度が正だと右回り、負だと左回りに回転する 変形の度合いは、src側SpriteUnitのxscale, yscaleを使用する(ともに実数で指定する)。それぞれ、x方向、y方向の度合いとなる 度合いが scale > 1.0 だと拡大、 0 < scale < 1.0 だと縮小、scale < 0.0 負だと鏡像の拡大・縮小になる(scale == -1.0 のときはミラー反転になる) また、変形元の幅・高さのいずれかが32768以上の時は回転・転送を行わない ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|インスタンスのSpriteUnit,転送先のSpriteUnit|となる。 visibleメソッドの値がfalseのときは描画されない。
- dst
-
転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- radian
-
回転角度。単位はラジアン。値の範囲は0<=radian<2pi
- xscale
-
拡大率(x方向)
- yscale
-
拡大率(y方向)
- 返却値
-
自分自身を返す
697 698 |
# File 'lib/Miyako/API/sprite.rb', line 697 def render_to_transform(dst, radian, xscale, yscale) end |
#render_transform(radian, xscale, yscale) ⇒ Object
インスタンスの内容を画面に描画する(回転/拡大/縮小/鏡像付き)
転送元の描画範囲は、src側SpriteUnitの(ox,oy)を起点に、src側(ow,oh)の範囲で転送する。回転の中心はsrc側(ox,oy)を起点に、src側(cx,cy)が中心になるように設定する。 画面の描画範囲は、src側SpriteUnitの(x,y)を起点に、画面側SpriteUnitの(cx,cy)が中心になるように設定にする。 回転角度が正だと右回り、負だと左回りに回転する 変形の度合いは、src側SpriteUnitのxscale, yscaleを使用する(ともに実数で指定する)。それぞれ、x方向、y方向の度合いとなる 度合いが scale > 1.0 だと拡大、 0 < scale < 1.0 だと縮小、scale < 0.0 負だと鏡像の拡大・縮小になる(scale == -1.0 のときはミラー反転になる) また、変形元の幅・高さのいずれかが32768以上の時は回転・転送を行わない ブロック付きで呼び出し可能(レシーバに対応したSpriteUnit構造体が引数として得られるので、補正をかけることが出来る) (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|インスタンスのSpriteUnit,画面のSpriteUnit|となる。 visibleメソッドの値がfalseのときは描画されない。
- radian
-
回転角度。単位はラジアン。値の範囲は0<=radian<2pi
- xscale
-
拡大率(x方向)
- yscale
-
拡大率(y方向)
- 返却値
-
自分自身を返す
678 679 |
# File 'lib/Miyako/API/sprite.rb', line 678 def render_transform(radian, xscale, yscale) end |
#render_xy(x, y) ⇒ Object
インスタンスの内容を画面の指定の位置に描画する
画像を画面のの位置を開始点として描画する このメソッドでは、あらかじめ持っている描画開始位置を無視して描画する visibleメソッドの値がfalseのときは描画されない。
- 返却値
-
自分自身を返す
564 565 |
# File 'lib/Miyako/API/sprite.rb', line 564 def render_xy(x,y) end |
#render_xy_to(dst, x, y) ⇒ Object
インスタンスの内容を別のインスタンスの指定の位置に描画する
画像を大正の画像の位置を開始点として描画する このメソッドでは、あらかじめ持っている描画開始位置を無視して描画する visibleメソッドの値がfalseのときは描画されない。
- dst
-
転送先ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- 返却値
-
自分自身を返す
573 574 |
# File 'lib/Miyako/API/sprite.rb', line 573 def render_xy_to(dst,x,y) end |
#saturation(saturation, &block) ⇒ Object
画像の彩度を変更する
ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。
- saturation
-
彩度の変更量。範囲は0.0〜1.0の実数
- 返却値
-
変更後の新しい画像インスタンス
983 984 985 986 987 |
# File 'lib/Miyako/API/sprite.rb', line 983 def saturation(saturation, &block) dst = Sprite.new(:size=>self.size, :type=>:ac) raise MiyakoValueError, "illegal range!" unless Bitmap.saturation(self, dst, saturation, &block) return dst end |
#saturation!(saturation, &block) ⇒ Object
画像の彩度を変更する
ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。
- saturation
-
彩度の変更量。範囲は0.0〜1.0の実数
- 返却値
-
変更後の自分自身を返す
995 996 997 998 |
# File 'lib/Miyako/API/sprite.rb', line 995 def saturation!(saturation, &block) raise MiyakoValueError, "illegal range!" unless Bitmap.saturation!(self, saturation, &block) return self end |
#subtraction(src, &block) ⇒ Object
2枚の画像の減算合成を行う
範囲は、src側の(ow,oh)の範囲で転送する。転送先の描画開始位置は、src側の(x,y)を左上とする。 ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。
- src
-
転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- 返却値
-
変更後の新しい画像インスタンス
934 935 936 937 938 939 |
# File 'lib/Miyako/API/sprite.rb', line 934 def subtraction(src, &block) dst = Sprite.new(:size=>self.size, :type=>:ac) self.render_to(dst) raise MiyakoValueError, "illegal range!" unless Bitmap.subtraction(src, dst, &block) return dst end |
#subtraction!(src, &block) ⇒ Object
2枚の画像の減算合成を行う
範囲は、src側の(ow,oh)の範囲で転送する。転送先の描画開始位置は、src側の(x,y)を左上とする。 ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。
- src
-
転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- 返却値
-
変更後の自分自身を返す
948 949 950 951 |
# File 'lib/Miyako/API/sprite.rb', line 948 def subtraction!(src, &block) raise MiyakoValueError, "illegal range!" unless Bitmap.subtraction(src, self, &block) return self end |
#to_sprite {|sprite| ... } ⇒ Object
インスタンスをスプライト化して返す
インスタンスの複製を行う(画像インスタンスも複製) 引数1個のブロックを渡せば、スプライトに補正をかけることが出来る 注意事項: 1.複製のため、呼び出していくとメモリ使用量が著しく上がる 2.レイアウト情報がリセットされる(snapの親子関係が解消される)
- 返却値
-
生成したインスタンスを返す
501 502 503 504 505 506 507 508 509 510 |
# File 'lib/Miyako/API/sprite.rb', line 501 def to_sprite unit = @unit.dup unit.bitmap = Bitmap.create(unit.bitmap.w, unit.bitmap.h) sprite = Sprite.new(:size => [unit.bitmap.w, unit.bitmap.h], :type => :ac) Drawing.fill(sprite, [0,0,0]) Bitmap.ck_to_ac!(sprite, [0,0,0]) Bitmap.blit_aa(self, sprite, 0, 0) yield sprite if block_given? return sprite end |
#to_unit ⇒ Object
インスタンスをSpriteUnit構造体に変換して取得する
新しいSpriteUnitを作成して返す
- 返却値
-
SpriteUnit化したスプライト
490 491 492 |
# File 'lib/Miyako/API/sprite.rb', line 490 def to_unit return @unit.dup end |
#unit=(unit) ⇒ Object
:nodoc:
203 204 205 |
# File 'lib/Miyako/API/sprite.rb', line 203 def unit=(unit) #:nodoc: @unit = unit end |
#update {|_self| ... } ⇒ Object
:nodoc:
469 470 471 472 473 |
# File 'lib/Miyako/API/sprite.rb', line 469 def update #:nodoc: @update.call(self) if @update yield self if block_given? return self end |
#update=(u) ⇒ Object
:nodoc:
475 476 477 |
# File 'lib/Miyako/API/sprite.rb', line 475 def update=(u) #:nodoc: @update = u end |
#update_layout_position ⇒ Object
:nodoc:
207 208 209 |
# File 'lib/Miyako/API/sprite.rb', line 207 def update_layout_position #:nodoc: @unit.move_to!(*@layout.pos) end |
#value(value, &block) ⇒ Object
画像の明度を変更する
ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。
- value
-
明度の変更量。範囲は0.0〜1.0の実数
- 返却値
-
変更後の新しい画像インスタンス
1006 1007 1008 1009 1010 |
# File 'lib/Miyako/API/sprite.rb', line 1006 def value(value, &block) dst = Sprite.new(:size=>self.size, :type=>:ac) raise MiyakoValueError, "illegal range!" unless Bitmap.value(self, dst, value, &block) return dst end |
#value!(value, &block) ⇒ Object
画像の明度を変更する
ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。
- value
-
明度の変更量。範囲は0.0〜1.0の実数
- 返却値
-
変更後の画像インスタンス
1018 1019 1020 1021 |
# File 'lib/Miyako/API/sprite.rb', line 1018 def value!(value, &block) raise MiyakoValueError, "illegal range!" unless Bitmap.value!(self, value, &block) return self end |
#w ⇒ Object
画像の幅を取得する
- 返却値
-
画像の幅(ピクセル)
213 214 215 |
# File 'lib/Miyako/API/sprite.rb', line 213 def w return @unit.bitmap.w end |
#white_out(degree, &block) ⇒ Object
画像の色を一定の割合で白に近づける(ホワイトアウト)
赤・青・緑・αの各要素を一定の割合で上げ、白色に近づける。 degreeの値が1.0に近づけば近づくほど白色に近づく(値が0.0のときは変化なし、1.0のときは真っ白になる) αの値が0のときは変わらないことに注意! ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。
- degree
-
変化率。0.0<=degree<=1.0までの実数
- 返却値
-
変更後の新しい画像インスタンス
858 859 860 861 862 |
# File 'lib/Miyako/API/sprite.rb', line 858 def white_out(degree, &block) dst = Sprite.new(:size=>self.size, :type=>:ac) raise MiyakoValueError, "illegal range!" unless Bitmap.white_out(self, dst, degree, &block) return dst end |
#white_out!(degree, &block) ⇒ Object
画像の色を一定の割合で白に近づける(ホワイトアウト)
赤・青・緑・αの各要素を一定の割合で上げ、白色に近づける。 degreeの値が1.0に近づけば近づくほど白色に近づく(値が0.0のときは変化なし、1.0のときは真っ白になる) αの値が0のときは変わらないことに注意! ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。
- degree
-
変化率。0.0<=degree<=1.0までの実数
- 返却値
-
変更後の自分自身を返す
873 874 875 876 |
# File 'lib/Miyako/API/sprite.rb', line 873 def white_out!(degree, &block) raise MiyakoValueError, "illegal range!" unless Bitmap.white_out!(self, degree, &block) return self end |
#xor(src, &block) ⇒ Object
2つの画像のxorを取り、別の画像へ転送する
重ね合わせの式は、“src xor self -> dst”で表される。自分自身と転送先画像は同じ大きさとなる。 範囲は、インスタンス側とsrc側との(ow,oh)の小さい方の範囲で転送する。 src側の(x,y)をインスタンス側の起点として、src側の(ow,oh)の範囲で転送する。 ブロックを渡すと、src,dst側のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|src側SpriteUnit,dst側SpriteUnit|となる。
- src
-
転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- 返却値
-
変更後の新しい画像インスタンス
769 770 771 772 773 774 |
# File 'lib/Miyako/API/sprite.rb', line 769 def xor(src, &block) dst = Sprite.new(:size=>self.size, :type=>:ac) self.render_to(dst) raise MiyakoValueError, "illegal range!" unless Bitmap.blit_xor(src, dst, &block) return dst end |
#xor!(src, &block) ⇒ Object
2つの画像のxorを破壊的に行う
重ね合わせの式は、“src xor self -> self”で表される。 範囲は、インスタンス側とsrc側との(ow,oh)の小さい方の範囲で転送する。 src側の(x,y)をインスタンス側の起点として、src側の(ow,oh)の範囲で転送する。 ブロックを渡すと、自分自身のSpriteUnitを更新して、それを実際の転送に反映させることが出来る (ブロック引数のインスタンスは複写しているので、メソッドの引数として渡した値が持つSpriteUnitには影響しない) ブロックの引数は、|SpriteUnit|となる。
- src
-
転送元ビットマップ(to_unitメソッドを呼び出すことが出来る/値がnilではないインスタンス)
- 返却値
-
変更後の自分自身を返す
785 786 787 788 |
# File 'lib/Miyako/API/sprite.rb', line 785 def xor!(src, &block) raise MiyakoValueError, "illegal range!" unless Bitmap.blit_xor(src, self, &block) return self end |