2015-08-14 91 views
1

我在sprite工具包中製作了一個側面滾動遊戲,其中有許多不同位置的節點。但是我在設置所有位置時遇到問題,因此它們在所有設備上的相同位置。我知道我可以測試哪個設備然後設置我的節點位置,但是當我有20個節點或更多節點時,這確實是很多工作。我也用plist和數組循環遍歷其中的一些,這更加困難,因爲我不想爲所有位置的每個設備製作新的plist。Sprite工具包中的節點位置

有沒有一種簡單的方法讓它們在所有不同的屏幕尺寸下都處於同一位置?

回答

1

您現在的位置在一個動態的方式您的節點取決於您的屏幕尺寸是這樣的:

// get screen size 
CGRect screenRect = [[UIScreen mainScreen] bounds]; 
CGFloat screenWidth = screenRect.size.width/100; 
CGFloat screenHeight = screenRect.size.height/100; 

myNode.position = CGPointMake(screenWidth*6, screenHeight*25); 

實際上使用的是實際的屏幕寬度和高度的百分比。

0

這裏有兩種思想流派。

第一個是你在一個特定的(x,y)如(20,50)設置他們的位置。這將確保它們始終與SpriteKit中左下角的距離相同。這也意味着事物可能會在適合大型設備的小型設備上移出屏幕。

第二學派(以及我最常使用的學派)是使用比例。 (xR,yR)代替靜態(x,y),其中xR和yR是跨越屏幕大小的距離的比率。假設你想在屏幕中央放置一個角色,你可以使用(.5,.5),然後當你放置角色時,只需要將XR乘以屏幕的寬度,再乘以屏幕的高度。

CGPoint position = CGPointMake(xR * self.size.width, yR * self.size.height); 

其中self是SpriteKit中的場景或任何超級節點。