Я знаю, что есть пара других вопросов по этому поводу, но ни один из них, похоже, не работает, или все они неполные или наполовину завершенные. Мне нужно знать, как удерживать объект в пределах видимого экрана! Итак, у меня есть спрайт космического корабля, который использует наклон устройства и движение ядра, чтобы летать по экрану. Если я наклоню свое устройство, космический корабль в какой-то момент покинет мой экран и продолжит движение в том же направлении. Как сделать так, чтобы космический корабль оставался внутри моего экрана, чтобы, даже если я наклоняю его влево или вправо, он никогда не покидал видимого экрана? Вот часть моего кода для космического корабля.
class GameScene: SKScene, SKPhysicsContactDelegate {
var ship = SKSpriteNode(imageNamed:"Spaceship")
let manager = CMMotionManager()
override func didMoveToView(view: SKView) {
/* Setup your scene here */
ship.xScale = 1/5
ship.yScale = 1/5
ship.position = CGPoint(x: self.frame.width/(2), y: self.frame.height/1.5)
self.physicsWorld.contactDelegate = self
manager.startAccelerometerUpdates()
manager.accelerometerUpdateInterval = 0.1
manager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue()){
(data, error) in
self.physicsWorld.gravity = CGVectorMake(CGFloat((data?.acceleration.x)! * 15), CGFloat((data?.acceleration.y)! * 15))
}
ship.physicsBody = SKPhysicsBody()
ship.physicsBody?.affectedByGravity = true
self.addChild(ship)
}
Я уже пробовал self.view?.bounds и превращал его в физическое тело, но мой космический корабль так и не соприкоснулся с ним.