Java 旋转像素完美碰撞检测
所以我正在开发一款Android游戏,屏幕上有两幅图像。我目前有像素完美的碰撞检测工作得很好。我的问题是当我旋转其中一个图像时,我检查像素是否有碰撞。像素的方向仍然与加载图像的原始方式相同,因此它不像以前那么完美。。。我可以得到一个数组或2d数组中的所有像素。但我目前只是通过Java 旋转像素完美碰撞检测,java,android,collision-detection,Java,Android,Collision Detection,所以我正在开发一款Android游戏,屏幕上有两幅图像。我目前有像素完美的碰撞检测工作得很好。我的问题是当我旋转其中一个图像时,我检查像素是否有碰撞。像素的方向仍然与加载图像的原始方式相同,因此它不像以前那么完美。。。我可以得到一个数组或2d数组中的所有像素。但我目前只是通过Bitmap类中的getPixel(x,y)方法访问它们 有人知道基于任意度数旋转数组中的值的算法吗?或者其他解决这个问题的方法?你看过吗 这是我过去用来旋转精灵和图像的代码。我使用此代码旋转图像并从图像中获取像素值: Im
Bitmap
类中的getPixel(x,y)
方法访问它们
有人知道基于任意度数旋转数组中的值的算法吗?或者其他解决这个问题的方法?你看过吗
这是我过去用来旋转精灵和图像的代码。我使用此代码旋转图像并从图像中获取像素值:
Image rotatedImage = new BufferedImage(imageToRotate.getHeight(null), imageToRotate.getWidth(null), BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = (Graphics2D) rotatedImage.getGraphics();
// Set rotation here
g2d.rotate(Math.toRadians(90.0));
g2d.drawImage(imageToRotate, 0, -rotatedImage.getWidth(null), null);
g2d.dispose();
int pixelColor = ((BufferedImage)rotatedImage).getRGB(x, y);
你确定你访问的是旋转图像的像素而不是原始图像吗?我正在考虑这个问题,但是当我在开始加载位图时,我非常确定它只存储了一次像素,但不会在旋转时更新它们。我甚至尝试使用
getPixels()
和setPixels()
方法在轮换时手动更新它们。这需要我导入java.awt库,因为Android不支持它,我认为我不需要这么多开销。我认为Android的位图类与BuffereImage相同,Graphics2D类与Android画布类似。隐马尔可夫模型。。。我会调查的,我想这会管用的。我只需要导入java.awt来使用它。。。正如我在另一篇评论中所说,Android不支持这一点。我想我会仔细研究一下这个想法,看看是否能想出一个实现它的方法。你可以用仿射变换代替AffineTransform
。有关更多信息,请参阅。