我正在使用Canvas进行简单的2D游戏。我有从屏幕顶部掉落的矩形。当我每秒减少帧数时,我可以看到当我增加矩形的y坐标时,矩形会上下移动一点点。 这就是我移动矩形的方式:
public void incrementY(float y) {
rectangle.top += y;
rectangle.bottom += y;
}
我只是通过浮动来增加矩形的顶部和底部以将其向下移动。我是如何移动矩形的?为什么当矩形应该下降时矩形会向上移动?
答案 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);
}