1. 程式人生 > >cocos2d-x中場景間的引數保持和傳遞(方法整理)

cocos2d-x中場景間的引數保持和傳遞(方法整理)

有時為了在場景間傳遞引數,象一些狀態資訊比如音樂的AudioID等,整理一下場景間引數傳遞的方式

方式一、使用全域性變數

利用全域性變數的方式對變數進行場景間的傳遞,簡單且粗暴。可以定義一個類專門來存放需要傳遞的引數,在各場景類中只需要include一下就可以直接對全域性變數進行訪問和賦值。

示例如下:

新建一個全域性變數的類:

標頭檔案GlobalVar.h:

//  GlobalVar.h
#ifndef __BabyLearnABC__GlobalVar__
#define __BabyLearnABC__GlobalVar__

#include <stdio.h>

extern int g_BgAudioID;
extern bool g_IfBgAudioReady;
extern bool g_IfReTurnToPortal;


#endif /* defined(__BabyLearnABC__GlobalVar__) */

 ccp檔案是對全域性變數進行初始化:

//  GlobalVar.cpp
#include "GlobalVar.h"

int g_BgAudioID=999999;
bool g_IfBgAudioReady=false;
bool g_IfReTurnToPortal=false;

在場景檔案中只需要#include GlobalVar.h就可以對全域性變數進行操作了。

 未完待續

相關推薦

cocos2d-x場景引數保持傳遞方法整理

有時為了在場景間傳遞引數,象一些狀態資訊比如音樂的AudioID等,整理一下場景間引數傳遞的方式 方式一、使用全域性變數 利用全域性變數的方式對變數進行場景間的傳遞,簡單且粗暴。可以定義一個類專門來存放需要傳遞的引數,在各場景類中只需要include一下就可以直接對全域性變

touch事件的touches、targetToucheschangedTouches詳解

touches: 當前螢幕上所有觸控點的列表; targetTouches: 當前物件上所有觸控點的列表; changedTouches: 涉及當前(引發)事件的觸控點的列表 通過一個例子來區分

js關於this的理解應用選項卡

this的定義:在JavaScript中this表示函式執行的時候自動生成的一個內部物件,只能在函式內部使用。 簡單例子 <script type="text/javascript"> alert(this); //window &

C++面向物件程式設計——類物件個人整理

物件: object 客觀世界中任何一個事物都可以看成一個物件,如自然物體(汽車,房子,班級...) 可以看到一個班級作為一個物件有兩個要素: 1、班級所屬系和專業,人數等靜態特徵(屬性); 2、班

Cocos2d-X的聲音音效

循環 volume tid ng- cocos2d pop sin 返回值 source 在玩遊戲時都會有各種遊戲音,如啟動遊戲時會有背景音,勝利或者失敗會有一些音效。在Cocos2d-X中能夠使用CocosDenshion實現各種聲音 在使用CocosDensh

Cocos2d-x 的Sleep USleep

                Cocos2d-x跨平臺,但是這個Sleep延時需要區分平臺 (不知道是不是我自己沒有找到),還是

Cocos2d-x2.x3.x的粒子系統的比較

/* // Cocos2d-x-2.x CCSize size = CCDirector::sharedDirector()->getWinSize(); ParticleSystemQuad* m_emitter = ParticleSystemQuad::createWit

cocos2d-x場景生命週期

在上一篇的文章已經通過程式碼分析了場景的跳轉是在主迴圈中setNextScene進行呼叫的,那麼在跳轉時便會開始呼叫生命週期函式。主要由以下四個函式組成 onEnter、onEnterTransitionDidFinish、onExitTransitionDidStart、

cocos2d-x 新增顯示文字的三種方式 LabelTTF 、LabelBMFont LabelAtlas

在 cocos2d-x 中有三個類可以在層或精靈中新增文字: LabelTTFLabelBMFontLabelAtlas LabelTTF 直接支援使用 TTF 字型檔,可以支援全部的中文,但是效率稍低。LabelBMFont 適合顯示特定的文字,通過預先將文字生成圖片,

Cocos2d-xVector&lt;T&gt;容器以及實例介紹

top 宋體 hello 操作符 模板類 log ins bsp main Vector<T> 是Cocos2d-x 3.x推出的列表容器,因此它所能容納的是Ref及子類所創建的對象指針,其中的T是模板,表示能夠放入到容器中的類型,在Cocos2d-x 3.x

cocos2d-x XML解析與數據存儲

lba false 網上 unsigned failed popu new ccm cfile 一不小心就玩了一周的遊戲了。哎。玩的時候時間過得總是這麽快。。。 於是今天決定看一下之前不怎麽非常熟悉的XML;(之前做遊戲時數據的儲存用到過XML,但這塊是還有一個同事在做

linux下開發,解決cocos2d-x編譯出現的一個小問題, undefined reference to symbol &#39;pthread_create@@GLIBC_2.2.5&#39;

water span x86 code bject data- ace 技術分享 inux 解決cocos2d-x中編譯出現的一個小問題 對於cocos2d-x 2.×中編譯中,若頭文件裏引入了#include "cocos-ext.h",在進行C++編譯的時候會遇到例

實例介紹Cocos2d-xBox2D物理引擎:碰撞檢測

函數實現 pda creates pty blank oid rtu and 重構 在Box2D中碰撞事件通過實現b2ContactListener類函數實現,b2ContactListener是Box2D提供的抽象類,它的抽象函數:virtual void BeginC

Cocos2d-XMenu的綜合運用

cond edi ros log 程序 cal coo 項目 綜合 今天將曾經寫的代碼和項目集成到了一個菜單中,能夠通過菜單切換到曾經做的項目 程序的project文件夾 主要代碼分析: LessonMenu.h中實現創建菜單,遍歷菜單通過菜單切換

實例介紹Cocos2d-xBox2D物理引擎:HelloBox2D

pre all align 討論 響應 算法 站點 virtual origin 我們通過一個實例介紹一下。在Cocos2d-x 3.x中使用Box2D物理引擎的開發過程,熟悉這些API的使用。這個實例執行後的場景如圖所看到的,當場景啟動後,玩家能夠觸摸點擊屏幕,每次觸

cocos2d-x win8下的環境配置建立項目

cts ear bat article VS2010 移植 reat 還得 cocos cocos2dx 跨平臺。可是看網上說開發最合適還是在vs2010中,基本是編完後再移植到安卓。 1.去官網下載源代碼2.2.3版本號的。 2.然後運行根文件夾下的build

Mac OS XLaunchpad的圖標添加刪除方法添加方法別試了,Linux很大區別

com nsh usr folders 單純 ron bsp blank 結構 說明:在Mac下的Launchpad圖標添加和刪除都與應用程序的app文件有關,如果單純的只想在Launchpad添加自定義的圖標,然後指定要某條命令運行時,建議不要這麽幹,Launchpad的

cocos2d-x 選單類

選單相關類包含:選單類和選單項類,選單類圖,從類圖可見Menu類繼承於Layer。   選單項類圖,從圖中可見所有的選單項都是從BaseMenuItem繼承而來的,BaseMenuItem是抽象類,具體使用時是使用它的6個子類。 說明如下:   MenuItem       最基本的選單

Python進階(二十四)-Python函式的引數定義可變引數

分享一下我的偶像大神的人工智慧教程!http://blog.csdn.net/jiangjunshow 也歡迎轉載我的文章,轉載請註明出處 https://blog.csdn.net/mm2zzyzzp Python進階(二十四)-Python中函式的引數定義

Cocos2d-x的4種佈局

Cocos2d-x中一共有4種佈局:ABSOLUTE(絕對佈局)、HORIZONTAL(水平佈局)、VERTICAL(垂直佈局)和RELATIVE(相對佈局)。 注意,只有在絕對佈局內部,元件使用setPosition()方法來指定其位置。另外三種佈局中的元件,setP