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