Native JS-Canvas zum Erzielen einer einfachen Schlange

Native JS-Canvas zum Erzielen einer einfachen Schlange

In diesem Artikel wird der spezifische Code von JS Canvas zur Implementierung eines einfachen Schlangenspiels zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt

Js native Schlange: Leinwand

HTML

<canvas id="kann"></canvas>

CSS

#dürfen{
 Hintergrund: #000000;
 Höhe: 400px;
 Breite: 850px;
}

JS

//Öffentlicher Abschnitt var blockSize = 10;
//Höhe und Breite der Karte var mapW = 300;
var mapH = 150;
//historische Lebensmittel var
var historyfood = neues Array();
//Lebensmittel-Array var img = neues Bild()
var arrFood = ["ananas.png","hamburg.png","wassermelone.png"]
Geschichteessen = [{x: 0,y:0}];
//Standardwert von Greedy Snake var snake = [{x:3,y:0},{x:2,y:0},{x:1,y:0}]

//Schlangenrichtung var directionX = 1;
var RichtungY = 0;
//Fügen Sie eine Flagge hinzu, um zu markieren, ob das Essen gegessen wurde //Standardwert: nicht gegessen var isFood = false;
//Spielstatus beurteilen //Standardspiel wird fortgesetzt var gameState = false;

//Beschränken Sie die Bewegungsrichtung der Schlange, sodass sie nicht umgekehrt wird. var lockleft = true;
var lockright = true;
var Sperre = true;
var lockdown = true;

//Snake-Punktzahl var count = 0;
//Schlangengeschwindigkeit var Geschwindigkeit = 1000 - (Anzahl + 5);
$(Funktion () {
 $("#divContainer").Höhe($("#can").Höhe());
 //1, hole das Canvas-Objekt var can = document.getElementById("can");
 //2. Holen Sie sich die Zeichen-Toolbox. var tools = can.getContext('2d');
 tools.beginPath();
 //Standardwerte für Lebensmittel festlegen var XY = Randomfood();
 konsole.log(XY);
 var x1 = ZufälligesEssen().x;
 var y1 = ZufälligesEssen().y;
 img.src = "/aimless/img/GluttonousSnakeFood/" + arrFood[Math.floor(Math.random() * arrFood.length)];
 //Steuere die Bewegung der Schlange document.addEventListener('keydown',function (e){
  Schalter (e.keyCode) {
   Fall 38:
    wenn (Sperre){
     RichtungX = 0;
     RichtungY = -1;
     Sperrung = falsch;
     Sperren Sie links = wahr;
     Sperrrecht = wahr;
    }
    brechen;
   Fall 40:
    wenn (Sperre){
     RichtungX = 0;
     RichtungY = 1;
     Sperre = falsch;
     Sperren Sie links = wahr;
     Sperrrecht = wahr;
    }
    brechen;
   Fall 37:
    wenn (links sperren){
     RichtungX = - 1;
     RichtungY = 0;
     Sperrrecht = falsch;
     Sperre = wahr;
     Sperrung = wahr;
    }
    brechen;
   Fall 39:
    wenn (rechts sperren){
     RichtungX = 1;
     RichtungY = 0;
     Sperren Sie links = falsch;
     Sperre = wahr;
     Sperrung = wahr;
    }
    brechen;
  }
 })
 setzeIntervalSnake(Werkzeuge, x1, y1);
 //4, finde den Standort})


Funktion setIntervalSnake(Tools,x1,y1){
 setzeIntervall(Funktion (){
  wenn (Spielstatus) {
   zurückkehren;
  }
  //1, Zeichenbrett löschentools.clearRect(0,0,850,420);
  var alterKopf = Schlange[0];

  wenn (alterKopf.x < 0 || alterKopf.y < 0 || alterKopf.x * Blockgröße >= MapW || alterKopf.y * Blockgröße >= MapH){
   Spielstatus = wahr;
   Alarm("Spiel vorbei");
  }anders {
   //Schlange bewegt sich, wenn (Schlange[0].x * Blockgröße === x1 und Schlange[0].y * Blockgröße === y1){
    istEssen = wahr;
   } anders {
    Schlange.pop()
   }
   var neuerKopf = {
    x: alterKopf.x + RichtungX,
    y: alterKopf.y + RichtungY
   }
   snake.unshift(neuerKopf);
  }
  //2. Bestimme, ob das Essen gegessen wurde. Aktualisiere, wenn es gegessen wurde. Aktualisiere nicht, wenn es nicht gegessen wurde. if (isFood) {
   Anzahl = Anzahl + 1;
   $("#Anzahl").html(Anzahl);
   x1 = ZufälligesEssen().x;
   y1 = ZufälligesEssen().y;
   img.src = "/aimless/img/GluttonousSnakeFood/" + arrFood[Math.floor(Math.random() * arrFood.length)];
   istEssen = falsch;
  }
  tools.drawImage(img,x1,y1,blockGröße,blockGröße);
  //Snake-Body-Array var Thesnakebody = neues Array();
  //3, zeichne eine Schlange für (var i = 0; i < snake.length; i++){
   wenn (i == 0){
    tools.fillStyle = "#9933CC";
   } anders {
    var neuerKopf1 = {
     x: Schlange[i].x,
     y: Schlange[i].y
    }
    Der Schlangenkörper.unshift(neuerKopf1);
    tools.fillStyle = "#33adcc";
   }
   tools.fillRect(snake[i].x * Blockgröße,snake[i].y * Blockgröße,Blockgröße,Blockgröße);
  }
  // //Beurteilen Sie, ob der Schlangenkopf den Schlangenkörper gebissen hat Thesnakebody.forEach(item=>{
   wenn(item.x == snake[0].x && item.y == snake[0].y){
    Spielstatus = wahr;
    setzeIntervalSnake(Werkzeuge, x1, y1);
   }
  })
  //4, zeichne die Karte var width = Math.round($("#can").width() / blockSize);
  var Höhe = Math.round($("#can").Höhe() / Blockgröße);
  für (var i = 1; i < Breite; i++){
   tools.moveTo(0,Blockgröße * i);
   tools.lineTo($("#can").width(),blockSize * i);
  }
  für (var i = 1; i < Höhe; i++){
   tools.moveTo(blockGröße * i,0);
   tools.lineTo(blockSize * i,$("#can").height());
  }
  tools.strokeStyle = "#FFFFFF";
  //5, Zeichenwerkzeuge.Stroke();
 },Geschwindigkeit / 3);
}


//Zufälliges Essen Funktion Randomfood() {
 var RandomX = Math.floor(Math.random() * mapW / Blockgröße) * Blockgröße;
 var RandomY = Math.floor(Math.random() * mapH / Blockgröße) * Blockgröße;
 setzeIntervall(Funktion (){
  Schlange.fürJedes(item=>{
   console.log(ZufälligX/Blockgröße, ZufälligY/Blockgröße);
   // Konsole.log(Element.x, Element.y);
   wenn (item.x == RandomX / Blockgröße und item.y == RandomY / Blockgröße) {
    returniere Randomfood();
   } anders {
    zurückkehren ;
   }
  })
 }, 10 / 3);
 var neuZufällig = {
  x: ZufälligesX,
  y: ZufälligY
 }
 gibt newRandom zurück;
}

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • In JS geschriebenes Schlangenspiel (persönliche Übung)
  • JavaScript Snake Vollversion (Quellcode)
  • js zur Realisierung des Schlangenspiels (leicht verständlich)
  • Ein vollständiges Beispiel des in JS implementierten Schlangenspiels
  • Schlangenspiel mit 20 Zeilen JS-Code implementiert
  • js, um ein kleines Spiel von Greedy Snake zu schreiben
  • Ideen und Quellcode zur Implementierung des js-Snake-Spiels
  • Javascript Snake Implementierungscode
  • JavaScript zum Erstellen eines einfachen Schlangenspiels
  • Ein vollständiges Beispiel der Webversion des Schlangenspiels, implementiert in nativem js

<<:  Beheben Sie das Problem, dass der Dienst nicht gestartet werden kann, wenn die dekomprimierte Version von MySQL 5.7.18 Winx64 unter Win7 x64 installiert wird

>>:  Tutorial-Diagramm zur Installation von Zabbix2.4 unter Centos6.5

Artikel empfehlen

So konfigurieren Sie Openbox für den Linux-Desktop (empfohlen)

Dieser Artikel ist Teil einer Sonderserie zu den ...

Detaillierte Erklärung des Hintergrund-Positionsprozentsatzprinzips

Als ich heute jemandem beim Anpassen des Codes ha...

JavaScript implementiert die Klick-Umschaltfunktion

In diesem Artikelbeispiel wird der spezifische Ja...

Das WeChat-Applet ermöglicht horizontales und vertikales Scrollen

In diesem Artikelbeispiel wird der spezifische Co...

So fragen Sie Datum und Uhrzeit in MySQL ab

Vorwort: Bei der Projektentwicklung werden in ein...

Zusammenfassung der Unterschiede zwischen HTML, SHHTML und XHTML

Zum Beispiel: <u> Dies hat kein Endzeichen u...

Besprechen Sie die Anwendung von Mixin in Vue

Mixins bieten eine sehr flexible Möglichkeit, wie...

Eine Minute, um die Laufruhe von HTML+Vue+Element-UI zu erleben

Technik-Fan html-Webseite, müssen Sie wissen Von ...

Eine kurze Analyse der parallelen WriteSet-Replikation von MySQL

【Historischer Hintergrund】 Ich arbeite seit drei ...

Tutorial zu den Grundlagen von JavaScript und JQuery Framework

Inhaltsverzeichnis 1. JS-Objekt DOM –1, Funktion ...

Mehrere Möglichkeiten zum Kapseln von Breadcrumb-Funktionskomponenten in Vue3

Inhaltsverzeichnis Vorwort 1. Warum brauchen wir ...