Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 旋转像素完美碰撞检测_Java_Android_Collision Detection - Fatal编程技术网

Java 旋转像素完美碰撞检测

Java 旋转像素完美碰撞检测,java,android,collision-detection,Java,Android,Collision Detection,所以我正在开发一款Android游戏,屏幕上有两幅图像。我目前有像素完美的碰撞检测工作得很好。我的问题是当我旋转其中一个图像时,我检查像素是否有碰撞。像素的方向仍然与加载图像的原始方式相同,因此它不像以前那么完美。。。我可以得到一个数组或2d数组中的所有像素。但我目前只是通过Bitmap类中的getPixel(x,y)方法访问它们 有人知道基于任意度数旋转数组中的值的算法吗?或者其他解决这个问题的方法?你看过吗 这是我过去用来旋转精灵和图像的代码。我使用此代码旋转图像并从图像中获取像素值: Im

所以我正在开发一款Android游戏,屏幕上有两幅图像。我目前有像素完美的碰撞检测工作得很好。我的问题是当我旋转其中一个图像时,我检查像素是否有碰撞。像素的方向仍然与加载图像的原始方式相同,因此它不像以前那么完美。。。我可以得到一个数组或2d数组中的所有像素。但我目前只是通过
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
。有关更多信息,请参阅。