Swift 检查玩家是否达到了边距
我正在用swift做一个小游戏,一个蛇游戏。我已经尝试过用python做这个游戏了,它成功了!为了运行游戏,我使用了while循环。通过这种方式,我可以随时改变球员的位置,检查他是否达到了边距。现在我必须再次这样做,但我不知道如何告诉我的程序检查所有的时间,如果蛇已经击中边缘或他自己。 我应该这样做Swift 检查玩家是否达到了边距,swift,xcode,Swift,Xcode,我正在用swift做一个小游戏,一个蛇游戏。我已经尝试过用python做这个游戏了,它成功了!为了运行游戏,我使用了while循环。通过这种方式,我可以随时改变球员的位置,检查他是否达到了边距。现在我必须再次这样做,但我不知道如何告诉我的程序检查所有的时间,如果蛇已经击中边缘或他自己。 我应该这样做 if player.position.x <= 0 || player.position.x >= self.size.width || player.position.y <=
if player.position.x <= 0 || player.position.x >= self.size.width || player.position.y <= 0 || player.position >= self.size.height{
death()
}
如果player.position.x=self.size.width | | player.position.y=self.size.height{
死亡()
}
因此,如果x轴或y轴上的播放器位置的大小大于屏幕大小或小于0,则调用函数“death()。
如果我必须用python来做这件事,我会把所有这些代码放在“main while循环”中。但是有了斯威夫特,我就没时间用了。。。有什么建议吗 如果我理解正确的话:您正在寻找Swift中的一个循环,它为您的游戏进行所有计算和绘图。您有一些关于Swift中循环的教程。事实上,您可以使用while循环来回答您的问题。我希望我能帮上忙。使用SpriteKit。您可以在创建新项目时选择此选项,选择游戏,然后选择SpriteKit。这是苹果制作游戏的框架。它有你需要的东西,而且速度更快——不要用UIKit制作游戏 在SpriteKit中,您有
update()
方法,作为SKScene
的一部分。不要在循环时使用。这些都是非常不可靠的,蛇的速度会因设备而异
下面是一小段代码,可以帮助您开始使用SKScene
:
import SpriteKit
class Scene: SKScene {
let timeDifference: TimeInterval = 0.5 // The snake will move 2 times per second (1 / timeDifference)
var lastTime: TimeInterval = 0
let snakeNode = SKSpriteNode(color: .green, size: CGSize(width: 20, height: 20))
override func update(_ currentTime: TimeInterval) {
if currentTime > lastTime + timeDifference {
lastTime = currentTime
// Move snake node (use an SKSpriteNode or SKShapeNode)
}
}
}
完成所有这些之后,您最终可以检查snake是否超出了此update()
循环中的某些边距或任何内容。尽量减少update()
循环中的代码,因为它通常以每秒60次的速度运行。您使用的是SpriteKit吗?谢谢,这正是我所需要的^-^@Jacopo很高兴它成功了:)如果您需要更多帮助才能让它正常工作,如果您遇到困难,请告诉我是的,我很感激:)再次感谢你的帮助^-^