More
Wie man ein fortgeschrittenes endloses Laufspiel mit Flutter, dem Casual Games Toolkit und Back4app erstellt
50 min
einführung casual games sind beliebt wegen ihrer einfachheit und fesselnden spielweise, die oft ein breites publikum mit leicht zu erlernenden mechaniken anzieht in diesem fortgeschrittenen tutorial werden wir ein voll funktionsfähiges endless runner spiel mit dem casual games toolkit von flutter entwickeln wir werden back4app integrieren, um das backend des spiels zu verwalten, benutzer daten wie highscores, spielerprofile und erfolge zu speichern wir werden auch in fortgeschrittene themen wie zustandsverwaltung, leistungsoptimierung und bereitstellungsstrategien eintauchen am ende dieses tutorials werden sie ein poliertes endless runner spiel haben, das bereit für die bereitstellung auf android und ios ist, komplett mit datenpersistenz und erweiterten funktionen voraussetzungen bevor sie beginnen, stellen sie sicher, dass sie folgendes haben flutter entwicklungsumgebung installiert und konfiguriert folgen sie der offiziellen flutter installationsanleitung https //flutter dev/docs/get started/install , wenn sie es noch nicht eingerichtet haben fortgeschrittene flutter kenntnisse vertrautheit mit flutter widgets, zustandsverwaltung und asynchroner programmierung back4app konto melden sie sich für ein kostenloses konto bei back4app https //www back4app com , an verständnis von back4app grundkenntnisse in der erstellung von projekten und der verwaltung von daten siehe die back4app einstiegsanleitung https //www back4app com/docs/get started/welcome github konto um repositories zu klonen und die versionskontrolle zu verwalten erfahrung mit zustandsverwaltungsbibliotheken wie provider oder bloc vertrautheit mit tests und bereitstellung grundkenntnisse im schreiben von tests und der bereitstellung von flutter apps schritt 1 – einrichten des back4app backends 1 1 erstellen sie ein neues projekt auf back4app melden sie sich bei ihrem back4app konto an klicken sie "erstellen sie eine neue app" und benennen sie sie "advanced endless runner game" 1 2 richten sie klassen für benutzerdaten ein wir werden klassen für benutzer , punktestand , und errungenschaft erstellen benutzerklasse felder benutzername (string) passwort (string) email (string) profilbild (datei) punktestandklasse felder benutzer (zeiger auf benutzer) höchsterpunktestand (zahl) stufe (zahl) errungenschaftsklasse felder benutzer (zeiger auf benutzer) erreichteleistungname (string) datumerreicht (datum) 1 3 sicherheit und berechtigungen konfigurieren klassenebene berechtigungen festlegen, um benutzerdaten zu sichern sicherstellen, dass nur authentifizierte benutzer ihre eigenen daten lesen und schreiben können 1 4 beispieldaten hinzufügen die klassen mit beispieldaten füllen, um die integration später zu testen schritt 2 – klonen und einrichten der endless runner vorlage 2 1 klonen des flutter casual games toolkit repository git clone https //github com/flutter/casual games git 2 2 navigieren zur endless runner vorlage cd casual games/templates/endless runner 2 3 projekt in ihrer ide öffnen verwenden sie visual studio code, android studio oder eine bevorzugte ide stellen sie sicher, dass die flutter und dart plugins installiert sind 2 4 abhängigkeiten aktualisieren öffnen sie pubspec yaml und aktualisieren sie die abhängigkeiten auf die neuesten versionen führen sie aus flutter pub get schritt 3 – verbesserung des spiels mit erweiterten funktionen 3 1 benutzer authentifizierung implementieren wir erlauben den spielern, sich anzumelden, einzuloggen und ihre profile zu verwalten 3 1 1 parse server sdk hinzufügen in pubspec yaml dependencies parse server sdk flutter ^3 1 0 ausführen flutter pub get 3 1 2 authentifizierungsdienst einrichten erstellen sie lib/services/auth service dart import 'package\ parse server sdk flutter/parse server sdk flutter dart'; class authservice { future\<parseuser> signup(string username, string password, string email) async { var user = parseuser(username, password, email); var response = await user signup(); if (response success) { return response result; } else { throw exception(response error! message); } } future\<parseuser> login(string username, string password) async { var user = parseuser(username, password, null); var response = await user login(); if (response success) { return response result; } else { throw exception(response error! message); } } future\<void> logout() async { var user = await parseuser currentuser() as parseuser; await user logout(); } } 3 1 3 authentifizierungsbildschirme erstellen anmeldeseite lib/screens/signup screen dart login seite lib/screens/login screen dart verwenden sie flutter widgets, um formulare für die benutzereingabe zu erstellen 3 2 ui/ux verbessern implementieren sie benutzerdefinierte animationen mit animationcontroller fügen sie ein benutzerdefiniertes thema in lib/theme dart hinzu 3 3 erfolge und bestenlisten hinzufügen erstellen sie ui komponenten zur anzeige von erfolgen implementieren sie einen bestenlistenbildschirm zur anzeige der besten punktzahlen weltweit schritt 4 – integration von back4app mit dem spiel 4 1 parse in main dart void main() async { widgetsflutterbinding ensureinitialized(); const keyapplicationid = 'your app id'; const keyclientkey = 'your client key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize( keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true, ); runapp(myapp()); } 4 2 anmeldeinformationen sicher speichern verwenden sie flutter dotenv zur verwaltung von umgebungsvariablen in pubspec yaml dependencies flutter dotenv ^5 0 2 erstellen sie eine env datei (fügen sie sie zu gitignore ) hinzu app id=your app id client key=your client key aktualisieren sie main dart import 'package\ flutter dotenv/flutter dotenv dart'; void main() async { widgetsflutterbinding ensureinitialized(); await dotenv load(filename " env"); final keyapplicationid = dotenv env\['app id']!; final keyclientkey = dotenv env\['client key']!; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize( keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true, ); runapp(myapp()); } schritt 5 – implementierung des zustandsmanagements 5 1 wählen sie eine zustandsverwaltungslösung wir verwenden provider zur vereinfachung 5 1 1 abhängigkeit des providers hinzufügen in pubspec yaml dependencies provider ^6 0 0 führen sie aus flutter pub get 5 2 erstellen sie die zustandsverwaltung für das spiel 5 2 1 erstellen sie die spielzustandsklasse lib/models/game state dart import 'package\ flutter/foundation dart'; class gamestate extends changenotifier { int score = 0; int get score => score; void incrementscore() { score++; notifylisteners(); } void resetscore() { score = 0; notifylisteners(); } } 5 2 2 bereitstellen des spielzustands in main dart import 'package\ provider/provider dart'; import 'models/game state dart'; void main() async { // parse initialization runapp( multiprovider( providers \[ changenotifierprovider(create ( ) => gamestate()), ], child myapp(), ), ); } 5 2 3 verwenden sie den spielzustand in widgets auf deinem spielbildschirm int score = context watch\<gamestate>() score; schritt 6 – leistung optimieren 6 1 spielleistung sprite verwaltung verwende sprite blätter, um den speicherverbrauch zu reduzieren optimierung der bildrate begrenze die bildrate, um leistung und akkulaufzeit auszubalancieren 6 2 netzwerkoptimierung daten caching implementiere caching mechanismen, um netzwerkaufrufe zu reduzieren batch anfragen verwende batch operationen, wenn du mit dem backend kommunizierst 6 3 code profilierung verwende flutters devtools zur profilierung der app identifiziere und behebe leistungsengpässe schritt 7 – robuste fehlerbehandlung und tests 7 1 fehlerbehandlung try catch blöcke umhülle asynchrone aufrufe, um ausnahmen zu behandeln try { var result = await someasyncfunction(); } catch (e) { // handle error } benutzerfeedback zeige benutzerfreundliche nachrichten an, wenn fehler auftreten 7 2 protokollierung verwenden sie das logging paket, um fehler und wichtige ereignisse zu protokollieren in pubspec yaml dependencies logging ^1 0 2 7 3 testen 7 3 1 einheitstests schreiben sie tests für ihre modelle und dienste beispieltest in test/game state test dart import 'package\ flutter test/flutter test dart'; import 'package\ your app/models/game state dart'; void main() { test('score increments correctly', () { final gamestate = gamestate(); gamestate incrementscore(); expect(gamestate score, 1); }); } 7 3 2 integrationstests testen sie die benutzeroberfläche und interaktionen der app verwenden sie das integrationstest framework von flutter schritt 8 – das spiel bereitstellen 8 1 vorbereitung auf die bereitstellung app icons und splash screens für das branding anpassen app bundle ids einzigartige identifikatoren für android und ios festlegen 8 2 release versionen erstellen android aktualisieren sie android/app/build gradle mit ihren signierungskonfigurationen führen sie aus flutter build apk release ios öffnen sie ios/runner xcworkspace in xcode richten sie die signierung und berechtigungen ein führen sie aus flutter build ios release 8 3 app store einreichung google play store folgen sie dem offiziellen leitfaden https //developer android com/distribute/console apple app store folgen sie dem offiziellen leitfaden https //developer apple com/app store/submit/ fazit in diesem fortgeschrittenen tutorial haben wir ein funktionsreiches endless runner spiel mit flutter's casual games toolkit erstellt und back4app für backend dienste integriert wir haben behandelt benutzerauthentifizierung ermöglicht es spielern, sich anzumelden, einzuloggen und profile zu verwalten zustandsverwaltung verwendung von provider für eine effiziente zustandsverwaltung leistungsoptimierung verbesserung der spiel und netzwerkleistung fehlerbehandlung und tests implementierung robuster fehlerbehandlung und schreiben von tests bereitstellung vorbereitung und einreichung der app in app stores dieser umfassende ansatz stattet sie mit den fähigkeiten aus, professionelle flutter anwendungen mit zuverlässigen backend integrationen zu entwickeln sie können das spiel weiter ausbauen, indem sie weitere funktionen hinzufügen, wie zum beispiel soziale medien teilen ermöglichen sie es spielern, erfolge in sozialen medien zu teilen in app käufe monetarisieren sie das spiel mit käuflichen gegenständen oder upgrades mehrspielersupport implementierung von echtzeit oder rundenbasiertem mehrspielermodus für weitere informationen zur flutter und back4app integration siehe flutter dokumentation https //flutter dev/docs back4app flutter leitfaden https //www back4app com/docs/flutter/overview parse server leitfäden https //docs parseplatform org viel spaß beim programmieren und entwickeln von spielen!