cocosd xna Tweejump學習筆記3

2022-03-19 22:08:45 字數 3216 閱讀 7433

ccspritebatchnode spritemanager = ccspritebatchnode.batchnodewithfile("images/sprites", 10);

addchild(spritemanager, -1, (int)tags.kspritemanager);

ccsprite background = ccsprite.spritewithtexture(spritemanager.texture, new ccrect(0, 0, 320, 480));

spritemanager.addchild(background);

background.position = new ccpoint(240, 400);

ccsprite logo = ccsprite.spritewithfile(@"images\logo");

logo.position = new ccpoint(240, 650);

addchild(logo);

兩種例項化ccsprite物件方法的區別:

1.是建立在spritemanager中所載入的的基礎上(該里有多個元素見tweejump的image裡的sprites)然後用

spritewithtexture(spritemanager.texture, new ccrect(0, 0, 320, 480));第二個引數進行具體位置的定位。從而繫結資料。

2.直接繫結到具體某個資料夾下的位置。

一般例項化ccsprite(該物件只有乙個,且位置不變,如background、logo等)的步驟,先繫結資源,然後具體的position,最後addchild();

如果物件 有多個,且位置不固定,如bunus等。先例項化弄個迴圈,把物件的個數作為條件完成ccsprites的構建( initplatforms())。然後再迴圈的過程中具體化(initplatform();   )每個物件的資料(spritemanager-getchildbytag...  、  ccsprite x=....  、  spritemanager.addchild(先, 3, xx);)。接著統一構建所有ccsprites的初始位置(不一定是位置)資料( resetplatforms())。在構建的過程中具體化某個ccsprite(resetplatform())。如下列**:

//新增遊戲中的平台        

void initplatforms()        

currentplatformtag = (int)tags.kplatformsstarttag;            

while (currentplatformtag < (int)tags.kplatformsstarttag + knumplatforms)            

this.initplatform();                

currentplatformtag++;            

this.resetplatforms();        

//初始化遊戲中的平台資料        

void initplatform()        

ccrect rect = new ccrect();     

switch (random.next() % 2)            

case 0: rect = new ccrect(608, 64, 102, 36); break;                

case 1: rect = new ccrect(608, 128, 90, 32); break;            

ccspritebatchnode spritemanager = (ccspritebatchnode)getchildbytag((int)tags.kspritemanager);            

ccsprite platform = ccsprite.spritewithtexture(spritemanager.texture, rect);            

scale(platform);           

spritemanager.addchild(platform, 3, currentplatformtag);        

//3.初始化平台的位置        

void resetplatforms()        

//先統一設定所有平台的初始位置資料            

currentplatformy = -1;         

currentplatformtag = (int)tags.kplatformsstarttag;      

currentmaxplatformstep = 60f;            

currentbonusplatformindex = 0;            

currentbonustype = 0;            

platformcount = 0;

while (currentplatformtag < (int)tags.kplatformsstarttag + knumplatforms)            

//逐個安排每個平台的位置               

this.resetplatform();                

currentplatformtag++;           

//4.重新設定每個平台的位置        

void resetplatform()        

if (currentplatformy < 0)            

currentplatformy = 50f;            

else            

currentplatformy += (random.next() % (int)(currentmaxplatformstep - kminplatformstep) + kminplatformstep) * sy;  

if (currentmaxplatformstep < kmaxplatformstep)                

currentmaxplatformstep += .5f;               

學習筆記 雜湊學習筆記

hash基本原理 hash就是乙個像函式一樣的東西,你放進去乙個值,它給你輸出來乙個值。輸出的值就是hash值。一般hash值會比原來的值更好儲存 更小 或比較。那字串hash就非常好理解了。就是把字串轉換成乙個整數的函式。而且要盡量做到使字串對應唯一的hash值。它的主要思路是選取恰當的進製,可以...

學習筆記 CentOS 學習筆記01

簡單的做個課堂筆記 虛擬機器用的是vmware,系統是centos cd etc sysconfig network scripts pwdls 顯示列表 cat ifcfg eth0 檢視檔案內容 vi ifcfg eth0 進入vi編輯器 onboot no 原始設定 x逐字刪除 d刪除整行 a...

筆記 spring cloud 學習筆記

1 spring cloud 是什麼 spring cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具 例如配置管理,服務發現,斷路器,智慧型路由,微 控制匯流排 分布式系統的協調導致了樣板模式,使用spring cloud開發人員可以快速地支援實現這些模式的服務和應用程式。他們將在任...