所以在我的GameScene中我在func的开头有这些行didMoveToView
let border = SKPhysicsBody(edgeLoopFromRect: self.frame)
border.friction = 0
self.physicsBody = border
self.physicsWorld.contactDelegate = self
它可以防止我的播放器走出屏幕;但是,我希望我的播放器或场景中的任何其他内容在触摸边框时转到屏幕的另一侧。换句话说:如果我继续向右走,我会继续向右走,直到我到达边界然后我的玩家将从左边界出现并继续向右无限循环。
y轴也一样。
这在代码中如何实现?
答案 0 :(得分:0)
试试这段代码:
if player.position.x + player.size.width / 2 > size.width {
player.position.x = -player.size.width
}
else if player.position.x + player.size.width / 2 < 0 {
player.position.x = size.width + player.size.width / 2
Y轴的逻辑相同。
答案 1 :(得分:0)
对于有兴趣重现这一点的人,我不得不删除以下代码:
let border = SKPhysicsBody(edgeLoopFromRect: self.frame)
border.friction = 0
self.physicsBody = border
self.physicsWorld.contactDelegate = self
然后,在touchesMoved中我添加了:
if Player.position.x + Player.size.width / 16 > size.width {
Player.position.x = Player.size.width / 16
}
else if Player.position.x + Player.size.width / 16 < 0 {
Player.position.x = size.width - Player.size.width / 16
}
表示x轴。 &安培;除了我们将x改为y和y之外,对Y轴也可以这样做。宽度到高度。