Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.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#_Path - Fatal编程技术网

C# 如何拒绝玩家移动特定路径?

C# 如何拒绝玩家移动特定路径?,c#,path,C#,Path,我开始玩一个小游戏,玩家在“地图”上点击来完成任务。用户每次单击仅允许移动玩家X方块。我如何限制玩家不能通过拦网移动 现在,玩家可以通过填充区域移动,但我不希望这样,用户应该只能在没有填充方块的地方移动。(即绿色通道。) 目前,我正在计算起点和终点之间向量的长度,以查看用户是否可以移动那么远,但我不知道如何检查是否有墙挡在路上,然后计算新的长度 (红色路径是最短的路径,绿色路径是我试图强迫玩家行走的路径。m是玩家。) 听起来像是路径查找的问题!但是,嗯,是的。谷歌“A*路径查找”应该会让你朝着正

我开始玩一个小游戏,玩家在“地图”上点击来完成任务。用户每次单击仅允许移动玩家X方块。我如何限制玩家不能通过拦网移动

现在,玩家可以通过填充区域移动,但我不希望这样,用户应该只能在没有填充方块的地方移动。(即绿色通道。)

目前,我正在计算起点和终点之间向量的长度,以查看用户是否可以移动那么远,但我不知道如何检查是否有墙挡在路上,然后计算新的长度

(红色路径是最短的路径,绿色路径是我试图强迫玩家行走的路径。m是玩家。)

听起来像是路径查找的问题!但是,嗯,是的。谷歌“A*路径查找”应该会让你朝着正确的方向前进。

非常感谢:)我现在已经创建了一个查找路径的有效算法,但是我如何计算路径的长度呢?我不擅长递归:(而且,如果其他人有同样的问题,我使用了本教程: