Cocos2d x場景轉換後區域性變數值異常問題。

2021-07-06 09:42:56 字數 812 閱讀 1942

今天在按鈕教程寫一段程式後,發現在新增新場景前正常的區域性變數,在新增了場景跳轉後,變數的值工作不正常了。後來將他們轉換為全域性變數,正常工作了。

auto dot = drawnode::create();

dot->setanchorpoint(vec2(1,1));

dot->setposition(visiblesize/2);

addchild(dot);

schedule([dot,this](float f)

if(_blue <= 1)

_blue+=temp;

dot->clear();

dot->drawdot(vec2(0,0), _blue, color4f(1, 1, _blue, 1));

},0.1,"test");

這段中的temp和_blue原本是在init中的區域性變數,在從場景a中跳轉到本場景後,temp和_blue一直保持為1不變。後來除錯發現,在進入加運算前_blue和temp的值是乙個非常非常小的浮點數。此時我感覺到temp和_blue是不是被程式自身做了什麼處理或者優化?而忽略掉了他們,改為在每次都重新去生成建立了。

後來按照這種思路 ,將他們放到成員變數中。

protected:

float _blue = 0.0f;

float temp = 1.0f;

然後將schedule([dot,&_blue,&temp  直接修改為 this。程式工作正常了。這個dot可以按照預想的效果表現了,temp與_blue不在被重新初始化。

COCOS2DX座標轉換

遊戲中經常會用到一些變換 遊戲中 和角色在乙個layer上,為了效率,會考慮將bullet,effect和 physicsparticle分別放到不用的層上,對應的層上使用batchnode來提高效率 和physicsparticlelauncher 粒子發射器 繫結,發射的時候,會向physics...

cocos2d x座標轉換

cocos2d x中,node類有六個座標轉換函式,分別是 converttoworldspace 把基於當前節點的本地座標系下的座標轉換到世界座標系中。converttonodespace 把世界座標轉換到當前節點的本地座標系中。例如,在飛機大戰專案中,寵物是玩家的子節點,玩家是遊戲場景的子節點,...

Cocos2d x之場景切換

在很多rpg遊戲中大部分存在多個場景,如開始的歡迎介面 選單介面 戰鬥介面 場景切換只需要呼叫ccdirector shareddirector replacescene s s為新的場景,這句 的是含意,是用新的場景s去替換掉舊的場景,但是這樣的場景替換,來得太突然,給使用者的感覺不太好,我們需要...