cocos2d-x
遊戲開發
程式啟動執行流程:
系統設定
視窗解析度
//設定模擬器窗體大小
glview->setframesize(360, 640);
設計解析度(可視區域)
中也有個設定設計解析度的函式。該函式是設定了我們遊戲設計時候的解析度,也就是可視區域的大小,也就是說設計者初衷的遊戲可視區域的解析度螢幕大小。
但是對於每個使用者來說,他們使用的裝置不一定是(480/320)的,比如手機有大有小。
而後面的resolutionpolicy::show_all,意思是按照原比例(480/320)進行放縮以適配實際螢幕大小。
//設定解析度
glview->setdesignresolutionsize(720, 1280,resolutionpolicy::show_all);
五種適配模式
setframesize()是設定了視窗大小(即螢幕的實際大小),而這個引數只是為了我們開發時作為模擬參照,在實際手機上執行時,手機的螢幕大小是我們無法設定的。
而螢幕適配的關鍵在於setdesignresolutionsize(),通過它來設定可視區域的解析度以及螢幕適配模式。該函式的前兩個引數為解析度(即螢幕長寬比例),而最後乙個引數則是適配的模式。
適配模式
(長寬中小的鋪滿螢幕,大的超出螢幕)
長寬中大的鋪滿螢幕,小的留有黑邊)
計算方法
假設:螢幕解析度(fwidth,fheight) ; 設計解析度(dwidth,dheight)。
放縮因子:k1 = fwidth/dwidth ; k2 = fheight/dheight。
則適配後的解析度大小如下:
背景圖自適應:
注釋掉以下**:
// 設定設計解決方案
glview->setdesignresolutionsize(designresolutionsize.width,designresolutionsize.height,resolutionpolicy::no_border);
autoframesize=glview->getframesize();
// 如果框架的高度大於中等大小的高度。
if(framesize.height> mediumresolutionsize.height)
// 如果框架的高度大於小尺寸的高度。
elseif(framesize.height> smallresolutionsize.height)
// 如果框架的高度小於中等大小的高度。
else
//設定模擬器窗體大小
glview->setframesize(360, 640);
//設定解析度
glview->setdesignresolutionsize(720, 1280,resolutionpolicy::show_all);
在startscene.cpp中設定背景圖
//函式作用是設定錨點,也就是二位座標系的起點
//錨點是按照百分比設定的,0—1,0.5,0.5則表示中心點
sprite->setanchorpoint(point(0.5, 0.5));
sprite->setposition(vec2(visiblesize.width/ 2 + origin.x,visiblesize.height/ 2 +origin.y));
//新增精靈到窗體
this->addchild(sprite, 0);
執行結果:
cocos2d x遊戲開發之動畫
mygame.h中宣告動畫函式 class mygame public cocos2d layer bool mygame init return true 注意 若按鈕事件中包含切換場景事件,則需要在按鈕事件中新增schedule函式,否則切換場景後,動畫還來不及生成,再次點選按鈕出發按鈕事件,則...
cocos2d x 遊戲優化方案
優化的方案 引擎底層優化 紋理優化 渲染優化 資源快取 記憶體優化.紋理優化 cocos2d x 底層是opengl es實現的。對於圖案片載入的記憶體是2的冪次方。使用的是100 128 會被轉為128 128。如此浪費一定的空間。色深優化 png a8r8g8b8 a1r5g5b5 argb44...
cocos2dx遊戲優化方向
優化方向 一 引擎底層優化 cocos2dx版本選擇 二 紋理優化 png格式,乙個畫素4位元組 1.二的冪次方拼圖 由於底層的opengl是按二的冪次方申請記憶體的,然後再吧這個存在記憶體中,如果 乙個480 480 4的要存入記憶體,那麼它的實際占用記憶體是512 512 4。所以為節約記憶體,...