0

だから、私は画面の上部に3つのボールを描いています。私はサーフェスビューを使用しています。描画コードは次のとおりです。

private void doDraw(Canvas c) 
{
    grid.Draw(c);
    nextBallsBar.Draw(c);
}

グリッド:

public void Draw(Canvas c)
{
c.drawBitmap(Texture, 0, 0, null);
}

NextBallsBar:

public class NextBallsBar
{
private Bitmap ball1;
private Bitmap ball2;
private Bitmap ball3;

public void SetNextBalls(BallType[] ballTypes)
{
ball1 = BallTexturesProvider.GetBallTexture(ballTypes[0]);
ball2 = BallTexturesProvider.GetBallTexture(ballTypes[1]);
ball3 = BallTexturesProvider.GetBallTexture(ballTypes[2]);
}

public void Draw(Canvas c)
{
    //Point _position = new Point((int) (400 * GameView.scaleX), (int) (42 * GameView.scaleY));        
    c.drawBitmap(ball1, (int) 200, (int) (42 * GameView.scaleY), null);

//_position = new Point((int) (_position.x - 60 * GameView.scaleX), _position.y);
    c.drawBitmap(ball2, (int) 150, (int) (42 * GameView.scaleY), null);

    //_position = new Point((int) (_position.x - 60 * GameView.scaleX), _position.y);
    c.drawBitmap(ball3, (int) 100, (int) (42 * GameView.scaleY), null);
}

}

問題

互いに離れた 3 つのボールのみを描画する必要があります。私のWP7バージョンのように。

どうしたの ?助けてください!

4

2 に答える 2

1

すべての問題を解決できるわけではありませんが、再描画する前に、c.drawColor(0xFF000000);(黒で塗りつぶす) のようなものを使用して画面をクリアする必要があります。ビューを再描画しない場合、現在のフレームの後ろに前のフレームが表示されます。もちろん、グリッド テクスチャが画面全体を覆い、透過性を使用しない場合、これは問題になりません。

于 2012-06-17T20:17:23.843 に答える
0

問題が見つかりました!私のテクスチャは、アニメーション用のフレームの連結です。したがって、最初のフレームではなく、テクスチャ全体を描画します:(ごめんなさい

于 2012-06-23T17:31:55.360 に答える