1. 程式人生 > >【cocos2dx】Ref 到底是什麼鬼?

【cocos2dx】Ref 到底是什麼鬼?


cocos2dx中所有物件都繼承於Ref,或者繼承於 Ref和Clonable
Ref中就是維護了一個計數器,用於判斷該繼承於Ref的物件是否應該delete

class CC_DLL Ref
{
public:

	//計數加1
    void retain();
    
	//計數減1,如果為0,刪除物件
    void release();

	//新增到物件池中,別忘了PoolManager(物件池管理器) 管理AutoreleasePool(物件池),AutoreleasePool管理Ref
    Ref* autorelease();

	//得到當前的計數
    unsigned int getReferenceCount() const;
    
protected:
    
	//建立時計數設為1
    Ref();
    
public:
 
    virtual ~Ref();
    
protected:
    /// count of references
	//計數變數
    unsigned int _referenceCount;
    
	//友元類
    friend class AutoreleasePool;
    
#if CC_ENABLE_SCRIPT_BINDING
public:
    /// object id, ScriptSupport need public _ID
    unsigned int        _ID;
    /// Lua reference id
    int                 _luaID;
#endif
};

以上轉自:http://blog.csdn.net/w18767104183/article/details/25876481

相關推薦

cocos2dxRef 到底是什麼

cocos2dx中所有物件都繼承於Ref,或者繼承於 Ref和Clonable Ref中就是維護了一個計數器,用於判斷該繼承於Ref的物件是否應該delete class CC_DLL Ref { public: //計數加1 void retain();

cocos2dx 怎麼使用Tiled?

Tiled 地圖編輯器是一種用於通用目的的編輯器,可以用來建立2D和2.5D的地圖。特點是比較好用,風格類似mini版的Photoshop。它可以用於製作多種型別的遊戲引擎需要,而且支援使用外掛讀寫map、增加用於引擎的map格式。最重要的開源,且有中文版! 第一步:點新建 第二步:地圖

cocos2dx建立ios專案

1.開啟終端 2.將下載的3.6版本中的setup.py拖進終端,這時候會提醒做一些環境變數的配置資訊,如果不需要搭建安卓的開發環境這些東西就不需要配置 3.關閉一下重新開啟,進入到cocos2dx的版本目錄下,直接可以拖進去 cd 拖動版本資料夾 4.輸入cocos new 專案名

C# ref out

ref 通常我們向方法中傳遞的是值,方法獲得的是這些值的一個拷貝,然後使用這些拷貝,當方法執行完畢後,這些拷貝將被丟棄,而原來的值不會受到影響。 這種情況是通常的,當然還有另外一種情況,我們向方法傳遞引數的形式,引用(ref)和輸出(out)。 有時,我們需要改變原來變數中的值,這是我們可以向方

cocos2dx改安裝包名、app名、圖示、包名

CocosFramework-3.5 & Cocos-2.2.6 (注意不是cocos2d-x-2.2.6,也沒有eclipse) 修改安裝包名字 專案路徑\proj.android\build.xml <project name="安裝包名"default

cocos2dx卡牌記憶遊戲(2)——遊戲場景

首先,我們需要觸控事件,其次,我們要給遊戲計時,因為時間要重新整理,我們還需要update函式。計時功能我們寫了一個計時器的類,所以有個計時器成員。遊戲場景裡要裝有若干卡片,為了能夠獲取他們,我們需要一個成員容器來容納這些卡片。另外一些宣告看下述不完整程式碼。 using

Cocos2dx使用CCControlButton建立按鈕、按鈕點選事件,點選事件中的元件獲取,setPosition的座標問題

按鈕不僅在遊戲,在任何地方都是不可或缺卻又是最基本的東西。在遊戲引擎Cocos2dx中也不例外。 下面用一個例子說明Cocos2dx中如何使用按鈕,同時,如果在Cocos2dx中獲取層,也就是場景、舞臺中的元件。 如下圖,有一個按鈕Clickme,被點選時候與不被點選的時間

Cocos2dx利用導演類、場景類完成重新開始遊戲、暫停遊戲、關閉遊戲功能

重新開始遊戲、暫停遊戲、關閉遊戲是絕對是遊戲的基礎,雖然程式碼不多,不過這要利用到Cocos2dx導演類、場景類完成,事先如果不對其進行了解,絕對是很難做出來。 下面用一個小例子說明如何利用導演類、場景類完成重新開始遊戲、暫停遊戲、關閉遊戲功能, 這個被改寫的HelloW

Cocos2dx基本動作、動作序列與動作合併

之前幾篇關於Cocos2dx的文章都是從一些靜態的事物入手,比如控制元件、場景什麼的。其實,Cocos2dx中提供了大量動作實現方法,移動一個精靈並不是那麼費事,直接呼叫該方法即可,唯一的難點就是多個動作如何組合起來,下面用一個例子來說明這個問題。 做出如下的例項: 有一個

漫畫活見,明明刪除了資料,空間卻沒減少!

遷移資料常用 1、匯出檔案 - mysqldump 命令  ‍mysqldump 是 Mysql 自帶的邏輯備份工具。其備份原理是通過協議連線到 Mysql 資料庫,將需要備份的資料查詢出來轉換成對應的 inser

轉載警情通報為啥一定是"藍白字"?

使用 目的 htm 顏色 部門 wid 9.png 視覺 style   警情通報為啥一定是"藍底白字"?警方的回答亮了                 我們的警察叔叔好像真的非常偏愛藍色啊!           @kazamiken:視頻從業者表示這是有科學依據的,這是最

cocos2dx 3.x C++搭建protobuf環境

person ccf binding csdn bind taf protoc -cp strlen http://blog.csdn.net/ganpengjin1/article/details/50964961 Cocos2dx 裏面在網絡遊戲通信這一塊一般我們都會采

cocos2dx中Node類getParent和getChildByTag()學習體會

mil 提高 cos cleanup HR -c ldr 12px 而不是 參考http://cn.cocos2d-x.org/doc/cocos2d-x-3.0/

APIJSON,讓接口見去吧!

line 介紹 equal 去除 lin lse except 探討 bsp 我: APIJSON,讓接口和文檔見鬼去吧! https://github.com/TommyLemon/APIJSON 服務端: 什麽鬼? 客戶端: APIJSON是啥? 我: APIJSON

HNOI2006谷子的錢袋

utc include c代碼 結果 span pri 技術分享 問題 get 本題在洛谷上的鏈接:https://www.luogu.org/problemnew/solution/P2320 做法和二進制劃分很像,,,原來我的二進制劃分一直有點問題(之前我是

一分鐘告訴你究竟DevOps是什麼

歷史回顧 為了能夠更好的理解什麼是DevOps,我們很有必要對當時還只有程式設計師(此前還沒有派生出開發者,前臺工程師,後臺工程師之類)這個稱號存在的歷史進行一下回顧。 如程式設計之道中所言: 老一輩的程式設計師是神祕且深奧的。我們沒法揣摩他們的想法,我們所能做的只是描述一下他們

Xposed出現 java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation

Xposed出現 java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation的解決方法 第一次在Xposed的框架下編寫模組,在官方給的tutorial上就出現了問題,

Unity扒一扒Profiler中這幾個“佔坑

原文連結:http://blog.uwa4d.com/archives/presentandsync.html WaitForTargetFPS、Gfx.WaitForPresent 和 Graphics.PresentAndSync是我們經常會被問到的引數。想必正在讀此文的你也經常在Profi

關於cocos2dx+lua註冊事件函式詳解

轉載:http://www.taikr.com/article/1605 registerScriptTouchHandler 註冊觸屏事件registerScriptTapHandler註冊點選事件registerScriptHandler 註冊基本事件 包括 觸屏 層的進入 退出 事件registerS

轉載C#中out和ref之間的區別

首先:兩者都是按地址傳遞的,使用後都將改變原來引數的數值。 其次:ref可以把引數的數值傳遞進函式,但是out是要把引數清空,就是說你無法把一個數值從out傳遞進去的,out進去後,引數的數值為空,所以你必須初始化一次。這個就是兩個的區別,或者說就像有的網友說的,ref是有進有出,out是隻出不進。