2009-07-15 12 views
0

それはアニメートしますが、スプライトシート上のどこにスプライトシートの部分があり、どこにxとyがあるのか​​は分かりません。非常に短いので、どうぞご覧ください。前もって感謝します。私のアニメーション機能に何が問題なのですか?

package cyanprime{ 
    import flash.display.*; 
    import flash.geom.Rectangle; 

    public class Player{ 
     [Embed(source="brownplane.png")] 
     public var image:Class; 
     public var bitmapdata:BitmapData = getBitmap(new image()); 
     public var bitmap:Bitmap = new Bitmap(bitmapdata); 
     public var speed:int = 5; 
     public var x:int = 50; 
     public var y:int = 50; 
     public var frame:int = 0; 

     public function getBitmap(img:DisplayObject):BitmapData{ 
      var drawRect:Rectangle = new Rectangle((img.width/3) * frame, 0, img.width/3, img.height); 
      var bitmap:BitmapData = new BitmapData(img.width, img.height); 
      bitmap.draw(img,null,null,null,drawRect); 
      return bitmap; 
     } 

     public function animate():void{ 
      bitmap.bitmapData = getBitmap(new image()); 
      frame++; 

      if(frame > 2) 
       frame = 0; 

      bitmap.x = x; 
      bitmap.y = y; 
     } 
    } 
} 
+1

xとyを変更しないでください。私には何の影響もありません。情報が少なすぎます。 – Dykam

答えて

1

あなたが描画された矩形の位置を変換するために)(描画する変換行列を追加する必要があるように見えます。このような何か:

var trans:Matrix = new Matrix(); 
trans.tx = drawRect.x; 
bitmap.draw(img,trans,null,null,drawRect); 

問題が解決しない場合は、-drawRect.xを試してみてください、私はまさにその変換方法を覚えていないことが適用されます。

関連する問題