ウェブゲームの不具合が解決出来ません。
Q&A
Closed
解決したいこと
「グラフィックスプログラミング入門」という専門書でプログラミングの勉強をしています。
学習の一環として、専門書のサンプルコードを自分なりに編集して書き換えています。
リテラルを変更して、処理の一部を関数化していますが、大筋の内容は同じです。
画面上部から現れる敵をショットで打った際に、火花が散る演出が表示されない問題が発生しました。
ファイルは以下のURLにアップロードしています。
「F12 -> デバッガー -> js」で全てのコードが閲覧出来ます。
アローキーで自機を上下左右に動かして、Zキーでショットを打てます。
【専門書のサンプルコード】
https://upload0605.web.fc2.com/original/index.html
【私が編集したコード】
https://upload0605.web.fc2.com/my_code/idx.html
発生している問題・エラー
「解決したいこと」に同じ
該当するソースコード
// character.js: 716
/**
* 爆発エフェクトの座標を設定するメソッド
*
* @param {number} x - 爆発を発生させるX座標
* @param {number} y - 爆発を発生させるY座標
*/
setCoordExplosion({x, y}) {
for (let i = 0; i < this.num; i++) { // 火花の個数分ループして生成する
// 疑問の箇所 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
this.posSparks[i] = new Position({x, y}); // 引数を元に位置を決める
/**
* @type {number} angle - ランダムに火花が進む角度(なるラジアン)
* @type {number} cos - ラジアンを元に生成されたコサイン
* @type {number} sin - ラジアンを元に生成されたサイン
*/
const
angle = (Math.PI * 2.0) * Math.random(),
[cos, sin] = [Math.cos(angle), Math.sin(angle)];
this.vecs[i] = new Position({cos, sin});
}
this.containLife = true; // 爆発の生存状態を設定
this.timeBegin = Date.now(); // 爆発が始まる瞬間のタイムスタンプを取得する
} // setCoordExplosion({x, y}) {}
自分で試したこと
Fire Foxのデバッガーで検証してみました。
「this.posSparks[i] = new Position({x, y});」のposSparks[i]に
値が設定されません。ここが原因だと考えているのですが、
どうすれば改善出来るのかが分かりません。
他の質問サイトでも相談しましたが、解決しませんでした。
マルチポストに該当するかもしれませんが、よろしくお願い致します。