Frage von gut4fr5g4, 16

LibGDX Game neustarten?

Wie kann ich in LibGDX mein Spiel, das ich gemacht habe neustarten (also mit neustart-button oder so), denn wenn ich die methoden zum createn der einzelnen elemente am ende erneut abrufe, dann passiert einfach nichts -.- (obwohl das eigentlich so sein müsste...

Hier der code... http://hastebin.com/uqozakaqev.cs

Wenn ich (in der Main stehend) die Methode creating() ausführe, dann passiert einfach garnichts... warum das?

Ich wäre extrem dankbar wenn jemand hilft...

LG

Antwort
von regex9, 16

Es wäre gut, wenn du einmal den relevanten Code posten würdest.

Kommentar von gut4fr5g4 ,

hab ich doch geschrieben:

"Wenn ich (in der Main stehend) die Methode creating() ausführe, dann passiert einfach garnichts... warum das?"

diese wird beim erstellen ausgeführt, aber warum werden die elemente nicht "neu erstellt", wenn ich diese methode neu ausführe?

Kommentar von gut4fr5g4 ,

also weißt du oder nicht?

Kommentar von regex9 ,

Da du deine main-Methode nicht zeigen möchtest. kann ich dir nur empfehlen, einmal mit einem Debugger über das Programm zu laufen. Dann siehst du, was wirklich zur Laufzeit passiert.

Kommentar von gut4fr5g4 ,

Oben der Link... Die Main-Klasse ist "MyGdxGame", das sieht man aber auch, aber hier nochmal:

http://hastebin.com/ekotocecir.java

Antwort
von XVirusX, 10

*Initialisiere* MAP, STEPHAN und COUNTER in der creating() methode.

Kommentar von gut4fr5g4 ,
Kommentar von XVirusX ,

"MyGdxGame m = new MyGdxGame(); m.creating(); Da liegt der Fehler. Du erstellst eine komplette neue Instanz von MyGdxGame aber du musst die originale Instanz durch Parameter übertragen. Also machen in Stephan einen Constructor der MyGdxGame will und diese Instanz als globale Variable speichert. In MyGdxGame musst du dann einfach "new Stephan(this)" schreiben.

Kommentar von gut4fr5g4 ,

kannst du ein codebeispiel schicken?

Kommentar von XVirusX ,

Ich hab's hier überarbeitet: http://hastebin.com/opacivegir.cs

Kommentar von gut4fr5g4 ,

funktioniert trotzdem nicht :c

also das restartet nicht =c

Kommentar von gut4fr5g4 ,
Kommentar von XVirusX ,

Hm. Sende mir mal den kompletten Code den du gerade hast und ich schaue ihn mir dann morgen nochmal am PC an.

Kommentar von XVirusX ,

So ein Fehler kann passieren, wenn du Logik und Rendern nicht voneindander trennst. Ich benutze deswegen immer eine update() methode für Logik und die render() methode fürs Rendern. Ich überarbeite den Code morgen bis er funktioniert.

Kommentar von gut4fr5g4 ,

danke, du bist der beste :3

Kommentar von XVirusX ,

Ganz grob zum Kucken könntest du den Fehler noch fixen wenn du renderStephan() ganz unten unter renderCounter() tust in deiner render() methode.

Kommentar von gut4fr5g4 ,

funzt immernoch nicht

Kommentar von gut4fr5g4 ,

also weißt du noch was ich machen könnte?

Kommentar von gut4fr5g4 ,

habs selber hingekriegt, war richtig einfach eigentlich. ich habe einfach "batch.end();" in der main mit try und catch surrounded :)

Danke für deine hilfe! ;)

Kommentar von XVirusX ,

Kein Problem :) War gestern leider ziemlich beschäftigt, sorry. Ich empfehle dir trotzdem, rendern und Logik voneindander zu trejnen, wenn ich das in meinem jetzigen Projekt nicht gemacht hätte, hätte ich schon aufgegeben. Dazu in der render() methode ganz am Anfang update(delta) aufrufen uns dort die Logik machen und darunter normal rendern, aber nur rendern.

Keine passende Antwort gefunden?

Fragen Sie die Community