2013-07-24 65 views
0

我必須使用另一個開發人員製作的項目。該項目使用cocos2d v1.0.1。問題是它不支持Retina顯示。當我進入[director enableRetinaDisplay:YES];方法我看到它返回NO就行了:如何讓cocos2d v1.0.1支持視網膜?

if (! [openGLView_ respondsToSelector:@selector(setContentScaleFactor:)]) 
    return NO; 

所以,問題是 - 是否有可能以某種方式使這個版本的cocos2d支持視網膜的?

編輯:我在iOS 6.1模擬器中運行它。視網膜模擬器。

+0

嗯......它已經有一段時間了,但我很確定它確實。當你得到否,你在跑什麼?模擬器硬件是否正確設置? – YvesLeBorg

+0

模擬器ios 6.1。它是視網膜 –

+0

也是真正的iPhone設備iOS 6.視網膜。仍然一樣 –

回答

1

!是否定運算符。 !condition當且僅當condition爲假時才計算爲真。如果openGLView_來響應setContentScaleFactor:

return NO;線纔會執行。

UIView的contentScaleFactor屬性在iOS 4.0及更高版本中可用。檢查此屬性的設置者的可用性是檢查設備本身是否具有視網膜能力的一種方法。如果openGLView_確實不是setContentScaleFactor:作出響應,那麼這個設備沒有視網膜,這就是爲什麼CCDirector的enableRetinaDisplay返回NO。

如果您正在設備上運行您的代碼並且在此處取得「否」,那麼此設備沒有視網膜。如果您在模擬器上運行它,請確保它至少模擬iOS 4.0。要獲得視網膜設備模擬器,請在硬件 - >設備菜單中選擇任意視網膜配置。

編輯
openGLView_零?在Objective C中,你可以調用nil上的任何方法,它不會做任何事情並返回零(零,NULL,NO)。你必須創建一個EAGLView,並在之前將其設置爲CCDirector的OpenGL視圖,以啓用視網膜顯示。

+0

我在模擬器iOS 6.1 Retina –

+0

runnning它,只是在Retina iPhone ios 6上試過它。仍然沒有迴應這個選擇器 –

+0

請參閱編輯。 – Kreiri