0
我正在爲iPad和iOS 10編寫應用程序。 我的應用程序只使用一個SKScene(大小爲1300×1000)。 我也用這樣定義一個攝像頭:SKScene:找到SKSpriteNode的最大位置
myCamera=[[SKCameraNode alloc] init];
myCamera.position=CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
self.camera=myCamera;
[self addChild:myCamera];
我用很多SKSpriteNodes用戶可以拖動(甚至超出了SKScene的大小)。
我還使用:
[myCamera setScale:newScale];
對付捏縮放。
我需要知道是否有辦法在右邊的SKScene中距離位置0,0最遠的節點的最大X位置,而不必逐個讀取所有節點位置。 然後對其他三方(上,左,下)做同樣的事情。
當然這是一個可能的解決方案。 – danyadd
當然這是一個可能的解決方案。但是我的SKSpriteNodes具有子節點,所以用於更新maxX的代碼會更復雜。 我不知道SKScene是否已經知道這個maxX位置。 例如,我想知道是否SKScene didChangeSize被自動調用,或者如果一個節點在SKScene框架之外的話。 – danyadd
請參閱編輯。同樣的想法,但使用calculateAccumulatedFrame來獲得節點後代的全部範圍。如果您的節點幾何圖形已修復,則可以爲每個節點緩存該矩形以節省計算量。 – danh