碰撞检测逻辑

时间:2015-04-01 00:15:27

标签: c# algorithm xna collision

我正在使用XNA创建一个2D平台,它是基于平铺的,因此将具有方形和倾斜平铺。我的问题是,我的算法应该如何工作?现在,我把它分离到水平和垂直运动的位置,这似乎适用于方形瓷砖,但它与斜坡无关。我应该在哪里检查斜坡交叉点?

  1. 水平检查,以及随后的重新定位
  2. 垂直检查,以及随后的重新定位
  3. 此算法中的斜率会落到何处?或者是否有另一种可能更好的解决方案,我忽略了哪种方式可以更好地为我服务?

    [编辑]
    算法伪码

    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)
            {}
        }
    }
    

0 个答案:

没有答案
相关问题