我是新來的迅速Sprite套件。在應用程序中,我試圖讓我有一艘潛艇在海洋中移動。每次用戶點擊屏幕時,重力都會開始向相反的方向拉動副件。我的問題是,我無法找到一種方法來保持子離開屏幕。我試圖通過在屏幕周圍製作物理體來解決它,但是該子仍然離開了屏幕。我也嘗試了updateCurrentTime基金中的以下代碼。保持屏幕中的對象。 Swift SpriteKit
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
self.physicsWorld.gravity = CGVectorMake(0,gravity)
if (sub.position.y >= self.size.height - sub.size.height/2){
sub.position.y = self.size.height - self.sub.size.height/2
}
if (sub.position.y <= sub.size.height/2) {
sub.position.y = self.sub.size.height/2
}
}
但是這也沒有做任何事情。
任何幫助將不勝感激!!!!!提前致謝! P.S.我無法相信這是很難保持在屏幕上的東西! 令人沮喪!
我發現,添加:讓場面= GameScene(尺寸:skView.bounds.size)到gameViewController使周圍的edgeLoopFromRect屏幕方法的工作,但它使整個視圖做一個放大的影響,我不知道它做了什麼,所以我不想使用它。有人可以向我解釋這個應該做什麼,以及爲什麼它使得視圖放大/縮小。它也將背景變成黑色....? – BoB
像這樣初始化GameScene意味着它不從sks文件加載。它使得場景的大小適合屏幕(所以邊緣循環位於屏幕邊緣),您應該更改sks文件中的場景大小(默認值大約爲1000x800),這就是爲什麼縮放比較小。 – Okapi
嗨BoB,縮放可以通過設置場景的scaleMode來處理,例如'scene!.scaleMode = .AspectFit'。爲方便起見,將sks文件場景大小設置爲屏幕尺寸也是一個好主意。 – Mason