久々のゲーム作り
2016-09-17(土)
全体公開
久々にJavaScriptでゲーム作りました(昨日からだけど)
[リンク削除]
まだ試作版なのでメインの遊べるところだけです。
レイアウトやスコア等はこれから追加予定。
ソースは美しくないです。
始めは数字が書かれたパネル部分をJavaScriptで以下で生成しようとしました。
for(var i = 0; i < 16; i ++){
var div = document.createElement('div');
div.style.left = 64 * (i % 4) + 'px';
div.style.top = 64 * Math.floor(i / 4) + 'px';
div.textContent = i + 1;
div.onclick = function(){alert(div.textContent);};
playarea.appendChild(div);
}
パネルの生成は上手くいくんですが、onclickの処理が上手くいきませんでした。
(どの数字を押してもalertが16になる)
おそらく、変数divが上書きされ最後に追加された要素(div)になっているんだと思います。
この問題を自力で解決できなかったため、上の案はやめました。
実際はalertの部分で個々のパネルからそれらを識別する値を
パネルを入れ替える関数に渡す予定でした。
仕方ないので、htmlで各々のパネルを作り、onClickを実装しておきました。
(ここがソースが美しくないというところです)
パネルのいろいろな処理は0から15までの一次元配列で行っています。
4*4のゲーム版なんだから2次元配列使えばよかったじゃんと言うひともいるかもしれません。
個人的には2次元配列になるとforの繰り返しが増えるので避けました。
(正直面倒だった)
今回は4*4で小さい盤面なので1次元でも簡単に書けました。