今天在按鈕教程寫一段程式後,發現在新增新場景前正常的區域性變數,在新增了場景跳轉後,變數的值工作不正常了。後來將他們轉換為全域性變數,正常工作了。
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去替換掉舊的場景,但是這樣的場景替換,來得太突然,給使用者的感覺不太好,我們需要...