Swift SKTileMapNode tileRowIndex对于超出其边界的负值始终返回0 设tileRow=self.tileMap.tileRowIndexfromPosition:point
假设tileMap有20行20列,每个100x100。如果point是一个大于tileMap边界的正值,它将从0返回20个计数,因此索引用于不存在的下一行。如果point是一个负值,其绝对值大于tileMap的边界,它将返回0,因此实际存在的第一行。这是验证玩家是否移动到tileMap边界之外的问题,因为它将继续向下移动,因为对于上一种情况,函数将始终返回0。对于这种情况,要检查SKTileMapNode上边界的一个点,可以使用: self.tileMap.containspos 在本例中,可以通过单击来添加点,点的颜色会根据其位于地图内部还是外部而变化: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 在本例中,可以
谢谢!这是个好办法。然而,问题中描述的行为是有意的还是无意的?我认为你想要达到的目标是检查玩家是否无法用Tilerovindex解决它。是吗?是的,但我的意思是,为什么一个较大的值会返回下一个索引,而一个较小的值仍然会返回0?@Dimitrie-TomaFurdui-tilerovindex和tilecolumnidex为我工作。请看一看我更新的示例。