我遇到了一个无法解释的问题。这可能是 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);
}
}