質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

WebGL

WebGL(ウェブジーエル)は、ウェブブラウザで 3次元コンピュータグラフィックスを表示させるための標準仕様です。

Q&A

解決済

1回答

3160閲覧

pixi.jsでParticleContainerにgraphicsを追加したいがエラーが出る

okpk

総合スコア38

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

WebGL

WebGL(ウェブジーエル)は、ウェブブラウザで 3次元コンピュータグラフィックスを表示させるための標準仕様です。

0グッド

1クリップ

投稿2019/04/24 03:37

編集2019/04/24 03:38

javascript

1 const app2 = new PIXI.Application({ 2 width: 636, 3 height: 512, 4 view: document.getElementById('canvas2'), 5 resolution: window.devicePixelRatio || 1, 6 autoResize: true, 7 backgroundColor: 0x365a7c, 8 }); 9 const numOfParticles = 10; 10 const particleProperties = { 11 rotation: true, 12 position: true, 13 }; 14 const particleContainer = new PIXI.particles.ParticleContainer( numOfParticles, particleProperties ); 15 app2.stage.addChild( particleContainer ); 16 17 for ( var i = 0; i < numOfParticles; ++i ) { 18 const graphics = new PIXI.Graphics(); 19 graphics.lineStyle(0); 20 graphics.beginFill(0xDE3249, 1); 21 graphics.drawCircle(0, 0, 5); 22 graphics.endFill(); 23 graphics.x = Math.random() * ( app2.renderer.screen.width ); 24 graphics.y = Math.random() * ( app2.renderer.screen.height ); 25 particleContainer.addChild(graphics); //この行でエラーが出ます。 26 }

Uncaught TypeError: Cannot read property 'baseTexture' of undefined
というエラーが発生し、生成したgraphicsをtickerで操作したいのですがうまく動作しません。
particleContainer.addChild(graphics); この記述をコメントアウトするとエラーが消えたことは確認できたのですが、GraphicsをparticleContainerにaddChildする以外にどのような書き方があるのか、お教えいただければ幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

graphicsで用意したレンダリングエリアをtextureにするには、もうワンステップ必要なようです。
一番下の処理を、下記のように変えたら、エラーは出なくなりました。試してみてください。

// particleContainer.addChild(graphics); //この行でエラーが出ます。 const texture = app2.renderer.generateTexture( graphics); particleContainer.addChild(texture);

投稿2019/04/29 10:53

adrs2002

総合スコア203

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

okpk

2019/05/07 01:37

回答ありがとうございます。 修正したところ今度は Uncaught TypeError: Cannot set property '_parentID' of null というエラーが発生しました。 その後調べてみましたら、 const texture = graphics.generateCanvasTexture(); const sprite = new PIXI.Sprite(texture); particleContainer.addChild(sprite); このような手順でGraphicsを表示させることができました。 graphicsで生成したObjectをSpriteに変換しないとContainerに上がらない...のような考え方なのでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問