0

我试图弄清楚瓷砖碰撞,但我无法让它工作。当我与瓷砖碰撞时,什么也没有发生。

我的碰撞课

    public Point WorldToMapCell(Point worldPoint)
    {
        return new Point((int)worldPoint.X, (int)worldPoint.Y);
    }

    public MapCell GetCellAtWorldPoint(Point worldPoint)
    {
        Point mapPoint = WorldToMapCell(worldPoint);
        return Rows[mapPoint.Y].Columns[mapPoint.X];
    }

    public MapCell GetCellAtWorldPoint(Vector2 worldPoint)
    {
        return GetCellAtWorldPoint(new Point((int)worldPoint.X, (int)worldPoint.Y));
    }

我的更新方法

        if (myMap.GetCellAtWorldPoint(player.position).Walkable == false)
        {
            player.velocity = Vector2.Zero;
        }
4

1 回答 1

0

我真的不知道你在做什么类型的游戏。

但是你真的需要检查地图上的位置吗?或者使用collision_2d_perpixel 方法的解决方案不会更好?

如果碰撞 2D 方法不是好的方法,您能否对您的碰撞类更加期待?你的参考地图在哪里?你什么时候必须说“我正在碰撞”?

您能否查看此链接dreamincode 用户问题并告诉我们这是否不是您要查找的内容?

或者你甚至可以看看MSDN

于 2012-12-07T10:15:31.670 回答