簡體   English   中英

基於iOS設備的自適應定位

[英]Adaptive Positioning Based on iOS Device

幾個月前,我制作了一款iPhone游戲,現在正嘗試將其作為通用應用程序移植到帶有Cocos2D的iPad和iPhone 5上。 我想知道是否有一種簡單的方法可以根據運行游戲的設備來確定應將對象放置在何處。

我可以使用if語句來確定游戲在哪個設備上運行,因此當我獲得該設備的正確尺寸的圖像時,我可以為每個對象設置單獨的位置,但是似乎會有一個數學公式可以讓我使用更少的代碼。 顯然,像全屏背景這樣的事情非常簡單,因為它只需要以以下內容為中心:

[background setPosition:CGPointMake(screenSize.width/2,screenSize.height/2)];

我不知道如何將舊的3.5英寸,640 x 960分辨率的iPhone上的X = 144和Y = 330的按鈕改編為iPad或iPhone 5分辨率。

我願意使用更新版本的iOS,以使我的生活更輕松,但是由於我沒有使用任何Apple對象,因此我不知道這樣做是否可行。

也許這甚至是不可能的,因為對於iPhone和iPad版本,按鈕的大小會有所不同,但我想我會問。

是的,我通常也面臨相同的問題,但是如果它只是一個靜態對象放置,我將對每個對象使用relative coordinates instead of absolute ,然后使用屏幕尺寸正確放置它們,因此您可能希望使用類似以下的功能:

-(CGPoint) relativeToScreen:(CGPoint) p { 
    return ccp(screenSize.width * p.x, screenSize.height * p.y) 
}

其中0.0 <= px = <1.0和py相同

並且不要忘記您的anchorPoint ,因為節點位置也基於它

我希望您已經發現cocos2d已經代替您進行了圖像選擇,您只需要為圖像設置正確的后綴即可: -hd, -ipad, -ipadhd

對於iphone5分辨率,我將hud按鈕相對於屏幕尺寸放置。 與您為背景所做的非常相似。 例如,我想在左上角放置一個暫停按鈕,如下所示:

[pauseButton setPosition:CGPointMake(0.0f + 30.0f, screenSize.height - 50.0f)];

對於ipad來說,它確實很棘手。 我實現的懶惰方法是使用內容比例因子並放大所有內容,並具有“死角”邊框以補償ipad的屏幕比例。 這不是最好的方法,但是至少您可以將所有相同的資產重新用於ipad。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM