无法使精灵互动工作

时间:2017-02-16 11:38:47

标签: javascript html5 interaction pixi.js

我正在尝试构建一个简单的游戏菜单,其中包含一些可点击的精灵,这些精灵将用作按钮来浏览菜单。

(我正在使用最新的pixi.js(v4.3.5))

我的应用结构:

  • loader.module(使用pixi.loaders.Loader)
  • events.module(基本事件子/ pub模块)
  • base.view
  • menu.view(extends base.view)
  • 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工作得很好,但是'start'精灵(它的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

1 个答案:

答案 0 :(得分:0)