我有一些方形的节点(如地砖)沿着屏幕移动,我想限制我的播放器(P)节点在这些节点内移动。
---------------------------------
| | P | | | | | | | <- Want no movement allowed
--------------------------------- outside of these squares.
| |
-------------
| | | | ...
-------------
我想知道使用SpriteKit Physics是否有一种优雅的方式来做到这一点,这并不意味着将隐形块一直放在地板上。
谢谢!
答案 0 :(得分:3)
<iframe src="http://docs.google.com/gview?url=http://example.com/mypdf.pdf&embedded=true" style="width:718px; height:700px;" frameborder="0"></iframe>
对象描述了节点位置或方向的数学约束。
您可以使用SKConstraint
将节点与水平轴上的特定点保持一定距离:
SKConstraint
您还可以决定在游戏中启用或禁用某个约束:
let center = size.width/2.0, difference = CGFloat(170.0)
let leftConstraint = SKConstraint.positionX(SKRange(constantValue: center - difference))
let rightConstraint = SKConstraint.positionX(SKRange(constantValue: center + difference))
player.constraints = [leftConstraint, rightConstraint]
答案 1 :(得分:1)
您使用基于边缘的物理实体,而不是基于体积的物理实体。因此,在构建物理主体时,在构造函数中查找edge
的任何内容。现在,如果你想能够在瓷砖之间走动,你将需要为地板的外墙创建一个物理主体,因为按瓷砖进行平铺将意味着你将被困在单独的瓷砖中。