我想實現什麼?如何防止「鼠標對象」移動throgh矩形?
我有一個應該隨鼠標位置移動的Sprite(有點像光標)。在我的情況下,雖然我也有其他紋理(障礙級)。所以如果鼠標與這樣一個障礙碰撞,我希望紋理停止朝那個方向移動。
什麼問題?
雖然紋理確實遵循鼠標,並且在鼠標與障礙物「碰撞」時也會停止,但在某些時刻,光標不再位於邊界矩形內,而是位於牆的另一側。結果,紋理的位置被更新爲鼠標位置,它突然出現在牆後面,這不是所需的行爲。
我的碰撞法。
private void CheckCollision(List<Obstacle> _obstacleList, MouseState mState)
{
int xOffset = oldMouseState.X - mState.X;
int yOffset = oldMouseState.Y - mState.Y;
Vector2 offsetPosition = new Vector2(oldMouseState.X + xOffset,oldMouseState.Y + yOffset);
bool collides = false;
foreach (Obstacle obstacle in _obstacleList)
{
if (obstacle.BoundRectangle.Contains(offsetPosition))
{
collides = true;
}
}
if (!collides)
{
position = offsetPosition;
}
}
問題
什麼是防止穿牆在我的情況下,以移動精靈的方法嗎?
在此先感謝。
我認爲你需要檢查鼠標位置對每個障礙物如:(offsetPosition.X
user3256944