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をデプロイし、フォルダとファイル操作をマウントします

推薦する

Win7 インストール MySQL 5.6 チュートリアル図

目次1. ダウンロード2. インストール3. my.ini ファイルを設定する(デフォルトのエンコー...

Linux crontab コマンドの使用

1. コマンドの紹介contab (cron テーブル) コマンドは、Windows のスケジュール...

ftp は SSH 経由で Linux にリモート接続します

まず Linux に ssh をインストールします。例として Centos を使用します。ポータル:...

ネットワークセグメント内の IP アドレスに対する Nginx の接続制限設定の詳細な説明

Nginx におけるいわゆる接続制限は、実際には TCP 接続、つまり 3 ウェイ ハンドシェイク後...

momentJs を使用してカウントダウン コンポーネントを作成する (サンプル コード)

今日はvueとmomentで作ったカウントダウンを紹介したいと思います。具体的な内容は以下のとおりで...

CSSでプロセスナビゲーション効果を実現する(3つの方法)

CSS によりプロセスナビゲーション効果を実現します。具体的な内容は以下のとおりです。 ::tip...

Docker コンテナのカスタム ホストのネットワーク アクセス操作

docker-compose.yml に extra_hosts キーワードを追加すると、コンテナの...

jQuery ベースのカレンダー効果

この記事では、カレンダー効果を実現するためのjQueryの具体的なコードを例として紹介します。具体的...

MySQL 8.0.18 のさまざまなバージョンのインストールとインストール中に発生した問題 (要点の要約)

概要: MYSQLの問題解決記録:どのようなインストール方法 (rpm、gz、gz.xz) を使用す...

大きな MySQL テーブルに列を追加する方法

質問は https://www.zhihu.com/question/440231149 から参照さ...

Ubuntu 18.04で国内ソースを変更する方法の例

Ubuntu はソースが中国からなのでダウンロード速度が比較的遅いです。CentOS と異なり、yu...

Linux ディスクのシーケンシャル書き込みとランダム書き込みの方法

1. はじめに● ランダム書き込みではヘッドがトラックを頻繁に変更するため、効率が大幅に低下します。...

React プロジェクトで eslint の Baidu スタイルを使用する詳細な説明

1. Baidu Eslint Ruleプラグインをインストールする npm i -D eslint...

MySQL のフィールドに一意のインデックスを追加および削除する方法

1. PRIMARY KEY(主キーインデックス)を追加するmysql>ALTER TABLE...

CentOS 8にdockerをインストールする最も詳細な方法

CentOS 8にDockerをインストールする公式ドキュメント: https://docs.doc...