我目前在使用邊界框使一個精靈出現固體時遇到了麻煩。下面的代碼碰撞工作得很好。二維邊界框碰撞,牆壁
位置是地圖上的主要角色位置。 character2是主角色將與其碰撞的18 x 28精靈的名稱。
當主角色與角色2精靈發生碰撞時,我試着相應調整位置(EX:Position.X - = 1;),但這只是將我的主精靈滑回,直到它不相交。
我有一種感覺,這是非常簡單的事情,但對於我的生活,我只是無法弄清楚。
總結我的問題:如何使character2 sprite在碰撞時顯示爲實體?另外,即使我的主精靈在碰撞時停下來(通過將速度降低到0)它會卡在那裏,if語句進入一個無限循環。
float x1 = Position.X;
float y1 = Position.Y;
float x2 = x1 + character2.Width;
float y2 = y1 + character2.Height;
BoundingBox b1 = new BoundingBox(new Vector3(x1, y1, 0),
new Vector3(x2, y2, 0));
BoundingBox b2 = new BoundingBox(new Vector3(Position2.X, Position2.Y, 0),
new Vector3(x2, y2, 0));
if (Collision(b1, b2))
{
// ????
}
這只是凍結屏幕= X – 2011-12-21 03:15:00