如何通过在不同位置绘制3个球来解决这个问题?

时间:2012-06-17 17:49:05

标签: android surfaceview android-canvas

所以,我在屏幕上方画了3个球。我正在使用surfaceView。这是绘图代码:

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);
}

}

problem

应该只画出3个彼此分开的球。就像我的WP7版本一样。

怎么了?拜托,我希望你能帮助我!

2 个答案:

答案 0 :(得分:1)

可能无法解决您的所有问题,但您应该在重绘之前清除屏幕,使用c.drawColor(0xFF000000);之类的内容(用黑色填充)。如果不重绘​​视图,则会看到当前后面的前一帧。 当然,如果您的网格纹理覆盖整个屏幕并且不使用透明度,则这不是问题。

答案 1 :(得分:0)

我发现了问题! 我的纹理是动画帧的连接。所以,我绘制整个纹理,而不是第一帧:( 遗憾

相关问题