如何以不同的速度移动背景位图?

时间:2019-07-06 14:43:19

标签: java android bitmap background accelerate

我遇到了无法解释的问题。这可能会造成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);

    }
}

0 个答案:

没有答案