【iOS-Cocos2d遊戲開發之八】開啟高清(960*640)模式問題與解答、圖片適配以及設定iphone橫豎屏

來源:互聯網
上載者:User

 最近書已經進入印刷了,預訂簽名的童鞋沒想到會上三位元,非常感謝大家一如既往的支援與鼓勵;     今天為大家介紹利用cocos2d開發中一些細節的三個問題;     首先介紹第一點:如何開啟高清模式,大家都知道iphone4的解析度是960*640,比之前的480*320正好大了一倍,那麼如果想測試在高清模式下的遊戲效果的話,那麼首先大家肯定知道先設定iOS模擬器為iphone(Retina)模式,但是僅僅設定這裡的童鞋肯定會發現問題,因為運行後會發現控制台列印出來的解析度仍然是480*320,這樣設定後只是讓模擬器體積放大一倍,但是解析度照舊沒變,其實這是因為cocos2d引擎的問題,你既然使用cocos2d引擎就應該知道當程式一運行後整個控制權都交給了cocos2d,那麼設定高清模式也應該從cocos2d中進行設定開啟;開啟方法很easy,       首先開啟你的   AppDelegate.m(這裡我用的cocos2d1-1.0.0版本預設建立cocos2d項目自動產生的類);OK,然後手動搜下如下代碼:  [cpp] view plaincopy[director enableRetinaDisplay:YES]   OK,搜到的代碼完整如下;   [cpp] view plaincopy//  // Enables High Res mode (Retina Display) on iPhone 4 and maintains low res on all other devices  //  if( ! [director enableRetinaDisplay:YES] )  //      CCLOG(@"Retina Display Not supported");    沒錯,這幾行被注釋掉了,OK,將注釋去掉,完成開啟高清模式;將iOS模擬器設定為iphone(Retina),然後再運行一下項目,解析度就成了960*640;      OK,緊接著要說圖片適配的問題:      做iOS的童鞋們在iOS4之前都應該沒有所謂適配的概念(拋開ipad不說),那麼如今iOS4出來了,iphone就有了解析度大小之分,那麼程式中所用的圖片也對應需要進行設計;其實apple早已為開發人員考慮到了,所以提供了很方便的方式:    假設你程式中使用了icon.png這張圖,那麼為了能適配所有的機型,那麼你需要在你的項目中為icon.png添加一個高清的版本,@2x,“icon@2x.png”,那麼在程式在iphone4中進行啟動並執行時候就會自動索引@2x的對應圖片,那麼對此Himi要提醒重要的一點:    以上@2x的方式是拋開cocos2d,單單說的iOS的系統API,那麼如果在cocos2d中使用的圖片也類似需要添加一個高清的版本,-hd,“icon-hd.png”;這裡一定不能搞錯;    最近申請IPD可謂困難重重,不過這幾天就應該申請下來了;這幾天裡也購買了一個圖片打包工具“TexturePacker”,做cocos2d的肯定不陌生,沒錯,此編輯器主要的作用就是將大部分圖片打包,省包大小、省運行記憶體、提高運行效率等優點,這裡不詳細介紹,大家可以自行百度下;那麼這裡說下"TexturePacker"有二個很重要的功能,其一是自動為你的圖片打包之餘添加一個@2x或者-hd版本的圖片包提供適配使用,其二是能將圖片打包成pvr、與pvr.ccz格式,相當好用,此工具這裡Himi推薦,$19+ 不算貴;(但是提醒大家購買的時候一定要使用$進行支付,因為人家不要RMB,害得好多次購買失敗,悲劇);這裡順便再推薦兩款編輯器,(Himi已購買正在使用中)1. ParticleDesigner(粒子特效編輯器)http://particledesigner.71squared.com/   2.physicsEditor(物理編輯器)http://www.physicseditor.de/features/    那麼閑話不多說了,關於推薦的編輯器大家應該很熟悉了,不熟悉的可以自定開啟串連,下面講解如何設定iphone運行程式橫豎屏問題;    cocos2d引擎中預設是橫屏,在1.0.0版本中架構有所變化,所以這裡我講解的設定方法是針對cocos2d -1.0.0版本而言的;    開啟  RootViewController.m ,然後所有搜尋如下代碼:[cpp] view plaincopyUIInterfaceOrientationIsLandscape    然後看到的完整代碼如下:[cpp] view plaincopy#elif GAME_AUTOROTATION == kGameAutorotationUIViewController      //      // EAGLView will be rotated by the UIViewController      //      // Sample: Autorotate only in landscpe mode      //      // return YES for the supported orientations            return ( UIInterfaceOrientationIsLandscape( interfaceOrientation ) );     將最後return的修改成如下代碼即可豎屏: [cpp] view plaincopyreturn ( UIInterfaceOrientationIsPortrait( interfaceOrientation ) );  
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.