Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 碰撞检测逻辑_C#_Algorithm_Xna_Collision - Fatal编程技术网

C# 碰撞检测逻辑

C# 碰撞检测逻辑,c#,algorithm,xna,collision,C#,Algorithm,Xna,Collision,我正在用XNA创建一个2D平台,它是平铺的,因此会有方形和倾斜的平铺。我的问题是,我的算法应该如何工作?现在,我有它的地方,它分离水平和垂直运动,这似乎对方形瓷砖很好,但它失败的斜坡。我应该在哪里检查坡度交叉点 水平检查和随后的重新定位 垂直检查和随后的重新定位 在这个算法中,斜坡在什么地方形成?或者有没有另一个我忽略了的更好的解决方案,对我更有利 [编辑] 算法伪码 private void Collision() { if (velocity.X != 0) {

我正在用XNA创建一个2D平台,它是平铺的,因此会有方形和倾斜的平铺。我的问题是,我的算法应该如何工作?现在,我有它的地方,它分离水平和垂直运动,这似乎对方形瓷砖很好,但它失败的斜坡。我应该在哪里检查坡度交叉点

水平检查和随后的重新定位 垂直检查和随后的重新定位 在这个算法中,斜坡在什么地方形成?或者有没有另一个我忽略了的更好的解决方案,对我更有利

[编辑] 算法伪码

private void Collision()
{
    if (velocity.X != 0)
    {
        //Check for intersections with new position, reposition if there is an intersection

        //Moving to the right
        if (velocity.X > 0)
        {}

        //Moving to the left
        if (velocity.X < 0)
        {}
    }
    if (velocity.Y != 0)
    {
        //Check for intersections with new position, reposition if there is an intersections

       //Moving downwards
        if (velocity.Y > 0)
        {}

        //Moving upwards
        if (velocity.Y < 0)
        {}
    }
}

你真的一点也没有描述你的算法。。你能添加更多细节吗?将有正方形和倾斜的瓷砖-你是指正方形和三角形的角瓷砖吗?是的,如图中所示的坡度-