2
私はAndroidでいくつかのスプライトアニメーションを試みてきましたが(これは大学での運動ですが)、私は奇妙な問題を抱えています。ソースとして定義した矩形を描画する代わりに、その矩形のちょうど半分を描画します。Canvas.drawBitmapのソースを半分に切る
ここに私の描画方法
public class Sprite {
Bitmap image;
Point frameSize;
int[] rows;
public int curFrame;
public int curRow;
public void draw(Canvas c, Paint p, Vector2 pos)
{
Rect src;
int left = curFrame * frameSize.x;
int top = curRow * frameSize.y;
int right = left + frameSize.x;
int bottom = top + frameSize.y;
src = new Rect(left, top, right, bottom);
Rect dest = new Rect((int)pos.x, 0, (int)pos.x + frameSize.x, frameSize.y);
c.drawBitmap(image, src, dest, p);
}
のコードここで私はすべてのフレームが同じサイズ(44x40)のものであり、画像は440x80で、私はこれを与える
を使用していた画像だですメソッドを呼び出すと、frameSizeという値が返されます。
ポイントは、基本的に、x、y整数のペアを保持するオブジェクトです。
Vector2は、x、yフロートのペアを保持するオブジェクトです。
また、デバッグの目的でテキストをレンダリングします。ここで
私は申し訳ありませんが、スクリーンショットは莫大です。 StackOverflowの
。そのコードをどこか別の場所に置き、サブスクリプションを監視する必要があります。 onAttachでonDetachの購読を解除したり、視認性の変更を行ったりすることがあります。 –