1. 程式人生 > >Cocos2D-X學習3:建立一個新的場景

Cocos2D-X學習3:建立一個新的場景

1、建立cocos專案

首先使用cocos-console建立一個專案工程,在命令列視窗下輸入cocos new  -p CocosProject01 -l cpp -d D:\cocos2d-x-3.3\test CocosProject01,建立一個名為CocosProject01的專案並使用VS2012開啟。

2、新增場景類

在專案處右鍵選擇增加-類,建立一個名為MyScene的新類,如下圖。


注意,雖然MyScene命名為scene,稱為場景類,但是它繼承自Layer,而不是繼承自Scene,因此它是一個層而不是一個場景。

3、編輯場景類

參考HelloWoldScene.h編輯MyScene.h的內容,編輯完後的內容如下:

#include "cocos2d.h"
class MyScene : public cocos2d::Layer
{
public:
    static cocos2d::Scene* createScene(); // 定義靜態函式,用於獲取場景物件
    virtual bool init();                  // 初始化場景      
    CREATE_FUNC(MyWorld);                 // 這裡使用了 CREATE_FUNC 巨集
};

在MyScenecpp中實現MyScene.h中定義的方法,程式碼如下:

#include "MyScene.h"
USING_NS_CC;

Scene* MyWorld::createScene() //功能建立並返回一個場景物件
{
	auto scene = Scene::create();   //建立一個場景物件
	auto layer = MyWorld::create(); //建立Myscene物件
	scene->addChild(layer);         //將layer加入到場景scene中去
	return scene;                   //返回建立好的場景物件
}
bool MyWorld::init()
{
	if(!Layer::init())
	{
		return false;
	}
	//在這裡向場景中新增內容
	return true;
}
關鍵字auto,編碼器將會在編譯時自動對變數型別進行識別。

執行後的場景如下,與初始的場景相同,這是由於螢幕的內容在AppDelegate.cpp中的定義並沒有更改。


4、在AppDelegate中更改螢幕顯示內容

注意要在AppDelegat.cpp中匯入MyScene.h標頭檔案。

在AppDelegate.cpp中找到applicationDidFinishLaunching方法,在其最末尾處有如下程式碼:

// create a scene. it's an autorelease object
    auto scene = HelloWorld::createScene();
可以看到在這裡建立場景scene使用的是HelloWord類,現在需要將它改為自己定義的類MyScene:
// create a scene. it's an autorelease object
    auto scene = MyWorld::createScene();
這樣就將螢幕顯示的內容改為了MyWorld類,由於MyScene.cpp中MyWorld::init沒有內容,因此執行後程序為空白圖如下:


AppDelegate::applicationDidFinishLaunching下有視窗屬性和幀率控制相關的函式:

glview = GLViewImpl::create("My Game");           //設定視窗標題
glview -> setFrameSize(640,360);                  //設定視窗解析度
director->setDisplayStats(true);                  //顯示幀率fps資訊
director->setAnimationInterval(1.0 / 60);         //設定螢幕fps,預設為每秒60次

相關推薦

Cocos2D-X學習3建立一個場景

1、建立cocos專案 首先使用cocos-console建立一個專案工程,在命令列視窗下輸入cocos new  -p CocosProject01 -l cpp -d D:\cocos2d-x-3

Flask學習筆記建立一個簡單的Flask應用

1. 做好準備工作進入專案主目錄啟用虛擬環境2. 建立app包:在flask中,含有名為 __init__.py 檔案的子目錄被視為包,可以被匯入。在命令列輸入以下命令,建立一個名為app的目錄:(venv) $ mkdir app在app目錄中建立一個名為__init__.

我能用Windows PowerShell做什麼建立一個的 Windows PowerShell 別名

注:本篇文章,未在聯絡作者以及得到許可的情況下, 禁止以任何形式進行轉載。 建立一個新的 Windows PowerShell 別名  你說你像Windows PowerShell,但你有些有關記住cmdlet名稱的問題?好,那麼為什麼不給那些cmdlets建立一個別名呢?

Cocos2d-x學習筆記(九)例項——場景自動切換

【關於場景自動切換】 如何實現場景的自動切換?我嘗試過很多種方法,比如在AppDelegate.cpp檔案中的applicationDidFinishLaunching()函式中, 想在pDirector->runWithScene(pLandlords);中直接使用replace

Cocos2d-x學習筆記(五)例項——場景切換

【1】首先設計場景需要許多的圖片資源,往resource資料夾裡新增資原始檔: 【2】新建Cocos2d-x工程時預設的是HelloWord場景,在此只做先顯示佈景層中相關精靈圖片以及選單圖片的修改: 【3】在剛剛的init()函式中有兩個選單回撥函式,主要

Cocos2d-x 3.x學習筆記猩先生帶你打飛機(四)遊戲場景:背景與我機的建立、敵機的建立、物理世界構建

一、背景與我機的建立 現在我們要建立新的一個場景了。選擇開始遊戲即從選單場景跳到遊戲場景。現在先完善HelloWorldScene的程式碼 找到我們開始遊戲的回撥方法,新增程式碼: //開始遊戲 void HelloWorld::menuStartCa

cocos2d-x 3.2 建立一個無限滾動的背景

標頭檔案中增加: void backgroundMove(float dt); cocos2d::Sprite* background1; cocos2d::Sprite* background2; init函式中增加: background1 = Sprite::crea

cocos2d-x學習筆記(十二)cocos2dx 3.10添加lua LuaFileSystem庫遍歷文件

luafilesystem庫;lfs;遍歷文件在lua中遍歷目錄文件需要用到lfs庫,而所用的cocos2dx 3.10沒用lfs,需要自己添加1、下載lfs.c和lfs.hhttps://github.com/keplerproject/luafilesystem 從github獲取源碼,在src目錄拷貝l

Godot Engine 學習筆記 建立一個專案

建立一個新專案 新建專案 編輯器 新建專案 開啟Godot會出現專案管理器 點選"新建"按鈕,會彈出一個新建視窗,輸入專案名和專案路徑即可。 編輯器 新建完專案,Godot了就會開啟編輯器。 現在打算在場景上顯

Cocos2d-x學習筆記(四)淺析動作類CCAction(3)

【1】動作管理類CCActionManager: 動作管理類CCActionManager是一個管理所有動作的單例,可以對動作進行一系列的操作,如:新增動作、刪除動作、暫停動作、重啟動作,這個單例可以通過CCDirector::sharedDirector()->getActionMa

第一步cocos2d-x-2.1.4建立專案

準備工具: cocos2d-x-2.1.4 python 將cocos2d-x-2.1.4解壓到D盤或其他盤 安裝python之後,進入tools\project-creator\資料夾 新建一個.txt檔案,輸入 python create_proj

最簡單的Docker映象教程從頭基於空映象scratch建立一個的Docker映象

我們在使用Dockerfile構建docker映象時,一種方式是使用官方預先配置好的容器映象。優點是我們不用從頭開始構建,節省了很多工作量,但付出的代價是需要下載很大的映象包。 比如我機器上docker images返回的這些基於nginx的映象,每個都超過了100MB,而一個簡單的

TF學習筆記3建立一個監聽者)

在之前的教程中,我們建立了一個tf釋出者,用於將龜的姿勢釋出到tf。 在本教程中,我們將建立一個tf監聽器以開始使用tf。 1 如何建立一個tf監聽者 我們先建立原始檔。 轉到我們在上一個教程中建立的包: $ roscd learning_tf 1.1 程式 啟動您喜歡的

例題建立一個物件陣列,內放5個學生的資料(學號、成績),用指標指向陣列首元素,輸出第1,3,5個學生的資料。【面向物件設計】

題目: 建立一個物件陣列,內放5個學生的資料(學號、成績),用指標指向陣列首元素,輸出第1,3,5個學生的資料。 解答:  程式程式碼如下: #include <iostream>

STM32學習 3GPIO管腳配置與第一個STM32實驗LED燈閃爍

STM32學習 3:GPIO管腳配置與第一個STM32實驗:LED燈閃爍 1,GPIO管腳簡介與配置 1.1GPIO框圖 1.2GPIO不同模式 1.3 GPIO暫存器 1.4 GPIO庫函式配置 2,LED燈閃爍實

Spark2.x學習筆記3、 Spark核心概念RDD

Spark學習筆記:3、Spark核心概念RDD 3.1 RDD概念 彈性分散式資料集(Resilient Distributed Datasets,RDD) ,可以分三個層次來理解: 資料集:故名思議,RDD 是資料集合的抽象,是複雜物理介質上存在資料的一種邏輯檢視。

ZeroMQ介面函式之 zmq_ctx_new – 建立一個的ZMQ 環境上下文

zmq_ctx_new(3)               ØMQ Manual - ØMQ/3.2.5 Name zmq_ctx_new – 建立一個新的ZMQ 環境上下文 Synopsis void *zmq_ctx_new (); Description zmq_ctx_new()

openstacknova中“從映象啟動(建立一個卷)”建立虛擬機器的流程

原文網址:http://blog.csdn.net/xiangpingli/article/details/47912777 nova還有一種啟動方式:“從映象啟動(建立一個新卷)” 這個流程中,nova會在_prep_block_device中的attach_blo

xlib/x11建立一個監測鍵盤事件的視窗-3-fullscreen-windowed

傳送門:上一篇https://blog.csdn.net/Rong_Toa/article/details/85725642 首先給出二者區別 /** * Phase 03 - Switch to windowed fullscreen when clicking F11. *