Java fillOval精度

时间:2016-09-09 13:45:53

标签: java swing bufferedimage

我是一名java新手,目前正在开发像蛇一样的游戏,有多条蛇

蛇对象包括(x,y)坐标,其中fillOval使用Timer绘制圆圈。我的问题是,我需要检查碰撞。这个想法是,在绘制新圆圈的地方,该区域必须是背景色。我对此进行了简化,因此在绘制新圆的位置时,只有一个特定点必须是背景色。如果它有其他颜色,则意味着其他蛇已经存在,因此检测到碰撞。如果它有自己的蛇色,则意味着它本身就会发生碰撞。现在,由于刷新率,这可能是因为先前绘制的圆圈,它覆盖了新的点。

这是一张图片来说明:P - point to check, O1 - current cicle, O2 - previous circle

现在,如果P点位于O2前一个圆圈内,那么它不会发生碰撞,因为它确实有自己的颜色 - 前一个循环着色。

然而,有时候,虽然P在O2之外,但它会记录那里的颜色。 我怀疑这是因为像素精度,因为fillOval用Zig-zag描边。

我很高兴听到有关如何克服这一点的任何想法。感谢。

0 个答案:

没有答案