エンジニアリングとお絵描き

お絵描きが趣味のエンジニアが、誰かの為になりそうなことや未来の自分の助けになりそうなことを書き残します.

Vue.js と Pixi.js を 用いた個人アプリ制作

はじめに

今後、以前に作成した以下の間違え探しゲームを元に、もっとちゃんと遊べる間違え探しゲームを作っていこうと思います。

1日で作れる簡単なWebゲームを作りたい...! - メモ日記

今回は、Vue.jsを用いた環境で、元とする上記の間違え探しゲームが動くようになるまでに詰まった個所と、その際参考にした記事を備忘録としてまとめました。

技術選び

はじめ、Nuxt.jsとTypeScript、Pixi.jsを用いて開発しようと考えていました。 Nuxt.jsとTypeScriptを選んだ理由は、「Vue.js、JavaScriptよりもNuxt.js、TypeScriptの方が流行りらしいから...!」という安直なものです。

私は、「とにかく学ぶなら流行りの技術!」という思いから上記の考えに至ったのですが、実際開発フェーズに移ると...

当然何も分からず全然コードが書けませんでした...

理由は明白で、「JavaScriptとVueの知識、経験が全く足りていないから」です。 Nuxt.js、TypeScript共に、Vue.jsとJavaScriptが理解できている前提の技術であるため、学習の順番が異なっていることに気づかされました。 手を動かす前に、ちゃんと使う技術について調べ、今の自分やプロダクトに相応しいが吟味することがどれほど重要かを再確認しました....。

参考:Nuxt.jsに飛びつく前に~Nuxt.jsを習得するための前提技術と、その勉強方法の紹介~ - Qiita

ということで、多少経験のあるVue.js、ゲーム制作に便利と思われるPixi.jsを用いて開発することにしました。

画像が表示できない

1日で作れる簡単なWebゲームを作りたい...! - メモ日記 を作成した際にも詰まったのですが、素材画像がどうしても表示できず、困り果てていました。

結果として、次の記事を参考にさせて頂くことで解決できました。

【Vue.js】なぜかimgが表示されない時の解決法とその理由 - ryoのぼやき

require()を使い画像をモジュールとして読み込むことで、無事Pixi.jsのキャンバス上に画像を表示させることができました。

ゲーム画面を再度表示する際のエラー

一度開いたゲーム画面から、別の画面に移動し、再度ゲーム画面を開く際、以前のデータが残っており、エラーが出てしまいました。

以下の記事を参考にし、無事解決できました。

Next.js + PixiJSでPIXI.loaders.Loaderを使った際、ホットリロード時に'Error: Resource named "RESOURCE_NAME" already exists.' となるのを防ぐ 🛡 - みかづきブログ・カスタム

Warging "Texture added to the cache with an id [0] that already had an entry" when using Spritesheet.parse() - Pixi.js - HTML5 Game Devs Forum

https://pixijs.download/dev/docs/PIXI.utils.html#clearTextureCache