2011-11-30 98 views
0

對,我正在製作一款2D賽車遊戲。到目前爲止,我已經開始了汽車的移動等(當然有一些幫助),並且想知道如何在XNA中添加碰撞檢測。我已經採取了保險槓部分(從整個軌道),並作爲一個單獨的.png文件。而且我正在考慮在其周圍增加一個碰撞檢測盒(所以如果'汽車'擊中'保險槓'等等)。如何將碰撞檢測添加到保險槓中,並將其與汽車整合?謝謝!如何在XNA的2D汽車遊戲中添加碰撞檢測?

回答

0

如果汽車總是直 - 不旋轉,看起來這會容易得多。如果他們被旋轉,你將無法使用矩形幫助。 如果你這樣做,那麼你可以在car.png中包含保險槓。 然後,您可以使用汽車的座標並添加某些值以獲取保險槓區域的長度和寬度。 那麼你可以做

Rectangle bumperBoundingBox = new Rectangle 
(
    (int)X_COORDINATE_OF_CAR, 
    (int)Y_COORDINATE_OF_CAR, 
    (int)X_COORDINATE_OF_CAR + WIDTH_OF_BUMPER, 
    (int)Y_COORDINATE_OF_CAR + HEIGHT_OF_BUMPER 
); 
Rectangle otherCarBoundingBox = new Rectangle(\* x, y, ... *\); 
bool carIsTouchingBumper = otherCarBoundingBox.Intersects(bumperBoundingBox); 

這可能不是完美的完美,作爲參數矩形可能會以不同的順序或類似的東西。但一旦你有了它,你可以使用carIsTouchingBumper並做些什麼。

如果您希望保險槓是一個單獨的圖像,您可以做同樣的事情,除了使用保險槓的座標。你也必須讓保險槓跟隨汽車。