1. 程式人生 > >cocos2dx進階學習之螢幕適配

cocos2dx進階學習之螢幕適配

背景

在學習cocos2dx時,我們在main函式中發現一句程式碼,

#include "main.h"
#include "AppDelegate.h"
#include "CCEGLView.h"

USING_NS_CC;

int APIENTRY _tWinMain(HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                       LPTSTR    lpCmdLine,
                       int       nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);

    // create the application instance
    AppDelegate app;
    CCEGLView* eglView = CCEGLView::sharedOpenGLView();
    eglView->setViewName("CrazyMario");
    eglView->setFrameSize(480, 320);
    return CCApplication::sharedApplication()->run();
}
那就是eglView->setFrameSize(480,320),這句程式碼設定了視窗的大小,一般說來手機遊戲需要全屏顯示,所以對於不同解析度的手機,setFrameSize要求不一樣的。這樣是不是很崩潰?因為我們程式碼裡很多地方可能也要改,圖片大小可能也要改,那怎麼辦呢?

其實cocos2dx已經為我們做好了這一切

結局方案

這個方案就是呼叫eglView->setDesignResolutionSize(480, 320, kResolutionShowAll);來告訴cocos2dx,我的程式是按照480,320來設計的,那麼setFrameSize如果不是480,320那麼cocos2dx會按照比例給我們做適配,不用我們做別的事情。

在超級馬里奧這個遊戲裡,在AppDelegate中已經呼叫了setDesignResolutionSize函式設定設計大小為480,320

那麼在setFrameSize不同的情況下,也不會引起圖片比例不合適的情況,只是視窗大小會發生變化而已

在480*320的情況下

相關推薦

cocos2dx學習螢幕

背景在學習cocos2dx時,我們在main函式中發現一句程式碼,#include "main.h" #include "AppDelegate.h" #include "CCEGLView.h" USING_NS_CC; int APIENTRY _tWinMain(H

cocos2dx學習CCNode

繼承關係CCNode  -> CCObjectCCNode在cocos2dx中抽象舞臺物件,需要渲染的物件都是從CCNode派生,包括CCScene,CCLayer,CCSprite等等CCNode提供包容關係管理成員函式virtual bool init();stat

cocos2dx學習CCApplication

繼承關係CCApplication-> CCApplicationProtocol類主要成員變數static CCApplication * sm_pSharedApplication;靜態成員變數,儲存唯一的CCApplication例項的地址。在CCApplicat

Oracle學習創建數據庫

oracle 用戶 表空間 實例名 寫在前面: Oracle在創建用戶的時候默認使用的表空間為User,我們一般不建議這樣做,因為默認表空間的大小是固定的,如果我們創建的所有用戶都使用默認的表空間會導致表空間空間不足,會導致指向User表空間的所有用戶無法正常使用,聽起來是多麽可怕的一件

學習Oracle增強

一、增刪改資料 1、向emp表中插入一條記錄 ① (方式一:按表預設結構順序)insert into 表名 values ...語法 insert into emp values(1111,'JACK','IT',7788,sysdate,1000,100,40); ② (方式二:按

學習Linux作業系統

一、Linux作業系統概述 1、常見作業系統 ① 服務端作業系統:linux、unix、windows server ② 單機作業系統:windows(dos 、ucdos、win95、win98、win2000、xp、vista、win7、win8)、MAC 、linux(ubun

學習Oracle基礎

一、Oracle概述 1、Oracle資料庫伺服器由二部分組成 ① 例項:理解為物件(看不見的) ② 資料庫:理解為類(看得見的),比如存放在E:\app\Administrator\oradata\orcl\*.DBF 2、Oracle伺服器與orcl資料庫的關係 ① 一個Or

Android APP全方位效能調優螢幕終結者

優點 1. 無侵入性 首先科普下 Android 中的一個長度單位:pt,它表示一個點,是螢幕的物理尺寸,其大小為 1 英寸的 1 / 72,也就是 72pt 等於 1 英寸(其實 Android 中還有比較少見的 in 和 mm 的長度單位)。而我本次的適配使用的單位恰好是 pt,所以對你

python 學習1

python 安裝 下載Python-3.4.0.tgz,解壓: tar -zxvf  Python-3.4.0.tgz cd  Python-3.4.0 ./configure --prefix=/自己的安裝目錄 python setup.pyinstall --pref

android螢幕(三)實踐dimens.xml尺寸不同的平板

android3.2以後,為了提供更精準的對佈局檔案的控制,可以通過為資原始檔(res目錄下檔案)增加字尾來指定該資料夾裡的xml佈局檔案或color.xml,string.xml是為哪種大小的螢幕使用。 第一種字尾:sw<N>dp,如layout-sw600

Android螢幕

        網上螢幕適配的方式有很多,比如按百分比的、按解析度的,這裡我是按最小寬度去適配,也是Google建議的方式。         1.首先下載螢幕適配外掛ScreenMatch。         AS→File→Settings→plugins→SreenMa

imooc學習筆記--螢幕

慕課網視訊地址 個人筆記,個人理解 , 如有錯誤歡迎指正 螢幕尺寸 螢幕對角線的長度,單位英寸(1英寸=2.45釐米) 解析度: 橫縱向上的畫素點數。單位px,1px=1個畫素點。 縱向畫素

學習JavaScript的BOM程式設計和DOM程式設計

一、BOM(Browser Object Model):瀏覽器物件模型 1、瀏覽器物件模型:把瀏覽器 的各個部分都是用了一個物件進行描述,如果我們要 操作瀏覽器的一些屬性,我就可以通過瀏覽器物件模型的物件進行操作。 2、BOM物件 物件 解釋 w

React Native入門(十一)螢幕

準備 首先,我們在官方文件寬度和高度一節可以知道,RN中單位是dp,這個跟Android中的單位是一致的! 官網中: A dp is equal to one physical pixel on a screen with a density of 1

Android筆記螢幕全攻略

Android螢幕適配出現的原因 在我們學習如何進行螢幕適配之前,我們需要先了解下為什麼Android需要進行螢幕適配。 由於Android系統的開放性,任何使用者、開發者、OEM廠商、運營商都可以對Android進行定製,修改成他們想要的樣子。

Android知識梳理螢幕全攻略

       引言: 我相信Android碎片化問題是讓所有的Android開發者都比較頭疼的問題.尤其是螢幕適配這一塊兒.想要自己的app在不同的裝置上面都有一個比較好的顯示效果.就必須做好相應的螢幕適配.本文是結合網上的相關知識總結、官方文件結合自己的一些理解來進行闡述

Java學習集合與泛型(1)

[TOC](目錄) ## 1.集合 #### 1.1.集合是什麼 之前的基礎篇中我們知道了一種資料結構:陣列,可以存放很多資料。但是資料有很大的侷限性: - 支援的資料型別單一 - 宣告時需要指定大小,大小固定,可擴充套件性差 - 連續的儲存單元,對記憶體要求苛刻 那麼是否有其他的資料結構或者資料型

Spring Boot Web 學習 - 單元測試

自動生成 添加 學習 one 類文件 dma AC mock ring 可在類文件中,右鍵->GO TO->Test 自動生成測試文件 1.添加測試註解 簡單方法測試 @RunWith(SpringRunner.class)@SpringBootTes

Android 螢幕 dimens

相信做手機端的 App 的小夥伴,只要是產品稍微大一點,就會面臨螢幕適配的問題,對於適配這個問題,網上眾說紛紜,以前雖然有零零散散的看過,但是沒有實踐過,也是在最近遇到這個需求的情況下才研究了一下,現在做個記錄。 1 參考連結 http://blog.csdn.net/qq_341

Cordova 小米8留海螢幕沉狀態列與 螢幕手機 從開始到結束 總結

 之前專案中打包的apk安裝到全面屏手機後,發現在應用下方出現了一大塊黑色區域(如:小米8),只有在系統中設定適配全面屏才能讓應用在全面屏手機中顯示正常,但是這種方式並不友好,而且有些手機廠商可能也沒有這種設定,所以還是需要我們再打包的時候就做一些相應的處理。 &l