cocod2d 相容iphone ipad 問題

2021-12-29 22:09:56 字數 1940 閱讀 2067

在ios開發中要相容iphone/ipad,把devices 設定成universal就能自動適配iphone/ipad,這個比較簡單,難點是素材的適配問題。素材適配有兩個問題:素材位置、素材大小

1、素材位置問題

關於位置有兩種方式:絕對位置和相對位置。如下所示:

絕對位置:ccp(48,32);

相對位置:ccp(size.width*10%,size.height*10%);

比如說當前裝置大小為480*320,那麼這兩個位置相等,如果裝置大小為960*640,那麼就對位置的素材就會發生偏移,而相對位置就等於ccp(96,64),不管裝置大小怎麼變它始終在螢幕的(10%,10%)的位置。顯然要適配不同的裝置我們就需要使用相對位置。

2、素材的大小問題

關於素材的大小問題有兩種解決方式:一種是多套素材分別適應不同的裝置,一種是一套素材適應多個裝置

1、多套素材分別適應不同的裝置

在我們的ios開發中根據不同的裝置型別,會載入不同字尾名稱的素材,預設情況下:iphone/iphone retina(高畫質模式)、ipad/ipad ratina,它們對應的素材名稱分別為:name/name-hd、name-ipad/name-ipadhd

這是預設情況下的,我們也可以自己設定其字尾名稱,新建乙個專案,開啟appdelegate.m找到如下**:

ccfileutils *sharedfileutils = [ccfileutils sharedfileutils];

[sharedfileutils setenablefallbacksuffixes:no];// default: no. no fallback suffixes are going to be used

[sharedfileutils setiphoneretinadisplaysuffix:@"-hd"];// default on iphone retinadisplay is "-hd"

[sharedfileutils setipadsuffix:@"-ipad"];// default on ipad is "ipad"

[sharedfileutils setipadretinadisplaysuffix:@"-ipadhd"];// default on ipad retinadisplay is "-ipadhd"

在這你可以設定相應素材的字尾名稱。

2、一套素材適應多個裝置

在某些情況下我們需要使用一套素材來適配多個裝置,那麼我們就需要對進行成比例放縮,來適應不同的裝置:

cgsize size;

size.width = 480;

size.height = 320;

cgsize newsize = [[ccdirector shareddirector] winsize];

float sp_scalex = newsize.width / size.width;

float sp_scaley = newsize.height / size.height;

ccsprite* sprite = [ccsprite spritewithfile:@"icon.png"];

sprite.scalex = sp_scalex;

sprite.scaley = sp_scaley;

上面的**首先設定了原比例大小為size,然後獲取當前螢幕大小newsize,然後分別計算出x、y的比例sp_scalex、sp_scaley,最後賦值給素材的scalex、scaley。

下面說一下如何獲取裝置型別:

我們使用巨集ui_user_inte***ce_idiom()來獲取裝置型別,如下:

if(ui_user_inte***ce_idiom() == uiuserinte***ceidiomphone)

//iphone

if(ui_user_inte***ce_idiom() == uiuserinte***ceidiompad)

//ipad

iphone開發之Cocos 2D簡介

寫這個東西其實不是介紹如何用cocos 2d開發,只是介紹性的入門知識,這個東西不是一篇文章就可以搞清楚,都是需要自己去不懈的努力學習。相關的網頁 是乙個開源框架,利用它可以非常容易的在 iphone 上開發2d 遊戲。它提供了物理,精靈 sprites 時差卷軸 parallax scrollin...

iphone開發之Cocos 2D簡介

寫這個東西其實不是介紹如何用cocos 2d開發,只是介紹性的入門知識,這個東西不是一篇文章就可以搞清楚,都是需要自己去不懈的努力學習。相關的網頁 是乙個開源框架,利用它可以非常容易的在 iphone 上開發2d 遊戲。它提供了物理,精靈 sprites 時差卷軸 parallax scrollin...

使用cocos2d開發iphone遊戲入門概念

簡介 cocos2d iphone是乙個開源框架,利用它可以非常容易的在iphone上開發2d遊戲。它提供了物理,精靈 sprites 時差卷軸 parallax scrolling 支援iphone touch和accelerator等很多功能。一點說明 這一系列文章,翻譯自cocos2d的wik...