我正在使用Swift和SpriteKit構建一個應用程序。該應用程序加載一個與屏幕大小完全一致的SKSpriteNode,並將其放置到屏幕上。但是,用戶可以儘可能多地移動和縮放該SKSpriteNode。我關心SKSpriteNode的絕對位置,因爲如果節點移動得太多,我喜歡將它放回中心位置,或者將它「捕捉」到屏幕的邊緣。 (SKSpriteNode最終會保存一張地圖)。SpriteKit縮放奇怪
當節點的比例恰好爲1.0時,位置值按我預期的那樣工作。但是,當我縮放節點(使用捏手勢)並且縮放比例超過1.0時,位置值無意義。這裏有一些圖片來說明我的意思。
在這裏,你可以看到,未縮放的節點具有完全相同的尺寸和位置作爲場景它被放置在X和Y均爲0,每個地圖以及現場:
但是,正如您在下一張圖片中看到的那樣,當我將地圖縮放爲較大的SKSpriteNode並將其移動時,地圖的左下角恰好位於屏幕的左下角,縮放節點的X和Y值將關閉。我期望X是0,Y是0,但他們不是。
正在發生的事情在這裏,以及如何計算縮放節點的絕對位置?當我說「絕對」的位置時,或許我的意思是相對於現場的位置?無論如何,你的想法值得讚賞。
您可以從這些屬性中刪除get。 – Whirlwind
如果我刪除了,他們仍然會被計算屬性? Apple開發人員指南說只有Set是可選的。 – zeeple
如果你刪除'get',但離開'return',你將會有相同的行爲。這樣,這些屬性仍然是計算出來的並且是隻能得到的。 – Whirlwind