为什么在更改它的y坐标时,Canvas中的Rect会上下移动?

时间:2017-10-24 01:17:57

标签: android android-canvas

我正在使用Canvas进行简单的2D游戏。我有从屏幕顶部掉落的矩形。当我每秒减少帧数时,我可以看到当我增加矩形的y坐标时,矩形会上下移动一点点。 这就是我移动矩形的方式:

public void incrementY(float y) {
    rectangle.top += y;
    rectangle.bottom += y;
}

我只是通过浮动来增加矩形的顶部和底部以将其向下移动。我是如何移动矩形的?为什么当矩形应该下降时矩形会向上移动?

1 个答案:

答案 0 :(得分:1)

您的坐标为float,但像素为integers。使用strict rounding的某些情况将坐标转换为像素,作为实例上限:

public void incrementY(float y) {
    rectangle.top = Math.ceil(rectangle.top + y);
    rectangle.bottom = Math.ceil(rectangle.bottom + y);
}