2017-02-16 96 views
0

我正在嘗試構建一個簡單的遊戲菜單,其中包含一些可點擊的精靈,這些精靈將用作按鈕來瀏覽菜單。無法使精靈互動工作

(我使用的是最新的pixi.js(v4.3.5))我的應用程序的

結構:

  • loader.module(利用了pixi.loaders的.Loader)
  • events.module(基本事件子/酒館模塊)
  • base.view
  • menu.view(延伸base.vi EW)
  • game.main

它是如何工作呢?

在初始化視圖之前,必須明確定義所有資源和UI元素。

所以在menu.view中,必須定義下面的屬性。

this.resources = [ 
     { name: 'start', src: 'img/start.png'}, 
     { name: 'start2', src: 'img/start2.png'} 
    ]; 

    this.ui = [{ 
     name: 'start', /// resource name 
     type: 'img', 
     pos: { x: 0, y: 0 } 
    }]; 

現在我只需要調用view.init()把一切加載和繪製。在視覺方面,evrything可以很好地工作,但是'開始'精靈(它有interactivebuttonMode設置爲true)不會對任何鼠標事件做出反應。

下面的方法負責獲取所需的資源並返回一個新的精靈。它還使實際交互功能成爲此過程的一部分。但由於某種原因,測試功能從未被觸發。

__getSpriteObject(element){ 
     let sprite = new PIXI.Sprite(this.loader.loader.resources[ element.name ].texture); 
     sprite.x = element.pos.x; 
     sprite.y = element.pos.y; 

     sprite.interactive = true; 
     sprite.buttonMode = true; 
     console.log(sprite) 

     sprite.on('pointerdown', function(){ 
      console.log("what") 
     }) 
     return sprite; 
    } 

如果上面的信息是不夠的,這裏也是一個工作example

回答