Android Wie mache ich eine App mit verschiedenen Leveln?

Robat

Robat

Top Contributor
Guten Abend alle zusammen,

ich bin seit einigen Tagen dabei, eine Spieleapp für Android zu programmieren. Ich komm auch recht gut voran, allerdings stellt sich mir so langsam die Frage: "Wie macht man das eigentlich mit den verschiedenen Leveln?". Habe mir da schon ein paar Gedanken gemacht und auch gegoogelt, nur bevor ich wirklich Anfange hätte ich gern gewusst ob das so überhaupt möglich ist.

Im Prinzip sind mir "nur" 2 Möglichkeiten eingefallen:

1)

Man macht für jedes Level eine eigene Java-Klasse. Die jeweilige Klasse wird dann durch ein dynamisches Intent in [sagen wir der Menu-Klasse] aufgerufen, je nach dem wie weit der Spieler bereits ist. Das Level kann man ja in einer SharedPreferences-Klasse speichern. Soweit ich weiß, kann man ein Intent ja folgendermaßen aufbauen:
Java:
level = preferences.get...
className = "mein.super.tolles.spiel.levels." + level;
intent = new Intent(getApplicationContext(), Class.forName(className);
startActivity(intent);

2)
Die Zweite Methode die mir [als Anfänger in der Spieleentwicklung] eingefallen ist, ist das man eine Klasse für alle Level schreibt und man mittels paramter im Constructor nur die Werte zb. von der Geschwindigkeit ändert. Ob das realisirbar ist weiß ich auch hier leider nicht.

So auch wenn es nicht viel ist, hoffe ich das mir jemand weiter helfen kann. Ich bin ehrlich gesagt wirklich ratlos, da ich sowas noch nie gemacht habe :(

Ich bedanke mich schon mal im voraus für eure Mühe

Grüße Robat
 
C

camelCase90

Aktives Mitglied
Guten Tag,

da gibt es viele Möglichkeiten soetwas zu realisieren.

Eine Möglichkeit wäre ein einfaches Attribut, welches das Level als Integer enthält und mach erfolgreichen absolvieren eines Levels hoch gezählt wird.

Anhand des Wertes kannst Du dann die Abläufe Steuern.

Eine weitere Möglichkeit wäre ne Level Elternklasse mit den nötigen Methoden und für jedes Level dann eine eigene Klasse welche von der Elternklasse erbt und in deren Methoden und Attribute dann für jedes Level dann seine eigenen Eigenschaften und Abläufe steuert.

LG
 
Robat

Robat

Top Contributor
Okay so In etwa habe ich mir das auch gedacht.

Aber wird es nicht dann extrem unübersichtlich, wenn ich bspw. die 100level in eine Datei bringe / mehrere Dateien mache.

Ich danke dir erstmal für deine Hilfe

LG Robat
 
C

camelCase90

Aktives Mitglied
Also wenn Du 100 Level als Bespiel planst, dann würde ich das auch nicht über eine Klasse pro Level realisieren. Es kommt natürlich drauf an, was es an Änderungen pro Level gibt. Wenns nur um z.B. einen kürzeren Countdown, höhere Punkte oder wenn es Gegner gibt, welche von Level zu Level stärker werden soll, dann kann man das Wunderbar über Level Integer Attribut löschen.

Man könnte dann einfach den Countdown - Level rechnen oä.
 
C

camelCase90

Aktives Mitglied
Also, wenn Du 100 Level als Bespiel planst, dann würde ich das auch nicht über eine Klasse pro Level realisieren. Es kommt natürlich drauf an, was es an Änderungen pro Level gibt. Wenns nur um z.B. einen kürzeren Countdown, höhere Punkte oder wenn es Gegner gibt, welche von Level zu Level stärker werden soll, dann kann man das Wunderbar über ein Level Integer Attribut lösen.

Man könnte dann einfach den Countdown - Level rechnen oä.
 
Robat

Robat

Top Contributor
Also machen wir es einfach mal am Beispiel "Countdown".

Nehmen wir an er würde jedes Level schneller werden.

Dann würde ich also eine klasse Game.java machen. Dort wird erstmal der gesamte Ablauf implementiert. Und das Level frage ich dann mit einer Abfrage ab und ändern die Geschwindigkeit je nach Level ab? Hätte dann also dem nach eine 100-stufige IF-Abfrage bzw switch case?

Oder habe ich das jetzt komplett falsch verstanden?
 
C

camelCase90

Aktives Mitglied
Nein, das wäre noch unübersichtlicher. Ich würde den Spielablauf in eine Methode packen und nach jedem erfolgreichen Durchlauf eines Levels den Integer um 1 hochzählen. So könntest Du dann ohne eine If-Abfrage einfach den Countdown anhand des Levels berechnen.

Countdown -= Level; als Bsp.

Wenn der Levelablauf durchgelaufen ist würde ich die Methode am Ende erneut aufrufen und praktisch den Ablauf erneut durchlaufen, halt nur mit einem neuen Countdown (Countdown-Level).
 
Robat

Robat

Top Contributor
Also camelCase90,

ich danke dir erstmal für deine Mühe. Habe jetzt (denke ich mal) eine ganz guten Einblick bekommen und eine Idee habe ich auch schon. Werde das aber denke ich doch mit einer abstrakten Klasse realisieren, da das andere für meinen Fall zu aufwändig wäre.

Falls noch Fragen aufkommen, werde ich mich noch mal melden.
 
C

camelCase90

Aktives Mitglied
Wenn Du relativ wenig aber anspruchsvolle Level gestalten möchtest, ist das bessere Wahl.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Regelmäßig eine Methode im Hintergund ausführen Android & Cross-Platform Mobile Apps 1
J Android Wann ist eine App privat? Android & Cross-Platform Mobile Apps 10
M Android Schreiben von JsonDaten in eine SqliteDB Android & Cross-Platform Mobile Apps 7
M Suche eine Webseite mit dem aktuelle Datum in XML Android & Cross-Platform Mobile Apps 18
R Android Eine Website-frame in einer App Android & Cross-Platform Mobile Apps 4
M [Android] Wie erstellt man eine Verknüpfung eines Ordners? Android & Cross-Platform Mobile Apps 7
R [ANDROID] Dynamisch eine Liste erweitern Android & Cross-Platform Mobile Apps 3
K Verständisfrage bzgl. Buttons und ihnen eine Funktion geben. Android & Cross-Platform Mobile Apps 3
X Android Wo gibts eine SortableListView? Android & Cross-Platform Mobile Apps 6
G eine Methode einer anderen Activity aufrufen Android & Cross-Platform Mobile Apps 9
S Android In Service überprüfen ob eine Activity gebunden ist? Android & Cross-Platform Mobile Apps 6
B TableLayout verhält sich nicht wie eine Tabelle Android & Cross-Platform Mobile Apps 3
L Android Eine Kleinigkeit für Profis Android & Cross-Platform Mobile Apps 2
A Android Eine Datei in Android löschen, aber wie ? Android & Cross-Platform Mobile Apps 24
A Koordinaten eine Images feststellen Android & Cross-Platform Mobile Apps 9
U [Android] Eine Datei aus Jar-Archiv laden Android & Cross-Platform Mobile Apps 4
N Gibt es eine opensource Speech-to-Text engine? Android & Cross-Platform Mobile Apps 3
B Android Eine Warnung in der Console (Eclipse) auswerten Android & Cross-Platform Mobile Apps 3
T Android Ergebnis eines XML+XSLT "transform" in eine HTML - Datei schreiben (Android) Android & Cross-Platform Mobile Apps 2
M Eclipse: cdc.jar in eine Midlet Suite integrieren Android & Cross-Platform Mobile Apps 18
L SecurityException beim lesen/schreiben eine Datei Android & Cross-Platform Mobile Apps 7
H Gibt es eine Alternative zur Location API? Android & Cross-Platform Mobile Apps 4
F Wie komplex wäre eine Wecker-Applikation? Android & Cross-Platform Mobile Apps 5
A Von verschiedenen Klassen auf Thread zugreifen Android & Cross-Platform Mobile Apps 2
Arif Android Verwendung von verschiedenen Datentypen Android & Cross-Platform Mobile Apps 1
Arif Android Verwendung von verschiedenen Datentypen Android & Cross-Platform Mobile Apps 5
G Views für verschiedenen Bildschirmgroeßen Android & Cross-Platform Mobile Apps 2

Ähnliche Java Themen

Anzeige


Oben