0

我遇到了一个无法解释的问题。这可能是 android studio 中的一个缺陷。

主要是:我正在开发一款游戏,其中背景(草或树)向玩家相反的方向移动,非常简单。它们(草和玩家)都是 GameView 类中的位图,它扩展了 View 类。玩家静止不动,而草正在向左移动。

当我希望草以不同的速度移动时,问题就开始了。VARYING 是这里的关键字。发生的情况是,当草位图到达屏幕左边缘时,它的速度会无缘无故地降低!当草速恒定时不会发生这种情况。

我不知道如何克服这个问题。基本上我的目标是启用:玩家走得更快=草移动得更快。我希望您解决上述问题或提出替代解决方案。

我没有显示任何管理播放器的代码,以便更清楚地说明问题出在哪里。该问题完全由以下代码块表示:

public class GameView extends View 
{
   Bitmap trees; 
   int treeY, treeX, U;                      //position and velocity
   int treeWidth, screenWidth, screenHeight;
   Point point;

public GameView(Context context, AttributeSet atr) 
{
   super(context, atr);

   trees = new Bitmap();
   trees = BitmapFactory.decodeResource(getResources(), R.drawable.t1);
   treeWidth = trees.getWidth();
   U = 0;
   point = new Point();
   screenHeight = point.y;
   screenWidth = point.x;
   treeY = 8*screeHeight/10
   treeX = screenWidth;
}

    @Override
    protected void onDraw(Canvas canvas) 
    {
        super.onDraw(canvas);

        U += 1/8000;
        treeX -= U/2;
        if(treeX < -treeW) 
        {
         treeX = screenWidth;
        }   
        // just looping the trees Bitmap

        canvas.drawBitmap(trees, treeX, treeY, null);

    }
}
4

0 回答 0