Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.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
Swift SKTileMapNode tileRowIndex对于超出其边界的负值始终返回0 设tileRow=self.tileMap.tileRowIndexfromPosition:point_Swift_Sprite Kit - Fatal编程技术网

Swift SKTileMapNode tileRowIndex对于超出其边界的负值始终返回0 设tileRow=self.tileMap.tileRowIndexfromPosition:point

Swift SKTileMapNode tileRowIndex对于超出其边界的负值始终返回0 设tileRow=self.tileMap.tileRowIndexfromPosition:point,swift,sprite-kit,Swift,Sprite Kit,假设tileMap有20行20列,每个100x100。如果point是一个大于tileMap边界的正值,它将从0返回20个计数,因此索引用于不存在的下一行。如果point是一个负值,其绝对值大于tileMap的边界,它将返回0,因此实际存在的第一行。这是验证玩家是否移动到tileMap边界之外的问题,因为它将继续向下移动,因为对于上一种情况,函数将始终返回0。对于这种情况,要检查SKTileMapNode上边界的一个点,可以使用: self.tileMap.containspos 在本例中,可以

假设tileMap有20行20列,每个100x100。如果point是一个大于tileMap边界的正值,它将从0返回20个计数,因此索引用于不存在的下一行。如果point是一个负值,其绝对值大于tileMap的边界,它将返回0,因此实际存在的第一行。这是验证玩家是否移动到tileMap边界之外的问题,因为它将继续向下移动,因为对于上一种情况,函数将始终返回0。

对于这种情况,要检查SKTileMapNode上边界的一个点,可以使用:

self.tileMap.containspos

在本例中,可以通过单击来添加点,点的颜色会根据其位于地图内部还是外部而变化:

谢谢!这是个好办法。然而,问题中描述的行为是有意的还是无意的?我认为你想要达到的目标是检查玩家是否无法用Tilerovindex解决它。是吗?是的,但我的意思是,为什么一个较大的值会返回下一个索引,而一个较小的值仍然会返回0?@Dimitrie-TomaFurdui-tilerovindex和tilecolumnidex为我工作。请看一看我更新的示例。