2013-08-06 52 views
0

我創建一個RPG,並希望我所有的精靈添加到spriteContainer,和NPC的使用到npcContainer,等...是的原因是這樣我就可以只需添加容器及其相關的標籤而不是每個單獨的精靈。創建JS:「容器」

我將使用創建的js container對象。

我想爲容器設置一個初始的x,y,但隨後將容器中的每個元素設置爲不同的x,y及其標籤。我應該不使用容器嗎?什麼是容器的原因?

感謝


編輯:我叫addNPCs在它創建了一堆東西,然後將其添加到一個容器開始:

 function addNPCs() { 
      var NPCs = []; 
      spriteContainer = new createjs.Container(); 

      spriteContainer.x = spriteContainerX-camX; 
      spriteContainer.y = spriteContainerY-camY; 

      spriteBMP = new createjs.Bitmap("myBmp.png");   
      spriteBMP2 = new createjs.Bitmap("myBmp.png"); 
      spriteBMP3 = new createjs.Bitmap("myBmp.png"); 

      spriteLabel = new createjs.Text("Hey kitty! Come talk to me!", "14px Arial", "white"); 
      spriteLabel.y = -70;  

      NPCs.push(spriteBMP, spriteBMP2, spriteBMP3); 

      for (npcs in NPCs) { 
       spriteContainer.addChild(npcs); 
       console.log("added " + npcs); 
      } 

     } 

然後添加容器:

stage.addChild(spriteContainer); 
+0

查看createjs的文檔。如果它看起來像容器會使你的工作更容易,使用它們。如果沒有,不要打擾。 JavaScript具有類似於許多其他面嚮對象語言的構造函數和對象實例化(它只是使用原型繼承而不是類)。 – sgroves

回答

2

容器提供了一種真正簡單的方法來對對象進行分組,並將它們作爲一個對象進行控制。這使得簡單:

  • 變換/全部一次平移一組項目(移動,旋轉和縮放的容器,設置α,compositeOperation,陰影等)
  • 緩存的一組對象作爲酮(container.cache(0,0,w,h)獲得更快的性能
  • 維護不同的排序命令,如將所有前景元素到一個容器中,和所有的遊戲精靈到一個容器中,和所有背景元素到容器 - 然後每個容器內排序 - 但不是令人擔憂關於不同層中的元素混合起來

總之,它只是一個有用的方式來管理內容組。你不需要使用它,但它不會有巨大的性能影響 - 所以它絕對推薦任何複雜的東西。

+0

謝謝,Lanny!我想我會堅持使用它們。我可以將我的所有精靈放入一個容器中,然後獨立操作它們嗎?或者這是否擊敗了集裝箱的目的? – Growler