嘿所以我正在观看Ray Wenderlich关于如何让游戏像大型跳跃的教程!并试图自己创建一个类似的项目。因此,在本教程中,您可以将播放器设置为在您倾斜设备时离开屏幕。
override func didSimulatePhysics() {
player.physicsBody?.velocity = CGVector(dx: xAcceleration * 400.0, dy: player.physicsBody!.velocity.dy)
if player.position.x < -20.0 {
player.position = CGPoint(x: self.size.width + 20.0, y: player.position.y)
} else if (player.position.x > self.size.width + 20.0) {
player.position = CGPoint(x: -20.0, y: player.position.y)
}
return;
}
这是我让玩家离开屏幕的代码。我怎么能这样做,但玩家不能离开屏幕?例如,如果您将设备一直向右倾斜,则让播放器保持在右侧,直到您以相反的方式移动它!先感谢您。
答案 0 :(得分:1)
目前您检查播放器是否在屏幕外(超过20像素),然后将其位置设置为另一侧,距离屏幕20px。
但是你想要将播放器停在0px和你的屏幕宽度。你可以这样做:
if player.position.x <= 0.0 {
player.position = CGPoint(x: 0.0, y: player.position.y)
} else if (player.position.x >= self.size.width) {
player.position = CGPoint(x: self.size.width, y: player.position.y)
}
如果他向左移动,或者你的屏幕宽度,如果他向右移动,这就设置了玩家的位置为0.0。
答案 1 :(得分:0)
当前代码&#34;循环播放&#34;因此,一直向左移动意味着你最终会在右边。
只需更改if
块中的坐标即可固定到边缘。像这样:
if player.position.x < -20.0 {
player.position = CGPoint(x: -20.0, y: player.position.y)
} else if (player.position.x > self.size.width + 20.0) {
player.position = CGPoint(x: self.size.width + 20.0, y: player.position.y)
}
请注意,如果玩家超出左边缘(x <-20),那么您只需将x位置保持在-20。类似的东西在右边缘。
你必须尝试这一点,看看它如何与物理和加速一起工作,但这应该是一般的想法。