cocos2d-x 的屏幕適配問題困擾了我很久,差不多有一個星期吧。通過親身實踐才解決了問題,分享一下解決辦法,供大家借鑒學習。
其實解決辦法很簡單,把下面代碼注釋掉就好了
1 // if (frameSize.height > mediumResolutionSize.height) 2 // { 3 // director->setContentScaleFactor(MIN(largeResolutionSize.height/designResolutionSize.height, largeResolutionSize.width/designResolutionSize.width)); 4 // } 5 // // if the frame's height is larger than the height of small size. 6 // else if (frameSize.height > smallResolutionSize.height) 7 // { 8 // director->setContentScaleFactor(MIN(mediumResolutionSize.height/designResolutionSize.height, mediumResolutionSize.width/designResolutionSize.width)); 9 //} 10 // // if the frame's height is smaller than the height of medium size. 11 // else 12 // { 13 // director->setContentScaleFactor(MIN(smallResolutionSize.height/designResolutionSize.height, smallResolutionSize.width/designResolutionSize.width)); 14 //}
是的,這是cocos2d-x 給我們生成的代碼,很多資料都說使用
glview->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, ResolutionPolicy::NO_BORDER);
然而,當沒有注釋第一部分的代碼時,用了setDesignResolutionSize()也不能完成屏幕適配,只是比不使用是更大了而已。
有的資料還說要將上面第一部分和第二部分代碼結合使用,但是我用了沒效果,反倒是注釋了就可以了。
反正,屏幕適配,大概就這兩部分代碼,也就三種可能性(使用第一部分代碼,使用第二部分代碼,兩部分代碼一起使用,別問我為什麼不提兩部分代碼都不使用這種情況),我也不是說我的辦法就是對的,其他人的方法就是錯的,developers試試這三種情況咯,應該總有一款適合你的。
本人接觸cocos2d-x 時間不長,不足之處,請各位大神指出