スネークゲームのウェブ版を実装するためのJavaScript

スネークゲームのウェブ版を実装するためのJavaScript

この記事では、ウェブページのスネークゲームを実装するためのJavaScriptの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。

<!DOCTYPE html>
<html>
<head><title>ヘビ</title>
</head>
<本文>
<キャンバスid="キャンバス" 幅="400" 高さ="400"></キャンバス>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
<スクリプト>
var canv = document.getElementById("キャンバス");
var ctx = canv.getContext("2d");
var スコア = 0;
//ブロックコンストラクタを定義する var Block = function (col, row, size)
{
  列は、
  行番号
  this.size=サイズ;
    };
//Block 関数のプロトタイプ メソッド draw を定義します。
Block.prototype.draw = 関数()
{
  ctx.fillRect(この列*このサイズ、この行*このサイズ、このサイズ、このサイズ)
   }
//オブジェクトsnakeを定義するvar snake = {
  体:[
    新しいブロック(20,20,10)
    新しいブロック(20,21,10)
    新しいブロック(20,22,10)
   ]、
  方向:"右",
  };

// ヘビを描画する関数を定義する snake.draw=function()
{
   (var i=0;i<this.body.length;i++) の場合
  {
     this.body[i].draw();
        }
   };

snake.move = 関数()
         {
          var head = this.body[0];

if(snake.direction=="right")
     {    
     var newhead = 新しいブロック (head.col + 1、head.row、head.size)
            }
  
  if(snake.direction == "左")
   
     { 
     var newhead = 新しいブロック(head.col-1、head.row、head.size); 
           }  
 if(snake.direction=="上")
     {
     var newhead = 新しいブロック (head.col、head.row-1、head.size)
           }
    if(snake.direction=="down")
     {
     var newhead = 新しいブロック (head.col、head.row+1、head.size)
           } 
          新しいヘッド列<0 || 新しいヘッド列>39 の場合
          {
           間隔をクリアします(間隔ID);
           ゲームオーバー();
          }
          
          新しいヘッド行が<0 || 新しいヘッド行が>39の場合
          {
           間隔をクリアします(間隔ID);
           ゲームオーバー();
          }
 (var i=0;i<this.body.length;i++) の場合
{
    this.body[i].col==newhead.col &&this.body[i].row==newhead.row の場合
  {
    間隔をクリアします(間隔ID);
    ゲームオーバー();
      }
          }         
     this.body.unshift(新しいヘッド);
     newhead.col==apple.posX &&newhead.row==apple.posY の場合
{  
    スコア=スコア+100;
    (真)の間
  {
     var checkApple =false;
     apple.posX=Math.floor(Math.random()*40);
     apple.posY=Math.floor(Math.random()*40);
     (var i=0; i<this.body.length; i++) の場合
   {
     this.body[i].col==apple.posX &&this.body[i].row==apple.posY の場合
          checkApple=true;
                        }
       if(!checkApple)
       壊す;
      }  
  }
それ以外{
     this.body.pop();
        }         
         };
//リンゴオブジェクトを作成する var apple={
    posX:Math.floor(Math.random()*40)、
    posY:Math.floor(Math.random()*40)、
    サイズR:5
}
//リンゴを描く function apple.draw=function()
{
  ctx.fillStyle="緑";
  ctx.beginPath();
  ctx.arc(this.posX*10+5,this.posY*10+5,5,0,Math.PI*2,false);
  ctx.fill();
  ctx.fillStyle="黒";
     };
//終了 var gameover = function()
{
  ctx.font="60px Comic Sans MS";
  ctx.textAlign="中央";
  ctx.textBaseline="中央";
  ctx.fillText("ゲームオーバー!",200,200)
    };
// タイミング関数 var intervalId = setInterval (function ()
{
   ctx.clearRect(0,0,400,400);
   ctx.font="20px Arial";
   ctx.fillText("スコア:"+score,5,15);
   スネークを描画します。
   スネークを移動します。
   apple.draw();
   ctx.strokeRect(0,0,400,400);
    },200);
//スネークキーコントロール $("body").keydown(function(event)
{
   console.log(イベント.キーコード);
    if(event.keyCode==37 &&snake.direction!="right")
     {
    snake.direction="左";
         }
    if(event.keyCode==38 &&snake.direction!="down")
     {
    snake.direction="上";
        }
    if(event.keyCode==39 &&snake.direction!="left")
     {
     snake.direction="右";
         }
     if(event.keyCode==40 &&snake.direction!="上")
     {
     snake.direction="下";
         }
              }
);
</スクリプト>
</本文>
</html> 

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

以下もご興味があるかもしれません:
  • JSはスネークゲームを実装する
  • スネークゲームのアイデアを実現するためのJavaScript
  • 古典的なスネークゲームの JavaScript 実装
  • jsを使用して簡単なスネークゲームを書く
  • JavaScript スネーク実装コード
  • JavaScript でスネーク ゲームを実装する
  • シンプルなスネークゲームを実現するネイティブjs
  • ネイティブ JS でスネーク ゲームを書く
  • コメント付きのスネークゲームを実装する js
  • JavaScript の絶妙なスネーク実装プロセス

<<:  MySQL 30軍事ルールの詳細な説明

>>:  Raspberry Pi 4 に Ubuntu 19.10 をインストールするための詳細なチュートリアル

推薦する

Linux bash: ./xxx: バイナリ ファイルを実行できません エラー

今日、Ubuntu 用の小さなツールを顧客に送りましたが、ユーザーはそれを受け取った後、実行できませ...

HTML doctype の役割の紹介

ドキュメント モードには次の 2 つの機能があります。 1. HTML文書を解析するためにどのHTM...

JavaScript BOMの構成と一般的なイベントの詳細な説明

目次1. 部品2. BOMの構成2. ウィンドウオブジェクトの共通イベント1. ウィンドウ読み込みイ...

MySQL トリガーの紹介、トリガーの作成、使用制限の分析

この記事では、例を使用して、MySQL トリガーの概要、トリガーの作成方法、およびトリガーの使用上の...

dockerでopenGaussデータベースを構成する方法の詳細な説明

Windowsユーザー向けDocker で openGauss を使用するopenGaussイメージ...

Vueのref属性の詳細な説明

要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS....

geo モジュールを使用して Nginx でホワイトリストを設定する例

元の構成: http { ...... limit_conn_zone $binary_remote...

Ubuntu 18.04にmysql5.7をインストールする

Ubuntu 18.04では参考までにmysql 5.7をインストールします。具体的な内容は以下のと...

非表示のフォームテキストを表示するJavaScript

この記事では、フォームの隠しテキストを表示するためのJavaScriptの具体的なコードを参考までに...

LinuxにNginxを素早くインストールする方法

目次nginxとは1. 必要な依存関係をダウンロードする2. nginxの圧縮パッケージをダウンロー...

Dockerでspringcloudプロジェクトをデプロイする方法

目次Dockerイメージのダウンロードmysqlとnacosを起動する独自のJavaプロジェクトを変...

Linux システムで tcpdump を使用してパケットをキャプチャする方法

まずサンプルコードを見てみましょう: 1. 共通パラメータ tcpdump -i eth0 -nn ...

MySQL 学習データベースバックアップの詳細な説明

目次1.DB、DBMS、SQL 2. データベースの特徴3. SQL分類4. MySQLを起動および...

ページのキャッシュを防ぐソリューション

解決: <head> に次のコードを追加します。コードをコピーコードは次のとおりです。 ...

ウェブページの色特性の分類

色特性の分類あらゆる色は、赤、緑、青の三原色から構成されます。三原色の中で暖色なのは赤だけなので、作...