C# 在c语言中,你如何检查某物是否直接在你前面、旁边或后面#

C# 在c语言中,你如何检查某物是否直接在你前面、旁边或后面#,c#,winforms,C#,Winforms,我已经创建了一个基本的游戏,第一级类似于扫雷。我有一个随机放置的地雷类和一个玩家角色类。我已经在玩家和地雷之间设置了碰撞检测,我还想做的是检查玩家旁边的地雷,所以我基本上想设置一个假设场景,如果玩家向任何方向移动,它会检查是否会发生碰撞 private void collisionTimer_Tick(对象发送方,事件参数e) { foreach(喷射器中的喷射器j) { foreach(矿山中的m) { if(j.e.边界与(m.m.边界)相交) { gameOver(); } } } }

我已经创建了一个基本的游戏,第一级类似于扫雷。我有一个随机放置的地雷类和一个玩家角色类。我已经在玩家和地雷之间设置了碰撞检测,我还想做的是检查玩家旁边的地雷,所以我基本上想设置一个假设场景,如果玩家向任何方向移动,它会检查是否会发生碰撞

private void collisionTimer_Tick(对象发送方,事件参数e)
{
foreach(喷射器中的喷射器j)
{
foreach(矿山中的m)
{
if(j.e.边界与(m.m.边界)相交)
{
gameOver();
}
}
}
}

这是我用来检测玩家和地雷之间碰撞的代码,但我不知道如何设置潜在的碰撞。任何帮助或推动正确方向都将不胜感激。

有些东西闻起来很难闻,你的移动代码与碰撞检测无关吗?是的,假设我按下键的速度比计时器的滴答声快,你可能会错过碰撞。此外,对于“假设”场景,您需要在移动前检查碰撞,检查碰撞是否会发生,是否会杀死玩家(如果这是它应该做的),或者移动它。复制玩家对象的边界,移动它,并检查交叉点,这将告诉你哪些地雷会在下一个运动中发生碰撞。WinForms并不是开发图形游戏的最佳工具,tbh。它是为业务线数据输入等而设计的。例如,你想过使用Unity吗(假设你想留在.NET世界)?因此Gusman在顶部的评论听起来对你的设置很有意义。制作一个新的,临时的,表示玩家将移动到哪里,然后看看是否与任何地雷相交。例如,如果要向右移动,则要在当前X位置上添加一些正值,同时保持相同的Y和宽度/高度。向左移动,你会减少X的位置,等等。。。