2016-02-19 54 views
0

我想跟着學習Pixi的JS的書,但許多的方法,因爲作者使用的Pixi VS 3.0.0不工作,我使用3.0.9,因爲舊版本不提供下載了。它希望我用一個Rectangle對象來組織我的瓷磚表,但Pixi沒有那個。所以我聽說PIXI.extrast.TilingSprite中的「生成紋理」方法,但我無法調用它。那麼我如何使用它?如何在PIXI.extras.TilingSprite的Pixi JS中使用繼承方法「生成紋理」?

下面是我曾嘗試代碼:

<!DOCTYPE html> 
    <meta charset="utf-8"> 
<html> 
    <head> 
     <title>First Attempt</title> 
    </head> 

    <body> 
     <script type="text/javascript" src="pixi.js">  </script> 

     <script> 


       renderer = PIXI.autoDetectRenderer(1200, 800); 

      //); 

      // Add the canvas to the HTML document 
      document.body.appendChild(renderer.view); 

      // Create a container object called the 'stage' 
      var stage = new PIXI.Container(); 


      var texture = PIXI.Texture.fromImage("images/png/Tiles/Tile1.png"); 





      setup(); 
      function setup() 
      { 
       requestAnimationFrame(setup); 


       var newtile = new PIXI.extras.TilingSprite.generateTexture(3,2,renderer); 



       // Position the sprite on the canvas 
       newtile.x = 0; 
       newtile.y = 0; 

       //Scale the sprite up so it's 3 times bigger than the original image 
       newtile.scale.set(0.3, 0.3); 

       //Add the sprite to the stage 
       stage.addChild(newtile); 

       //Render the stage 
       renderer.render(stage); 
      } 






     </script> 

     <style>* {padding: 0; margin: 0}</style> 
    </body> 
</html> 

我想知道如何使用生成紋理的方法,但如果任何人有替代的做法,所以我可以把我的瓦片地圖,將是有益的了。任何一個挑戰?我認爲把每個瓷磚一個接一個地放在適當的座標上會是一個壞主意?

+0

你說的「我無法稱它」是什麼意思?你看到一個錯誤?如果是這樣的錯誤?你沒有得到預期的結果?如果是這樣,你期望什麼結果,他們有什麼不同? – jered

+0

對不起。我應該更清楚這個錯誤。以下是我從Google檢查工具中得到的結果:「TypeError:PIXI.extras.TilingSprite.generateTexture不是函數」。 –

回答

0

我們缺乏的究竟發生了什麼錯在這裏的一些細節,但馬上很明顯,你濫用TilingSprite。

閱讀上的official Pixi.js documentation一點。

總之,generateTexture不是一個靜態方法。 「靜態」意味着你可以調用方法而不先實例化類。請注意,文檔指出方法名稱旁邊是「靜態」還是「繼承」。

您需要創建TilingSprite實例第一,然後調用generateTexture方法的對象,它返回一個PIXI.Texture再次,這是所有的文檔中明確列出(生成的紋理。) - 它需要一些練習來解析這樣的文檔,但當你使用其他人的圖書館時,這是一項基本技能。

做這樣的事情:

var sprite = new PIXI.extras.TilingSprite(texture, textureWidth, textureHeight); 
var generatedTexture = sprite.generateTexture(renderer, resolution, scaleMode); 

我抓我的頭有點,爲什麼你會想從紋理創建一個精靈......然後轉身和生成紋理精靈。我想你有你的理由?

+0

如果我誠實,我不知道我在做什麼。理解文檔對我來說仍然是新的,這就是爲什麼我真的很喜歡來自像stackoverflow這樣的論壇的建議。至於從紋理或其他方面創建精靈,我真的不知道你在說什麼。正如我所說,我正在試圖遵循Rex van der Spuy的Learn Pixi JS書,但幾乎沒有任何代碼正在工作。我只是想弄清楚如何爲遊戲中的關卡創建一個tilesheet。 –

+0

不幸的是,我沒有任何關於Pixi.js的教程建議,但是看看它們的示例(http://pixijs.github.io/examples/)會非常有幫助。他們專注於單一的概念,而且非常簡短,所以如果你能弄清楚這些將會是一個好的開始。 – jered