Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.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 创建一个;“平滑”;Spritekit中多个块的平面_Swift_Sprite Kit - Fatal编程技术网

Swift 创建一个;“平滑”;Spritekit中多个块的平面

Swift 创建一个;“平滑”;Spritekit中多个块的平面,swift,sprite-kit,Swift,Sprite Kit,我正试图用Spritekit和Swift编写一个iOS游戏,这是我关于stackoverflow的第一个问题:) 为了简化我的问题和约束条件,假设我有两个高度相同的矩形SkshapeNode(我的级别),它们完全并排,具有物理实体,但不是动态的。英雄只是一个正方形的形状模型,有一个动态的物理体,可以在这些长方形上移动。玩家使用加速计移动英雄 我不知道为什么,但有时,当英雄沿着矩形的顶部滑动时,它会立即停在两个矩形之间的间隙处,或者似乎被这个间隙绊倒(跳过它的小跳跃):((移动应该是平滑的) 知道

我正试图用Spritekit和Swift编写一个iOS游戏,这是我关于stackoverflow的第一个问题:)

为了简化我的问题和约束条件,假设我有两个高度相同的矩形SkshapeNode(我的级别),它们完全并排,具有物理实体,但不是动态的。英雄只是一个正方形的形状模型,有一个动态的物理体,可以在这些长方形上移动。玩家使用加速计移动英雄

我不知道为什么,但有时,当英雄沿着矩形的顶部滑动时,它会立即停在两个矩形之间的间隙处,或者似乎被这个间隙绊倒(跳过它的小跳跃):((移动应该是平滑的)

知道我不能为了游戏的目的而合并两个矩形之间的曲面,有没有办法使它们更“平”或更平滑

(我尝试过但不起作用的东西:“地板”所有维度、最接近Int值的位置;使英雄物理身体更圆;启用/禁用精确碰撞)


谢谢!

解决此问题的最简单方法是为移动对象创建一个圆形物理体,而不是矩形。如果需要,还可以组合两个或多个物理体,以更准确地覆盖对象的高度。请参阅中的使用
(SKPhysicsBody*)bodywithboods:(NSArray*)body

将两个实体与底部的圆组合:


欢迎使用StackOverflow。如果可能,请尝试提供图像解释(屏幕截图、gif等),以便我们更好地了解您的问题。无论如何,这看起来像是一个问题。您的问题与链接上的问题类似吗?谢谢Tiago!)我相信这与我遇到的问题完全相同。多亏了您,我应该能够实施一个解决方案或了解更多有关这方面的信息:)此问题的一个常见解决方案是使英雄的物理实体底部为圆形。例如,您可以从矩形和圆形创建物理实体,然后放置圆形,使其刚好延伸到英雄的底部。