shimotsu tech

Webフロントエンドエンジニア @ to-R inc.

【Nuxt】new PIXI.Container()で生成した要素の位置を動的に変える

PIXI.Container()で生成した要素の位置を動的に変えるときの方法です。

API自体はこちらに用意されていて、基本はそこにアクセスして値を書き換えれば大丈夫かと思います。
位置を制御するため、x,yの値にアクセスすることができます。

PixiJS API Documentation

// コンテナを生成
const sampleContainer = new PIXI.Container()

// コンテナを生成
sampleContainer.y = 0 (任意の値)

これを、new PIXI.Application() で生成したcanvasに追加することで表示されるかと思います。

要素の位置を動的に変える

ボタンをクリックしたら、上記で生成したコンテナの位置を変更する場合を考えてみます。

methodでボタンのクリックイベントを設定し、それに応じてsampleContainerの値を書き換えます。

<button v-on:click="UpDown(50)">+</button>

で、このときコンポーネントのscript内で定義されたmethodから、別で生成されたcanvasの値を直接参照できないので、コンテナ生成時にいったんdataに格納しておくとよさそうです。

data() {
    return {
      sampleCanvas: null
    }
  }

このあと、コンテナ生成時にそれをdataに格納します。

      // コンテナを生成
      const sampleContainer = new PIXI.Container()
      // dataに格納
      thiss.sampleCanvas = sampleContainer

すると、methodからdataを参照すればいいので、動的に値を書き換えることができるようになります。

methods: {
 UpDown(value) {
      // 位置を調整する
      this.PosY += value

      // 再設定
      this.sampleCanvas.y = this.PosY
 }
}