思路
1)首先是橫屏改成豎屏,由于android項(xiàng)目的screenOrientation默許為橫屏;
2)設(shè)置自適應(yīng)屏。
【2】:橫豎換屏
1、Cocos2d-x2.x版,打開(kāi)main.cpp文件
找到eglView->setFrameSize(320,480);,這里設(shè)置成你要的分辨率,用于開(kāi)發(fā)。
Cocos2d-x3.x版,則打開(kāi)AppDelegate.cpp文件,在applicationDidFinishLaunching()里設(shè)置分辨率:glView->setFrameSize(width,height);
2、生成android項(xiàng)目后修改AndroidManifest.xml文件
android:screenOrientation="landscape"橫屏顯示(默許)
android:screenOrientation="portrait"豎屏顯示
【3】:自適應(yīng)屏幕
這里算是個(gè)難點(diǎn),應(yīng)為android的開(kāi)源,機(jī)型千奇百怪,我們沒(méi)有辦法去適應(yīng)所有的屏幕,選擇的方案也很多。
1、針對(duì)每一個(gè)分辨率做1套方案(工程量太大);
2、.cocos2dx2.0.4以后提供的縮放方案(相對(duì)1更合適);
使用方法:打開(kāi)AppDelegate.cpp文件,找到:pDirector->setOpenGLView(CCEGLView::sharedOpenGLView()); 在下面添加:
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(480,800, kResolutionNoBorder);
setDesignResolutionSize(設(shè)計(jì)寬,設(shè)計(jì)高,縮放方式);
該函數(shù)會(huì)自動(dòng)按設(shè)計(jì)寬高和縮放方式適應(yīng)手機(jī)屏幕。
縮放方式:
kResolutionExactFit //自動(dòng)縮放寬高全部顯示(會(huì)變形)
kResolutionNoBorder //不留黑邊全屏展現(xiàn)(不變形,但是長(zhǎng)的那邊會(huì)被裁減)
kResolutionShowAll //全部展現(xiàn)不裁剪(可能會(huì)留黑邊)
【3】:適應(yīng)相對(duì)坐標(biāo)
我們坐標(biāo)需要依照屏幕的實(shí)際大小來(lái),所以也要使用相對(duì)坐標(biāo)。
CCDirector::sharedDirector()->getVisibleSize(); //可視區(qū)域大小(用戶手機(jī)分辨率)
CCDirector::sharedDirector()->getVisibleOrigin();//可視區(qū)域左下角坐標(biāo)