所以,我在屏幕上方画了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);
}
}
应该只画出3个彼此分开的球。就像我的WP7版本一样。
怎么了?拜托,我希望你能帮助我!
答案 0 :(得分:1)
可能无法解决您的所有问题,但您应该在重绘之前清除屏幕,使用c.drawColor(0xFF000000);
之类的内容(用黑色填充)。如果不重绘视图,则会看到当前后面的前一帧。
当然,如果您的网格纹理覆盖整个屏幕并且不使用透明度,则这不是问题。
答案 1 :(得分:0)
我发现了问题! 我的纹理是动画帧的连接。所以,我绘制整个纹理,而不是第一帧:( 遗憾