Ich habe ein Browsergame namens "Poop Maker" gemacht.
Es ist ein Spiel, das um die Länge des Kackens konkurriert und eine Online-Ranglistenfunktion hat. Die verwendeten Techniken sind Django, Vue usw. Dieses Mal möchte ich über die Technologie schreiben, die von diesem Poop-Hersteller verwendet wird.
Ich habe Vue als Front-End-Framework verwendet. Vue ist ein komponentenorientiertes Framework, mit dem Sie Module in Einheiten definieren können, die als SFC (Single File Component) bezeichnet werden. Zum Beispiel wie ↓.
python
<script>
export default {
data () {
return {
}
}
}
</script>
<template>
<div class="">Hello, World!</div>
</template>
<style lang="scss" scoped>
</style>
SFC ist eine Komponente, die JavaScript, HTML und CSS in einer Datei kombiniert. Sie können effizient entwickeln, indem Sie diese in einer Datei kombinieren. Sie können Daten an Attribute übergeben, indem Sie Komponenten wie ↓ verwenden.
python
<my-component :my-data="1" />
Die an das Attribut übergebenen Daten werden von SFC an eine Variable im Objekt namens "Requisiten" weitergegeben. Wenn Sie beispielsweise den Wert von "my-data" in ↑ ändern, wird diese Variable in Echtzeit in SFC wiedergegeben. Mit dieser Funktion "Requisiten" können Sie einfach eine Komponente mit einem Status definieren.
Mit dieser Entwicklung dachte ich, dass das Spiel eine Masse von Zustandsübergängen ist. Der Statusübergang ist eine Technologie, die das Verhalten von Modulen usw. ändert, indem eine Variable vorbereitet wird, die den Status definiert, und der Wert dieser Variablen nacheinander geändert wird.
Zum Beispiel, wenn Sie eine Variable wie ↓ haben
python
const status = 'first'
Diese Variable wird als ↓ bezeichnet.
python
switch (status) {
case 'first': /* TODO */ break
case 'running': /* TODO */ break
case 'waiting': /* TODO */ break
}
Der Zustandsübergang kann realisiert werden, indem der Prozess gemäß dem Zustand im "Fall" der "Schalter" -Anweisung geschrieben wird. Die Variablen mit Zuständen werden während der Verarbeitung jedes Zustands geändert.
Indem den "Requisiten" der vorherigen Komponente ein solcher Zustand zugewiesen wird, ist es möglich, dass die Komponente einen Zustandsübergang ausführt. Zum Beispiel wie ↓.
python
<my-component :status="myComponentStatus" />
Führen Sie innerhalb der Komponente eine Schleife mit "setInterval" durch, um diesen Status zu überwachen.
python
mounted () {
this.iid = setInterval(this.update, 16.66)
},
methods: {
update () {
switch (this.status) {
case 'first': /* TODO */ break
case 'running': /* TODO */ break
case 'waiting': /* TODO */ break
}
},
},
Poop-Maker-Objekte haben komplexe Zustände, aber im Grunde arbeiten sie mit solchen Zustandsübergängen.
Ich habe Zustandsübergänge durch Parsen von Zeichenketten gelernt, aber ich habe festgestellt, dass diese Entwicklung auch auf Spiele angewendet werden kann. Das Spiel hat komplexe Bedingungen, aber es besteht eine hohe Wahrscheinlichkeit, dass Ihr Anus durchsticht, wenn Sie versuchen, alle auf einmal zu handhaben. Es wird jedoch einfacher sein, sich zu entwickeln, indem das Verhalten des gesamten Spiels in Einheiten von Staaten aufgeteilt und gesteuert wird.
Die Nützlichkeit von Zustandsübergängen in der Spieleentwicklung ist sicher, und ich dachte, dass das, was Sie machen können, sich unterscheiden wird, wenn Sie dies nicht wissen. Wenn du es nicht weißt, wirst du am Ende ein verdammtes Spiel machen, aber wenn du es weißt, kannst du ein verdammtes Spiel wie ein Poop Maker machen.
Es gibt ein berühmtes GoF-Statusmuster als Entwurfsmuster für die Verwaltung des Status, aber dieses Mal habe ich es nicht verwendet.
Ich musste den Poop Maker nicht einmal verwenden, da es sich um eine relativ kleine App handelte. Je nach Größe kann es jedoch erforderlich sein, die Verwendung dieser Entwurfsmuster zu überprüfen.
Es ist eine stressige Welt, aber lasst uns viele Poop-Macher rausschmeißen und sie erfrischend machen.
das ist alles.