スネークゲームのウェブ版を実装するための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 をインストールするための詳細なチュートリアル

推薦する

Ubuntu20.04 VNCのインストールと設定の実装

VNC はリモート デスクトップ プロトコルです。 VNC を使用して Ubuntu 20.04 を...

MySQL カウントを向上させる方法のまとめ

多くのプログラマーは MySQL に精通していると思います。多くの人が count の使い方と、最適...

Docker 経由で Redis 6.x クラスターをデプロイする方法

システム環境: Redis バージョン: 6.0.8 Docker バージョン: 19.03.12シ...

MySQL公式エクスポートツールmysqlpumpの使用

目次導入説明書実際の経験長所と短所総括する導入mysqlpump は mysqldump の派生です...

フロントエンドインタビューに必要なホモロジーとクロスドメインの詳細な説明

序文ご存知のとおり、ブラウザの相同性戦略とクロスドメイン方式も、フロントエンド面接で頻繁に遭遇する問...

コマンドを使用してMySQLデータベース(de1)を作成する方法

1. MYSQLに接続するフォーマット: mysql -h ホストアドレス -u ユーザー名 -p ...

Windows での MySQL 8.0.15 の詳細なインストールと使用のチュートリアル

この記事では、MySQL 8.0.15の詳細なインストールと使用方法のチュートリアルを参考までに紹介...

MySQLはフィールドからカンマ区切りの値を取り出して新しいフィールドを形成します

1例: 図1のフィールドを図2に分割するには アカウントIDを選択、 サブストリングインデックス(サ...

MySQL のロックとトランザクションの簡単な分析

MySQL 自体はファイルシステムに基づいて開発されましたが、ロックの存在が異なります。データベース...

MySQLソースコマンドの使い方の紹介

目次ネット上の質問から生まれた思考MySQL ソースコマンドネット上の質問から生まれた思考今日仕事中...

デザイン理論:フォントデザインの基礎

<br />言葉は、人間の思考や感情を伝えるために必然的に生み出されるものです。人類の文...

ミニプログラムにより、製品属性の選択や仕様の選択が可能

この記事では、ミニプログラムで製品属性選択または仕様選択を実装するための具体的なコードを参考までに共...

VMware 仮想マシンに固定 IP アドレスを設定する方法 (グラフィック チュートリアル)

1. メニューバーで「編集」→「仮想ネットワーク エディター」を選択して仮想ネットワーク エディタ...

SSL で Nginx リバース プロキシを構成する簡単な手順

序文リバース プロキシは、Web 経由で行われたリクエスト (http と https の両方) を...

Nginx の http リソース リクエスト制限の詳細な説明 (3 つの方法)

前提条件: nginx には、ngx_http_limit_conn_module モジュールと n...