JavaScript でのモグラ叩きゲームの実装

JavaScript でのモグラ叩きゲームの実装

この記事では、モグラ叩きゲームを実装するためのJavaScriptの具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。

ゲームの説明:

「ゲーム開始」ボタンをクリックすると、画像内にマウスがランダムに生成されます。マウスをクリックして、消える前にヒットします。1 回ヒットすると 100 ポイントを獲得できます。マウスをヒットしないと、100 ポイントが減点されます。

CSS モジュール

<スタイル>
    #div0{
     テキスト配置: 中央;
     幅: 1360ピクセル;
     高さ: 600px;
     マージン: 60px 自動;
     背景画像: url("images/bg.jpg");
     位置: 相対的;
    }
    #div_top{
     テキスト配置: 左;
     色:ブラウン;
     幅: 360ピクセル;
     高さ: 100px;
     位置: 絶対;
     左: 500ピクセル;
    }
    #div_left{
     幅: 350ピクセル;
     高さ: 320px;
     位置: 絶対;
     左: 300ピクセル;
     上: 150px;
    }
    #タブデータ{
     幅:350ピクセル;
     高さ:320px;
    }
    #div_right{
     幅: 350ピクセル;
     高さ: 320px;
     位置: 絶対;
     右: 380px;
     上: 150px;
    }
    #タブ{
     幅:320ピクセル;
     高さ:320px;
    }
    #タブtd{
     背景画像:url("images/00.jpg");
     背景繰り返し:繰り返しなし;
     背景の位置:中央;
    }
</スタイル>

htmlモジュール

<div id="div0">
   <div id="div_top">
     ゲームの説明:<br/>
    「ゲームを開始」ボタンをクリックすると、下の画像のようにマウスがランダムに生成されます。マウスが消える前にクリックして攻撃してください。<br/>
    マウスを1回ヒットすると100ポイント獲得でき、ミスすると100ポイント減点されます。素早く行動して、あなたの反応と視力をテストしましょう! <br/>
   </div>
   <div id="div_left">
    <テーブルid="tab_data">
     <tr>
      <th>試合時間:</th>
      <td><input type="text" name="text_time" value="1" />分</td>
     </tr>
     <tr>
      <th>カウントダウン:</th>
      <td><input type="text" name="text_CD" value="60" disabled="disabled"/>秒</td>
     </tr>
     <tr>
      <th>発生間隔:</th>
      <td><input type="text" name="text_hide" value="1" />秒</td>
     </tr>
     <tr>
      <th>滞在時間:</th>
      <td><input type="text" name="text_show" value="1" />秒</td>
     </tr>
     <tr>
      <th>スコア:</th>
      <td><span id="span_score"></span></td>
     </tr>
     <tr>
      <番目 colspan="2">
       <input type="button" value="ゲームを開始" id="but_start"/>
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
       <input type="button" value="ゲーム終了" id="but_end"/>
      </th>
     </tr>
    </テーブル>
   </div>
   <div id="div_right">
    
   </div>
</div>

js モジュール

<スクリプト>
   var collTd=[];//すべてのtdを記録
   var oTdMouse; //選択したtdを記録する
   // 変数レコード ページのラベル要素を定義します var oButStart, oButEnd;
   var oTextTime、oTextHide、oTimeShow、oTimeCD;
   var oSpanScore;
   //時間パラメータを記録するための変数を定義します:
   var iAll、iCD、iShow、iHide、iCount、iGet;
   var iCDId、iRandomId、iShow、iChangeId;
   window.onload = 関数(){
    //テーブルを作成する createTable();
    //タグ要素変数に値を割り当てる init();
    //ボタンのイベントを登録します oButStart.onclick=startGame;
    oButEnd.onclick=ゲーム終了;
   }
   //ゲームを開始する function startGame(){
    iAll = parseInt(oTextTime.value)*60;
    iCD=iAll;
    // 1秒ごとにカウントダウンを実行します iCDId=window.setInterval(setCD,1000);
    iShow = parseInt (oTextShow.value);
    iHide=parseInt(oTextHide.value);
    カウント=0;
    0 を取得します。
    //iShow+HideごとにランダムにTDを表示する
    ランダムID();
    iRandomId=window.setInterval(randomId,(iShow+iHide)*1000);
    oButStart.disabled="無効";
    oButEnd.disabled="";
   }
   //ランダムtd
   関数 randomId(){
    iCount++;
    var インデックス = parseInt (Math.random() * collTd.length);
    oTdMouse=collTd[インデックス];
    //背景画像を変更します oTdMouse.style.backgroundImage="url('images/01.jpg')";
    // 表示時間が終了するまで待機し、背景画像を元に戻します iShowId=window.setTimeout("oTdMouse.style.backgroundImage='url(images/00.jpg)';",iShow*1000);
   }
   //カウントダウン関数を設定する setCD(){
    iCD--;
    oTextCD.value=iCD;
    // 1 秒ごとにスコアを記録します var message="合計 "+iCount+" 個、ヒット "+iGet+" 個!";
    oSpanScore.innerHTML=message.fontcolor("blue").bold();
    iCD<=0の場合{
     ゲームの終了();
    }
   }
   //ゲームを終了する function endGame(){
    oButEnd.disabled="無効";
    oButStart.disabled="";
    ウィンドウのクリア間隔(iCDId);
    ウィンドウのクリア間隔(iRandomId);
   }
   //ラベル要素変数に値を割り当てる function init(){
    oButStart=document.getElementById("but_start");
    oButEnd=document.getElementById("but_end");
    
    oTextTime=document.getElementsByName("text_time")[0];
    oTextCD=document.getElementsByName("text_CD")[0];
    oTextHide=document.getElementsByName("text_hide")[0];
    oTextShow = document.getElementsByName("text_show")[0];
    
    oSpanScore = document.getElementById("span_score");
    oTextCD.値=60;
    oButEnd.disabled="無効";
   }
   //テーブルを動的に生成する関数createTable(){
    var oDivRight = document.getElementById("div_right");
    var oTab=document.createElement("テーブル");
    oTab.id="タブ";
    (var i=0;i<6;i++){
     var oTr=document.createElement("tr");
     (var j=0;j<5;j++){
      var oTd = document.createElement("td");
      oTr.appendChild(oTd);
      collTd.push(oTd);
      //すべてのtdにクリックイベントを追加 oTd.onclick=function(){
       if(this==oTdMouse){
        //現在のセルの背景画像が 01.jpg かどうかを判断します
        if(this.style.backgroundImage.indexOf("01.jpg")!=-1){
         // 1 ポイントを取得します iGet++;
         //背景画像を02.jpgに変更します
         oTdMouse.style.backgroundImage="url('images/02.jpg')";
         //00.jpg に変更するには 0.2 秒待ちます
         iChangeId=window.setTimeout("oTdMouse.style.backgroundImage='url(images/00.jpg)';",200);
         var message="合計 "+iCount+" 個、"+iGet+" 個を獲得しました!";
         oSpanScore.innerHTML=message.fontcolor("blue").bold();
        }
        
       }
      }
     }
     oTab.appendChild(oTr);
    }
    oDivRight.appendChild(oTab);
   }
</スクリプト>

皆さんと共有したい、より興味深いクラシック ミニ ゲームの実装トピック:

C++ クラシック ミニ ゲーム コレクション

Python クラシックゲームの概要

Python テトリス ゲーム コレクション

クラシックなJavaScriptゲームをプレイする

Java クラシック ゲーム コレクション

JavaScript クラシックゲームの概要

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • JavaScript+HTML5 ベースのモグラ叩きゲームのロジックフローの詳細な説明 (完全なコード付き)
  • JavaScript でモグラ叩きゲームを実装
  • モグラ叩きゲームを実現する js
  • JavaScript モグラ叩きゲーム コードの説明
  • JavaScript で簡単なモグラ叩きゲームを実装する

<<:  iframe が HTML 内のページにジャンプするのを防ぎ、iframe を使用して WeChat Web バージョンをページに埋め込む方法

>>:  Dockerはnginxをデプロイし、フォルダとファイル操作をマウントします

推薦する

js の hasOwnProperty のプロパティとインスタンスの使用法の詳細な説明

1. js は hasOwnProperty が不正に占有されることから保護しません。オブジェクトに...

Vue2.x における双方向バインディングの原理と実装

目次1. 実施プロセス2. オブザーバーを表示する3. ウォッチャーを実装する4. コンパイルを実装...

携帯電話番号の真ん中の4桁を隠すMySQL SQL文の方法

最初のクエリ テーブル構造 (sys_users): sys_users から * を選択します。最...

MySQLクエリ最適化プロセスを理解する

目次パーサーとプリプロセッサクエリオプティマイザーMySQL クエリの最適化には、解析、前処理、最適...

HTML ページの先頭に戻るいくつかの実装の概要

最近、ウェブサイトを開発する際にトップに戻るボタンを作成する必要がありますが、私は主にバックエンドの...

JavaScript はパスワードボックスの入力検証を実装します

サーバーの負荷を軽減するために、ユーザーが入力するときにフロントエンドページで簡単な検証を実行する必...

MySQL トランザクション分離レベルとロックメカニズムの問題に関する深い理解

概要データベースは通常、複数のトランザクションを同時に実行します。複数のトランザクションが、同じデー...

CSSはクーポンスタイルを実装するために放射状グラデーションを使用します

この記事では、CSS で放射状グラデーションを使用して、次の図に示すクーポン スタイルの効果を実現す...

Nexus サーバーを設定するための詳細な手順

1. ネクサスサービス構築の意義イントラネットの統合プロキシとして、チームで共同開発する場合、全員が...

Linuxのip netnsコマンドを使用してネットワークポートを分離し、IPアドレスを設定します。

1. 分離マーカーを追加します。 ip netns add fd 2. 指定されたネットワーク カ...

XHTML言語のデフォルトCSSスタイル

html、アドレス、引用ブロック、本文、dd、div、 dl、dt、フィールドセット、フォーム、フレ...

Docker を使用して pypi プライベート リポジトリを構築する方法

1. 建設1. htpasswd.txtファイルを準備するファイルには、パッケージを倉庫にアップロー...

Linux パーティションまたは論理ボリュームにファイルシステムを作成する方法

序文システムにファイル システムを作成し、それを永続的または非永続的にマウントする方法を学習します。...

VMware 15 仮想マシンに Ubuntu 18.04 をインストールするグラフィック チュートリアル

ここ数年、私は自動化とコンピューターを行ったり来たりしてきました。最近は、機械学習に関連するプロジェ...

JavaScript BOM の説明

目次1. BOMの紹介1. JavaScriptは3つの部分から構成される2.ウィンドウオブジェクト...