Inhaltsverzeichnis
Bitte lesen Sie unbedingt die folgende Passage
Kommen Sie auf den Punkt
Heim WeChat-Applet WeChat-Entwicklung Beispiel für ein WeChat Mini-Programm – Snake-Tutorial

Beispiel für ein WeChat Mini-Programm – Snake-Tutorial

May 31, 2017 pm 04:58 PM

Vor langer Zeit, vor fast einem halben Jahr, veröffentlichte der Autor einen Artikel über die Entwicklung der OC-Version von Snake. Nach vielen Monaten kam das WeChat-Miniprogramm heraus, also habe ich es erneut geschrieben, als ich nichts zu tun hatte Eine Mini-Programmversion

Bitte lesen Sie unbedingt die folgende Passage

Der Autor arbeitet an iOS und die meisten Miniprogramme sind Front-End-Kenntnisse Hat noch nie zuvor eine ähnliche Entwicklung durchgeführt, daher ist das Schreiben des Codes beim Überprüfen der Informationen ziemlich schlecht. Bitte zögern Sie nicht, einen Kommentar abzugeben.

Kommen Sie auf den Punkt

Seitenlayout

Das offizielle Dokument enthält zunächst detaillierte Dokumente

Beispiel für ein WeChat Mini-Programm – Snake-Tutorial

Die Spieloberfläche ähnelt der vorherigen OC-Version, ich kann sie schließlich nicht so gestalten ein Profi. Warum sieht diese Schlange so aus? Der Inhalt ist ganz einfach, die obige Ansicht, innen eine Leinwand, eine Ansicht unten und 5

Schaltflächen

<view class="backView">
  <canvas canvas-id="snakeCanvas" class="canvas"/>
</view>
<view class="controlView">
    <button class="btnClass" bindtap="changeDirection" id="up">up</button>
    <view style="display:flex; height:33.33%">
        <button class="btnClass" bindtap="changeDirection" id="left">left</button>
        <button class="btnClass" bindtap="startGame" >{{btnTitle}}</button>
        <button class="btnClass" bindtap="changeDirection" id="right">right</button>
    </view>
    <button class="btnClass" bindtap="changeDirection" id="down">down</button>
</view>
Nach dem Login kopieren
. Werfen wir einen Blick auf das

wxss-Layout

Es gibt nicht viel Inhalt. Tatsächlich weiß ich nicht viel über CSS, aber es wurde möglicherweise mit :hankey: entfernt wäre eine bessere Layout-Methode, aber ich werde damit auskommen

Funktionale ImplementierungBeispiel für ein WeChat Mini-Programm – Snake-Tutorial

Das Layout ist immer noch sehr einfach, aber ich kann es nach einer Weile immer noch verstehen Als nächstes steht die Implementierung der Funktionslogik im Mittelpunkt. Die Programmiersprache ist natürlich js.

Übrigens, als ich js lernte, habe ich ein Buch voller Notizen geschrieben, aber ... vergiss es, lass die Vergangenheit vorbei und erwähne die Vergangenheit nicht.

Die Idee ist eigentlich die gleiche wie bei der OC-Version

Schlange: Erstellen Sie ein Array von Punktkoordinaten und zeichnen Sie dann ein Rechteck auf der Leinwand mit dem Koordinatenpunkt als Mittelpunkt

Essen: Koordinieren Sie zufällig einen Punkt, der Punkt darf nicht auf der Schlange liegen, sonst wird er erneut randomisiert

Bewegung der Schlange: Bewegen Sie einfach die Koordinaten des Schlangenschwanzes vor den Kopf der Schlange

Futter essen: Nach jeder Bewegung der Schlange wächst die Schlange, wenn die Koordinaten des Kopfes der Schlange mit den Koordinaten des Futters übereinstimmen.

Schlangenwachstum: Fügen Sie eine Punktkoordinate hinter dem Schwanz der Schlange hinzu

Das Spiel ist vorbei: Der Kopf der Schlange überschreitet die Grenze oder trifft auf ihren eigenen Körper, das Spiel endet

Schlange erschaffen

Nahrung erschaffen

Bewegung der Schlange
//创建蛇,初始为5节,nodeWH为矩形的边长
function createSnake(){
  nodes.splice(0, nodes.length) //清空数组
  for (var i = 4; i >= 0; i--) {
    var node = new Node(nodeWH * (i + 0.5), nodeWH * 0.5)
    nodes.push(node);
  }
}
Nach dem Login kopieren

Die Bewegung der Schlange hat eine Richtung. Verwenden Sie daher eine variable Richtung, um die Bewegungsrichtung der Schlange aufzuzeichnen. Wenn das Spiel beginnt, ist die Bewegung nach rechts die Standardeinstellung.

function createFood(){
  //矩形的边长为10,画布宽度为250,高度为350,所以x只能取5-245,y只能取5-345
  var x = parseInt(Math.random() * 24) * nodeWH + nodeWH * 0.5
  var y = parseInt(Math.random() * 34) * nodeWH + nodeWH * 0.5

  //如果食物的坐标在蛇身上,则重新创建
  for (var i = 0; i < nodes.length; i++) {
    var node = nodes[i]
    if (node.x == x && node.y == y) {
      createFood()
      return
    }
  }
  //Node为自定义的类,有两个属性x和y,表示坐标
  food = new Node(x,y)
}
Nach dem Login kopieren
Oben wurde erwähnt, dass die Bewegung der Schlange darin besteht, die Koordinaten des Schlangenschwanzes zur Vorderseite des Schlangenkopfes zu verschieben, aber diese Vorderseite ist nicht festgelegt, sondern wird anhand der Richtung beurteilt Bewegt sich nach rechts, die rechte Seite ist die Vorderseite

Essen und Schlangenwachstum

Nach jeder Bewegung ist es in Ordnung, zu beurteilen, ob die Koordinaten des Schlangenkopfes mit denen übereinstimmen Koordinaten des Futters. Nach dem Verzehr des Futters wird die Länge der Schlange erhöht und ein neues Futter erstellt.

Im obigen Code ist lastPoint die Koordinate des Schwanzes der Schlange vor jeder Bewegung Wenn nach dem Bewegen Futter gefressen wird, geben Sie vor dem Bewegen etwas direkt in den Schwanz der Schlange.

Das Spiel ist vorbei.

function isEatedFood(){
  var head = nodes[0]
  if (head.x == food.x && head.y == food.y) {
    score++
    nodes.push(lastPoint)
    createFood()
  }
}
Nach dem Login kopieren
Nach jedem Zug müssen Sie beurteilen, ob die Schlange Der Kopf überschreitet die Leinwand oder trifft den eigenen Körper

Schnittstellenzeichnung

Jede Bewegung muss gezeichnet werden, daher ist ein Timer erforderlich. Der Autor verwendet setInterval

function isDestroy(){
  var head = nodes[0]
  //判断是否撞到自己身体
  for (var i = 1; i < nodes.length; i++) {
    var node = nodes[i]
    if (head.x == node.x && head.y == node.y) {
      gameOver()
    }
  }
  //判断水平方向是否越界
  if (head.x < 5 || head.x > 245) {
    gameOver()
  }
  //判断垂直方向是否越界
  if (head.y < 5 || head.y > 345) {
    gameOver()
  }
}
Nach dem Login kopieren

Im Internet wird gesagt, dass die Leistung von setInterval nicht sehr gut ist. Es wird empfohlen, requestAnimationFrame zu verwenden, aber leider weiß der Autor nicht, wie das geht. Genauer gesagt weiß ich nicht, wie man pausiert >

Mit der oben genannten Methode kann die Bewegung der Schlange und das Neuzeichnen der Schnittstelle realisiert werden. Bei jeder Ausführung von animateId wird ihr jedoch ein neuer Wert zugewiesen, sodass die Verwendung von cancelAnimationFrame(animateId) nicht angehalten werden kann . Wenn es einen Meister gibt, der sich mit Front-End-Entwicklung auskennt, leiten Sie mich bitte an

function move(){
  lastPoint = nodes[nodes.length - 1]
  var node = nodes[0]
  var newNode = {x: node.x, y: node.y}
  switch (direction) {
    case &#39;up&#39;:
      newNode.y -= nodeWH;
    break;
    case &#39;left&#39;:
      newNode.x -= nodeWH;
    break;
    case &#39;right&#39;:
      newNode.x += nodeWH;
    break;
    case &#39;down&#39;:
      newNode.y += nodeWH;
    break;
  } 
  nodes.pop()
  nodes.unshift(newNode)
  moveEnd()
}

function startGame() {
  if (isGameOver) {
    direction = &#39;right&#39;
    createSnake()
    createFood()
    score = 0
    isGameOver = false
  }
  timer = setInterval(move,300)
}
Nach dem Login kopieren
Fast die ganze Logik ist so. Wenn Sie gerne lernen, können Sie es selbst ausprobieren

[Verwandte Empfehlungen ]
var animateId = 0
function move(){
    .
    .
    .
    animateId = requestAnimationFrame(move)
}
function startGame(){
    .
    .
    .
    animateId = requestAnimationFrame(move)
}
Nach dem Login kopieren

1.

Teilen Sie einen in HTML5 implementierten Schlangen-Spezialeffektcode

2.

Ein Codebeispiel für das Schreiben eines Schlangenspiels in Python

3 .

Ein Codebeispiel zur Implementierung von Snake in Java

4.

[HTML5 Code Art] Ein Snake-Spiel mit 17 Codezeilen

5 .

JavaScript ist einfach und gierig, grundsätzlich objektorientiert

Das obige ist der detaillierte Inhalt vonBeispiel für ein WeChat Mini-Programm – Snake-Tutorial. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Entwickeln Sie ein WeChat-Applet mit Python Entwickeln Sie ein WeChat-Applet mit Python Jun 17, 2023 pm 06:34 PM

Mit der Popularität mobiler Internettechnologie und Smartphones ist WeChat zu einer unverzichtbaren Anwendung im Leben der Menschen geworden. Mit WeChat-Miniprogrammen können Benutzer Miniprogramme direkt verwenden, um einige einfache Anforderungen zu erfüllen, ohne Anwendungen herunterladen und installieren zu müssen. In diesem Artikel wird erläutert, wie Sie mit Python ein WeChat-Applet entwickeln. 1. Vorbereitung Bevor Sie Python zum Entwickeln des WeChat-Applets verwenden, müssen Sie die entsprechende Python-Bibliothek installieren. Hier empfiehlt es sich, die beiden Bibliotheken wxpy und itchat zu verwenden. wxpy ist eine WeChat-Maschine

Können kleine Programme reagieren? Können kleine Programme reagieren? Dec 29, 2022 am 11:06 AM

Miniprogramme können React verwenden. 1. Implementieren Sie einen Renderer basierend auf „React-Reconciler“ und generieren Sie eine Miniprogrammkomponente zum Parsen und Rendern von DSL. 3. Installieren Sie npm und führen Sie den Entwickler-Build aus npm im Tool; 4. Führen Sie das Paket auf Ihrer eigenen Seite ein und verwenden Sie dann die API, um die Entwicklung abzuschließen.

Implementieren Sie Kartenumdreheffekte in WeChat-Miniprogrammen Implementieren Sie Kartenumdreheffekte in WeChat-Miniprogrammen Nov 21, 2023 am 10:55 AM

Implementieren von Kartenumdreheffekten in WeChat-Miniprogrammen In WeChat-Miniprogrammen ist die Implementierung von Kartenumdreheffekten ein häufiger Animationseffekt, der die Benutzererfahrung und die Attraktivität von Schnittstelleninteraktionen verbessern kann. Im Folgenden wird detailliert beschrieben, wie der Kartenumdrehungseffekt im WeChat-Applet implementiert wird, und relevante Codebeispiele bereitgestellt. Zunächst müssen Sie in der Seitenlayoutdatei des Miniprogramms zwei Kartenelemente definieren, eines für die Anzeige des vorderen Inhalts und eines für die Anzeige des hinteren Inhalts. Der spezifische Beispielcode lautet wie folgt: &lt;!--index.wxml-. -&gt;&l

Alipay hat das Miniprogramm „Chinese Character Picking-Rare Characters' gestartet, um die Bibliothek seltener Charaktere zu sammeln und zu ergänzen Alipay hat das Miniprogramm „Chinese Character Picking-Rare Characters' gestartet, um die Bibliothek seltener Charaktere zu sammeln und zu ergänzen Oct 31, 2023 pm 09:25 PM

Laut Nachrichten dieser Website vom 31. Oktober und 27. Mai dieses Jahres kündigte die Ant Group den Start des „Chinese Character Picking Project“ an und leitete kürzlich neue Fortschritte ein: Alipay startete das Miniprogramm „Chinese Character Picking – Uncommon Characters“. um Sammlungen der Gesellschaft zu sammeln. Seltene Charaktere ergänzen die Bibliothek seltener Charaktere und bieten unterschiedliche Eingabeerlebnisse für seltene Charaktere, um die Eingabemethode für seltene Charaktere in Alipay zu verbessern. Derzeit können Benutzer das Applet „Ungewöhnliche Zeichen“ aufrufen, indem sie nach Schlüsselwörtern wie „Aufnehmen chinesischer Zeichen“ und „Seltene Zeichen“ suchen. Im Miniprogramm können Benutzer Bilder von seltenen Zeichen einreichen, die vom System nicht erkannt und eingegeben wurden. Nach der Bestätigung nehmen Alipay-Ingenieure zusätzliche Einträge in die Schriftartenbibliothek vor. Auf dieser Website wurde festgestellt, dass Benutzer im Miniprogramm auch die neueste Eingabemethode zur Wortteilung nutzen können. Diese Eingabemethode ist für seltene Wörter mit unklarer Aussprache konzipiert. Demontage durch den Benutzer

Wie uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreicht Wie uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreicht Oct 20, 2023 pm 02:12 PM

Wie Uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreichen kann, erfordert spezifische Codebeispiele. Mit der Entwicklung des mobilen Internets und der Popularität von Smartphones sind Miniprogramme und H5 zu unverzichtbaren Anwendungsformen geworden. Als plattformübergreifendes Entwicklungsframework kann Uniapp die Konvertierung zwischen kleinen Programmen und H5 basierend auf einer Reihe von Codes schnell realisieren und so die Entwicklungseffizienz erheblich verbessern. In diesem Artikel wird vorgestellt, wie Uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreichen kann, und es werden konkrete Codebeispiele gegeben. 1. Einführung in uniapp unia

Tutorial zum Schreiben eines einfachen Chat-Programms in Python Tutorial zum Schreiben eines einfachen Chat-Programms in Python May 08, 2023 pm 06:37 PM

Implementierungsidee x01 Servereinrichtung Zunächst wird auf der Serverseite ein Socket zum Empfangen von Nachrichten verwendet. Jedes Mal, wenn eine Socket-Anfrage angenommen wird, wird ein neuer Thread geöffnet, um die Verteilung und Annahme von Nachrichten zu verwalten Um alle Threads zu verwalten und damit die Verarbeitung verschiedener Funktionen des Chatrooms zu realisieren, ist die Einrichtung des x02-Clients viel einfacher als die des Servers. Die Funktion des Clients besteht lediglich darin, Nachrichten zu senden und zu empfangen und bestimmte Zeichen einzugeben Um die Verwendung unterschiedlicher Funktionen zu erreichen, müssen Sie daher auf der Clientseite nur zwei Threads verwenden, einen für den Empfang von Nachrichten und einen für das Senden von Nachrichten liegt daran, nur

So erhalten Sie eine Mitgliedschaft im WeChat-Miniprogramm So erhalten Sie eine Mitgliedschaft im WeChat-Miniprogramm May 07, 2024 am 10:24 AM

1. Öffnen Sie das WeChat-Miniprogramm und rufen Sie die entsprechende Miniprogrammseite auf. 2. Den mitgliederbezogenen Zugang finden Sie auf der Miniprogrammseite. Normalerweise befindet sich der Mitgliedereingang in der unteren Navigationsleiste oder im persönlichen Zentrum. 3. Klicken Sie auf das Mitgliedschaftsportal, um die Seite mit dem Mitgliedsantrag aufzurufen. 4. Geben Sie auf der Seite des Mitgliedsantrags relevante Informationen wie Mobiltelefonnummer, Name usw. ein. Nachdem Sie die Informationen ausgefüllt haben, reichen Sie den Antrag ein. 5. Das Miniprogramm prüft den Mitgliedschaftsantrag. Nach bestandener Prüfung kann der Benutzer Mitglied des WeChat-Miniprogramms werden. 6. Als Mitglied genießen Benutzer mehr Mitgliedschaftsrechte, wie z. B. Punkte, Gutscheine, exklusive Aktivitäten für Mitglieder usw.

So bedienen Sie die Miniprogramm-Registrierung So bedienen Sie die Miniprogramm-Registrierung Sep 13, 2023 pm 04:36 PM

Schritte zur Miniprogramm-Registrierung: 1. Erstellen Sie Kopien von Personalausweisen, Unternehmenslizenzen, juristischen Personenausweisen und anderen Archivierungsmaterialien. 2. Melden Sie sich beim Miniprogramm-Verwaltungshintergrund an. Wählen Sie „Grundeinstellungen“; 5. Geben Sie die Anmeldeinformationen ein; 6. Laden Sie die Anmeldematerialien hoch; 7. Senden Sie den Anmeldeantrag; 8. Warten Sie auf die Überprüfungsergebnisse. Wenn die Einreichung nicht bestanden wird, nehmen Sie basierend auf den Gründen Änderungen vor und den Einreichungsantrag erneut einreichen. 9. Die Folgemaßnahmen für die Einreichung sind Can.

See all articles