この記事では、パズルゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。 1. jsパズルとは何ですか?js で作られた小さなゲーム 2. 使用手順1. まずdivボックスを作成する <スタイル> div,本文{ マージン: 0; 高さ: 0; } #箱{ 幅: 800ピクセル; 高さ: 800ピクセル; 背景色: バーリーウッド; 位置: 相対的; } #ボックスdiv{ 幅: 200ピクセル; 高さ: 200px; 背景: url(./imgs/bg.jpg) 繰り返しなし; 位置: 絶対; } </スタイル> </head> <本文> <div id="box"></div> </本文> 2. jsを書く <スクリプト> // タグを取得します var box = document.getElementById("box"); var arrs = []; // ループして 16 個のオブジェクトを作成し、配列に追加します for(var i = 0; i < 4; i++){ (var j = 0; j < 4; j++){ var divNode = document.createElement("div") divNode.style.top = 200 * i + "px" divNode.style.left = 200 * j + "px" // オブジェクトを作成する var pox = { 左: 200* i、 トップ:200*j, } // 作成したオブジェクトを配列に追加します if( i !== 3 || j !== 3 ){ arrs.push(pox) }それ以外{ divNode.style.background = "なし"; divNode.className = "スペース" } ボックスの子要素を追加します。 } } コンソールにログ出力します。 // オブジェクトをランダムに抽出する for(var i = 0; i < 15; i++){ var ranNum = parseInt(Math.random() * (15 - i)) var x = arrs[ranNum].left; var y = arrs[ranNum].top; box.children[i].style.backgroundPosition = - x + "px " + - y + "px"; arrs.splice(ranNum,1); } //キーボードイベント document.onkeyup = function(event) { // 押されたキーを取得します var key = event.keyCode // (キー == 38) の場合 { var x = box.querySelector(".space").style.left var y = box.querySelector(".space").style.top (var i = 0; i < 16; i++) の場合 { parseInt(box.children[i].style.top) == parseInt(y) - 200 && parseInt(box.children[i].style.left) == parseInt(x) の場合 ボックス.children[i].style.top = y box.querySelector(".space").style.top = parseInt(y) - 200 + "px" } } // 次へ}else if (key == 40) { var x = box.querySelector(".space").style.left var y = box.querySelector(".space").style.top // すべての小さなdivを走査し、空白の上にあるものを見つけてyに代入します (var i = 0; i < 16; i++){ parseInt(box.children[i].style.top) == parseInt(y) + 200 && parseInt(box.children[i].style.left) == parseInt(x) の場合 { ボックス.children[i].style.top = y box.querySelector(".space").style.top = parseInt(y) + 200 + "px" } } // 左 }else if (key = 38) { var x = box.querySelector(".space").style.left var y = box.querySelector(".space").style.top (var i = 0; i < 16; i++) の場合 { parseInt(box.children[i].style.left) == parseInt(x) - 200 && parseInt(box.children[i].style.top) == parseInt(y)) { box.children[i].style.left = x box.querySelector(".space").style.left = parseInt(x) - 200 + "px" } } // 正しい }else if (key = 39) { var x = box.querySelector(".space").style.left var y = box.querySelector(".space").style.top (var i = 0; i < 16; i++) の場合 { parseInt(box.children[i].style.left) == parseInt(x) + 200 && parseInt(box.children[i].style.top) == parseInt(y) の場合 box.children[i].style.left = x box.querySelector(".space").style.left = parseInt(x) + 200 + "px" } } } } </スクリプト> レンダリング レンダリング完了 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: nginx ssl を設定して https アクセスを実装する手順 (初心者向け)
>>: Mysql のいくつかの複雑な SQL ステートメント (重複行のクエリと削除)
この記事では、トップに戻るボタンを実装するためのJavaScriptの具体的なコードを参考までに紹介...
コンセプトインデックスにクエリ要件を満たすすべてのデータが含まれている場合、それはカバーリング イン...
目次序文Vue Nativeの機能宣言的レンダリング双方向バインディングVue.js エコシステムの...
これは、よく使われるけれども忘れられがちな CSS 実装方法のコレクションです。抜けや追加があれば、...
質問1 解決するサービスを開始します: service mysqld start; /sbin/ip...
キャンバスを使ってカラフルな時計を書いてみよう! 1. タイトル(1)時計のケースが与えられ、ページ...
並行処理関数 i の `grep server /etc/hosts | awk '{pri...
目次1. ログ関連サービス2. システム内の共通ログファイル1. ログ関連サービスCentOS 6....
目次1. binlogの3つのモード1.ステートメントレベルモード2. 行レベルモード3. 混合モー...
環境名前財産CPU 5650 円メモリ4Gディスク20G+4TB この時点で、サーバーにはすでに次の...
データベースの読み取りと書き込みの分離は、トラフィック量の多い大規模システムやインターネット アプリ...
もしかしたら私の考え方が間違っていたのかもしれないし、問題の説明が少し乱雑だったのかもしれないが、こ...
1. はじめにGit は、規模の大小を問わずあらゆるプロジェクトを俊敏かつ効率的に処理するために使用...
使用シナリオ:ジャンプ パスは、傍受された URL に応じて動的に構成する必要があります。これは、イ...
Nginx は同じドメイン名で構成されており、http と https の両方でアクセスできます。証...