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

推薦する

Vueのwatch、computed、methodsの違いのまとめ

目次1 はじめに2 基本的な使い方2.1 方法2.2 計算プロパティ2.3 リスナーを見る3 3つの...

MySQL ストアド プロシージャと共通関数のコード分析

mysql ストアド プロシージャの概念:特定のタスク (クエリと更新) を実行できる、データベース...

MySQL XA で分散トランザクションを実装する方法

目次序文XA プロトコルMySQL XA で分散トランザクションを実装する方法序文MySQL が単一...

MySql 共通クエリコマンド操作リスト

MYSQL でよく使用されるクエリ コマンド: mysql> select version()...

HBuilderX で Tomcat 外部サーバーを設定して、JSP インターフェイスを表示および編集する方法の詳細な説明

1. 最初の方法は、ローカルのTomcatを起動してJSPを表示することです。 tomcatのweb...

MySQL の複数テーブル関連付け 1 対多クエリを使用して最新のデータを取得する方法の例

この記事では、MySQL で複数のテーブルを使用して 1 対多のクエリを使用して最新のデータを取得す...

要素のフォームコンポーネントに関する注意事項

要素フォームとコード表示詳細はエレメントフォーム公式サイトをご覧ください構造と機能の分析紹介とソース...

MySQL インフラストラクチャ チュートリアル: クエリ ステートメント実行プロセスの詳細な説明

序文私は以前から、SQL 文がどのように実行され、どのような順序で実行されるのかを知りたいと思ってい...

nginxリバースプロキシによるセッション障害の問題の解決策

同僚から助けを求められました。バックエンド システムへのログインは成功したものの、システムには正常に...

uniapp アプレットでウォーターフォール フロー レイアウトを実装するためのアイデアとコード

1. はじめに今、ウォーターフォールフローについて書くことは、古い内容の焼き直しと見なされますか?気...

Vue の下部ナビゲーション バー TabBar を実装するための非常に詳細なチュートリアル

目次プロジェクト紹介:プロジェクトディレクトリ: TabBar 効果のプレビュー: TabBar 実...

vue3 で vue-router を使用するための完全な手順

序文ルーティングの管理は、ほとんどのシングルページ アプリケーションにとって不可欠な機能です。 Vu...

CSS で左上の三角形を作成するいくつかの方法の詳細な説明

今日は、CSS を使用して左上の三角形を記述するいくつかの方法を紹介します。概略図(幅と高さを60p...

CentOS8でyumソースを変更した後にウェアハウスキャッシュの同期に失敗する問題の詳細な説明

問題の原因: 最初は CentOS 8 のデフォルトの yum ソースを正常に使用できますが、次のコ...

JavaScript の実行コンテキストとコールスタックの詳細な説明

目次1. 実行コンテキストとは何か2. 実行コンテキスト スタックとは何ですか? 3. 実行コンテキ...