-2
我使用矩形編寫了一個簡單的碰撞檢測。我必須在渲染方法中檢查重疊。你能告訴我什麼是快,第一種方式:Java。碰撞檢測
render()
{
Rectangle playerRectangle = new Rectangle(
playerTransformComponent.x,
playerTransformComponent.y,
playerDimensionsComponent.width,
playerDimensionsComponent.height);
for(Rectangle block : blocksList){
//check collision
}
}
或者第二種方式:
Rectangle playerRectangle = new Rectangle();
render()
{
playerRectangle.x = playerTransformComponent.x;
playerRectangle.y = playerTransformComponent.y;
playerRectangle.width = playerDimensionsComponent.width;
playerRectangle.height = playerDimensionsComponent.height;
for(Rectangle block : blocksList){
//check collision
}
}
需要花費時間的是* for循環,如果您擔心性能需要調查*碰撞檢測算法*,不用擔心創建單個對象。 – StephenG
[你有馬匹:比賽](http://ericlippert.com/2012/12/17/performance-rant/) – Filburt
有效的方法之一是使用動態AABB樹。您可以瀏覽網頁以獲取更多信息。速度取決於你的'檢查碰撞'循環的執行情況 –