如何將sks文件SKNode轉換爲該節點的子類?遇到與here相同的問題,它說在sks編輯器中設置自定義類和模塊,但該答案不起作用!無法將SKNode從.sks文件轉換爲自定義類
我已經在SpriteKit場景編輯器中的一個空SKNode下構建了一個SKSpriteNodes組件,它使用空節點作爲構成該組件的根部。根SKNode.name被設置爲「ship」,並且自定義類字段被設置爲「BasicShip」,這是我嘗試轉換的類。該模塊設置爲項目名稱(在構建設置中確認爲模塊名稱)。
我正在使用自定義SKNode子類向船舶添加動態,例如,推力功能等。
通過childNodeWithName()檢索節點返回一個可選(SKNode),而不是我的自定義類。將返回的節點投射到我的自定義類編譯時會在運行時崩潰。
檢查didMoveToView()中的場景節點將「ship」節點顯示爲通用SKNode,因此自定義類不會接收sks文件,也不能在運行時將其轉換爲一個。
let world = self.childNodeWithName("world")
let ship = world!.childNodeWithName("ship") as! BasicShip
ship.thruster1.throttle = 0.5
ship.thruster2.throttle = 0.5
停止與消息:Could not cast value of type 'SKNode' (0x1001dcc60) to 'Lander001.BasicShip' (0x10000f2a0).
我的自定義類是從SKNode繼承,所以劇組應該不會有問題吧?
(Xcode的7.2.1版,OSX 10.10 < - 難道是OSX版VS iOS的事情我想雙方最終運行?)
在場景中四處挖掘,節點應該在哪裏,所以問題依然存在**爲什麼SKNode的已知實例無法轉換爲該節點的子類?**並且其原點是a。 sks文件與它有什麼關係? – rebusB
在sks文件中,您是否將您的船設置爲BasicShip自定義類? –
是的,模塊如上所述...但要清楚,將其設置在「ship」SKNode不是我假設的最高級別將用於設置自定義SKScene。 – rebusB