我使用x和y整数创建了一个矩形,当我触摸矩形并沿某个方向滑动时会改变值(当我向右滑动时x增加,当我向上滑动时y增加,等等)。此矩形也将呈现在画布上。我有一个游戏循环,它调用update()方法和render()方法。 update()方法更新x和y值并创建碰撞检测矩形,然后render()方法使用这些值将更新的矩形渲染到画布。
假设我在游戏循环中绘制此矩形之前使用方法canvas.translate(0,-50)。矩形看起来比以前高50像素,但是我的x和y值保持不变,所以我必须在我渲染的矩形下方滑动才能实际执行某些操作。什么是更新x和y的简单而有效的方法,以便我的矩形实际上位于渲染的位置而不是它的下方?我需要将碰撞检测框放在绘制矩形的位置。
答案 0 :(得分:0)
我自学了如何编程,所以我不确定是否有更简单的方法,但如果我是你,只要你调用canvas.translate(),只需更改x和y值进行调整。例如,这就是我为你提供的样本做的事情:
canvas.translate(0, -50)
x = x+0
y = y+(-50)
如果你懒得添加额外的两行,你可以将它全部放入一个函数中,只需用你所做的任何函数替换canvas.translate()。
事实上,我现在将完成这项功能。为什么不呢?
public void translate(double XMove, double YMove) {
canvas.translate(XMove, YMove);
x = x+XMove;
y = y+YMove;
}