Verwenden Sie js, um ein einfaches Schlangenspiel zu schreiben

Verwenden Sie js, um ein einfaches Schlangenspiel zu schreiben

In diesem Artikel wird der spezifische Code eines einfachen Schlangenspiels, das in js geschrieben wurde, zu Ihrer Information veröffentlicht. Der spezifische Inhalt ist wie folgt

Der Code lautet wie folgt:

HTML 5 Teil

<!DOCTYPE html>
<html lang="de">
<Kopf>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-kompatibel" content="IE=edge">
    <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0">
    <title>Gierige Schlange</title>
    <Stil>
        #Szene{
            Breite: 800px;
            Höhe: 600px;
            Rand: 1px durchgezogen #000;
            Rand: 50px automatisch;
            Hintergrundfarbe: Aliceblau;
            Position: relativ;
            Überlauf: versteckt;
        }
       .Kopf{
           Position: absolut;
           Breite: 20px;
           Höhe: 20px;
           Hintergrundfarbe: #000;
       }
       .Schwanz{
        Position: absolut;
           Breite: 20px;
           Höhe: 20px;
           Hintergrundfarbe: grau;       
       }
    </Stil>
</Kopf>
<Text>
    <div id="Szene">

    </div>
</body>
</html>
<script src="tools.js"></script>
<script src="../Dateityp/snake.js"></script>
<script src="essen.js"></script>
<script src="spiel.js"></script>

js-Teil

tools.js

Funktion getStyle(Element, Stilobjekt) {
    für (const key in styleObj) {
        ele.style[Schlüssel] = styleObj[Schlüssel];
    }   
}
Funktion getRandom(a, b) {
    gibt Math.floor(Math.random() * (b - a) + a +1) zurück
}

Schlange.js

Funktion Schlange() {
    diese.scence = document.querySelector('#scence');
    dieser.body = [
        [0, 0, 'grau', null],
        [0, 1, 'grau', null],
        [0, 2, '#000', null]
    ];
    this.dir = "richtig";
    this.lastdir = "richtig";
    diese.Breite = 20;
    diese.Höhe = 20;
    this.scence_w = Szene.OffsetWidth;
    this.scence_h = Szene.OffsetHeight;
}
Snake.prototype.found = Funktion () {
    für (lass i = 0; i < diese.Body.Länge; i++) {
        wenn (dieser.body[i][3] == null) {
            dies.body[i][3] = Dokument.createElement('div');
        }
        getStyle(diesen.body[i][3], {
            Breite: diese.Breite + 'px',
            Höhe: diese.Höhe + 'px',
            Position: 'absolut',
            oben: diese.Höhe * (dieser.Körper[i][0]) + 'px',
            links: diese.Breite * (dieser.Body[i][1]) + 'px',
            Hintergrundfarbe: this.body[i][2]
        });
        diese.Szene.appendChild(dieser.Körper[i][3]);
    }
}
//Bewegungsfunktion Snake.prototype.move = function () {
    var Länge = dieser.Body.Länge;
    für (sei i = 0; i < Länge - 1; i++) {
        dieser.Körper[i][0] = dieser.Körper[i + 1][0];
        dieser.Körper[i][1] = dieser.Körper[i + 1][1];
    }
    let snakehead = this.body[Länge - 1]
    Schalter (dieses.dir) {
        Fall 'richtig':
            Schlangenkopf[1] += 1;
            brechen;
        Fall 'links':
            Schlangenkopf[1] -= 1
            brechen;
        Fall 'oben':
            Schlangenkopf[0] -= 1
            brechen;
        Fall 'down':
            Schlangenkopf[0] += 1
            brechen;
    }
    dieses.letztesVerzeichnis = dieses.Verzeichnis;
    Schlange.gefunden();
}
// Zeitliche Steuerung der Bewegung Snake.prototype.shift = function () {
    document.onkeydown = (e) => {
        e = e || Fenster.Ereignis;
        let key = e.keyCode;
        Schalter (Schlüssel) {
            Fall 39:
                wenn (this.lastdir == 'links') {
                    this.dir = "links"
                } anders {
                    this.dir = "richtig"
                };
                brechen;
            Fall 37:
                wenn (this.lastdir == 'richtig') {
                    this.dir = "richtig"
                } anders {
                    this.dir = "links"
                };
                brechen;
            Fall 38:
                wenn (this.lastdir == 'down') {
                    this.dir = "nach unten"
                } anders {
                    this.dir = "nach oben"
                };
                brechen;
            Fall 40:
                wenn (this.lastdir == 'up') {
                    this.dir = "nach oben"
                } anders {
                    this.dir = "nach unten"
                };
                brechen;
        }
    }
}

//Spiel vorbei Snake.prototype.over = function () {
    lass oben = dieser.Körper[diese.Körperlänge - 1][0];
    lass links = dieser.Körper[diese.Körperlänge - 1][1];
    lass Breite = this.scence_w / this.width - 1;
    lass Höhe = this.scence_w / this.height - 1;
    if (oben < 0 || links < 0 || oben > Breite || links > Höhe) {
        ClearInterval(Zeit-ID)
        Alarm (,Spiel ist vorbei‘);
    }
    für (lass i = 0; i < this.body.length - 1; i++) {
        wenn (oben == dieser.body[i][0] && links == dieser.body[i][1]) {
            ClearInterval(Zeit-ID)
            Alarm (,Spiel ist vorbei‘);
        }
    }
}


lass Schlange = neue Schlange();
Schlange.gefunden();
Schlange.Verschiebung();
Zeit-ID = Intervall festlegen (Funktion () {
    Schlange.bewegen();
    essen.essen();
    Schlange.über()
}, 100)

essen.js

Funktion Essen() {
  diese.scence = document.querySelector('#scence');
  diese.Breite = 20;
  diese.Höhe = 20;
  dieser.body = [-1, -1, 'rot', null];
  this.scence_w = Szene.OffsetWidth;
  this.scence_h = Szene.OffsetHeight;
  
}
//Lebensmittelerzeugung Food.prototype.crteate = function () {
  dieser.body[1] = getRandom(0, diese.scence_w / diese.width-1);
  dieser.body[0] = getRandom(0, diese.scence_h / diese.height-1);
  dies.body[3] = document.createElement('div');
  getStyle(diesen.body[3], {
    Breite: diese.Breite + 'px',
    Höhe: diese.Höhe + 'px',
    Position: 'absolut',
    oben: diese.Höhe * (dieser.Körper[0] ) + 'px',
    links: diese.Breite * (dieser.Körper[1] ) + 'px',
    Hintergrundfarbe: this.body[2],
    borderRadius: '50%',
  });
  diese.Szene.appendChild(dieser.Körper[3]);


}
//Die Schlange frisst das Futter Food.prototype.eat=function(){
  // const new = [0, 0, 'grau', null]
wenn(Schlange.Körper[Schlange.Körper.Länge-1][0]==dieser.Körper[0] && Schlange.Körper[Schlange.Körper.Länge-1][1]==dieser.Körper[1]){
  diese.Szene.entfernenKind(dieser.Körper[3]);
  dies.crteate();
  Schlange.body.unshift([-1,-1,"grau",null])
}
}
lass Essen = neues Essen();
essen.crteate();
essen.essen();

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:
  • JS implementiert das Schlangenspiel
  • JavaScript, um die Idee des Schlangenspiels umzusetzen
  • JavaScript-Implementierung des klassischen Schlangenspiels
  • JavaScript Snake-Implementierungscode
  • JavaScript zur Implementierung der Webversion des Schlangenspiels
  • Implementierung des Snake-Spiels in JavaScript
  • Natives JS zur Realisierung eines einfachen Schlangenspiels
  • Snake-Spiel mit nativem JS schreiben
  • js um das Schlangenspiel mit Kommentaren zu implementieren
  • Exquisiter Snake-Implementierungsprozess in JavaScript

<<:  Detaillierte Erklärung der Verwendung und Unterschiede von MySQL-Ansichten und -Indizes

>>:  Detaillierte Erklärung zur Verwendung der Linux-Umleitung

Artikel empfehlen

So legen Sie einen gepunkteten Rahmen in HTML fest

Verwenden Sie CSS-Stile und HTML-Tag-Elemente Um ...

Erstellen privater Mitglieder in JavaScript

Inhaltsverzeichnis 1. Verwende Closures 2. Verwen...

JavaScript implementiert Feuerwerkseffekte mit Soundeffekten

Ich habe eine halbe Stunde gebraucht, um den Code...

Docker verwendet das Tool nsenter, um in den Container zu gelangen

Bei der Verwendung von Docker-Containern ist es b...

Grundlegende Verwendung der JS-Datumssteuerung My97DatePicker

My97DatePicker ist ein sehr flexibles und benutze...

MySQL-Datenbanktabelle und Datenbankpartitionierungsstrategie

Lassen Sie uns zunächst darüber sprechen, warum w...

Detaillierte Erläuterung der praktischen Anwendung des HTML-Tabellenlayouts

Wann wird die Tabelle eingesetzt? Tabellen werden...

So verwenden Sie Binlog zur Datenwiederherstellung in MySQL

Vorwort Kürzlich wurden Daten online falsch bearb...

Beispielanalyse der Verwendung von GROUP_CONCAT in MySQL

Dieser Artikel beschreibt anhand eines Beispiels ...

CSS Sticky Footer Mehrere Implementierungen

Was ist „Sticky Footer“ Der sogenannte „Sticky Fo...

So bereinigen Sie schnell Milliarden von Daten in einer MySQL-Datenbank

Heute habe ich eine Festplattenalarm-Ausnahme erh...