程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++ 靜態static 變量在 cocos2d-x 裡面使用誤區

C++ 靜態static 變量在 cocos2d-x 裡面使用誤區

編輯:C++入門知識

C++ 靜態static 變量在 cocos2d-x 裡面使用誤區


void Cms::showMonster(CCArray*  monsterArray,int type)
{
	
	    static int posN=0;
	    for(int i=0;icount();i++)
	   {
	       auto  monsterSprite=(CCSprite*)monsterArray->objectAtIndex(i);
		   if(type==1)
	        {
		      monsterSprite->setPosition(ccp(640+posN*480,4*32-16));
		     }

		   if(type==2)
		   {
		       monsterSprite->setPosition(ccp(160+posN*640,192*2));
		    }
			  
		 
		   this->addChild(monsterSprite);
		   posN++;
	   }
	
	
}
在上述的這段代碼中,我使用了一個static 變量 posN, 在游戲重新開始時,發現怪物的位置不在原來的位置了。 這個問題是static靜態變量造成的,,我們知道靜態變量是在 內存空間的靜態 區域開辟的。。它有個特點,就是如果程序沒有結束,盡管是場景的跳轉,也無法銷毀這個變量。。所以當我們再次運行這段代碼是 靜態變量的計數不是從零開始,而是某個值;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved