2012-03-13 125 views

回答

2

如果旋轉的對象是一個實現Shape接口的對象,那麼它可能會有一個有用的方法實現方法。

+0

該對象是一個圖像,所以不幸的是不會工作。 – user1150769 2012-03-13 18:05:41

+0

也許現有的「形狀」可以用來近似圖像的碰撞邊界。 – trashgod 2012-03-13 18:28:49

+1

@ user1150769更快地幫助您更快地編輯您的問題[SSCCE](http://sscce.org/) – mKorbel 2012-03-13 18:44:10

1

在paint()中,當您準備繪製活動圖像時,請檢查目標點的像素顏色並查找目標對象的顏色。運動中的圖像和目標物體當然必須是不同的顏色。

0

你用於小行星的碰撞邊界究竟是什麼?

最簡單的可能是你可以對所有事物使用圓圈並實現圓圈碰撞檢測(只是谷歌它)。如果你的圖像不是非常圓形的,這可能不會令人滿意。否則,如果你有旋轉矩形與其他旋轉矩形碰撞,那麼你將不得不使用Separating Axis Theorem for 2D Rotated Rectangle Collision實現算法。

另一種選擇可能是像素完美的碰撞檢測,這是Chuck正在談論。快速搜索出現了這個論壇post。請謹慎行事,但這種方法的性能會隨着圖像的大小而降低。

1

像素完美的碰撞檢測,即。圖像之間的碰撞檢測通常很難有效地進行。出於這個原因,使用爲此目的而構建的現有優化庫通常是一個好主意。

由於您還需要支持旋轉圖像,我推薦PoxelColl。它支持像素完美的碰撞檢測以及縮放和旋轉等基本轉換。它提供了一個與Java兼容的Scala端口。