Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

15.03.2014, 14:53

Es hat sich eine Veränderung eingestellt!
Wenn ich jetzt einen Gleiter mache scheint er zu explodieren und bildet mehrere stabile Lebewesen.

Vielleicht liegt dieses Problem, jetzt da das andere gelöst ist woanders.
Meine verfügbaren Spiele:


GodMode(Android)


Spiele/Apps in Planung:


PixelClicker(Android)

12

15.03.2014, 15:08

ES GEHT! Danke für eure Hilfe... Das Problem war ich habe zwar die Felder später geupdated, doch die Werte der boolean Variable wurden schon während der For Schleife gesetzt. Ich habe jetzt einfach dem Feld eine eigene Tick Funktion gegeben. Erst in dieser werden die festgesetzten Werte übertragen.
Meine verfügbaren Spiele:


GodMode(Android)


Spiele/Apps in Planung:


PixelClicker(Android)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

13

15.03.2014, 18:16

Vor der For Schleife wird dann fieldsO komplett mit fields gleichgesetzt

Das ist dein Fehler. Damit wirfst du eines der Arrays quasi weg.
Beide Variablen zeigen danach auf dasselbe Array.
Ich glaube, du hast hier noch ein bisschen was nachzuholen!

Fourb

Treue Seele

Beiträge: 122

Beruf: Schüler

  • Private Nachricht senden

14

15.03.2014, 20:14

Benutz den Pseudo-Code von Nimelrain und schreibs neu.
Was Conway im Jahr 1970 ordentlich hinbekommen hat, wirst du wohl auch sauber lösen können.


Du brauchst keine Tick-Funktionen - was auch immer das sein soll und was auch immer du damit bezwecken willst.
42 / Pi = 13,37

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

15

15.03.2014, 23:16

Du brauchst keine Tick-Funktionen - was auch immer das sein soll und was auch immer du damit bezwecken willst.

Sehr wahrscheinlich wird in dieser ein einzelner Schritt berechnet und ausgeführt. Es wäre zwar möglich, den Code dieser Funktion/Methode in die Schleife/den Timer zu legen, die/der für das wiederholte Ausführen verantwortlich ist, nur wäre dies wesentlich unsauberer.

Solltest du die Methode an den einzelnen Feldern meinen: ob das sinnvoll oder unsinnig ist, hängt von der Implementierung ab. Wenn 2 Arrays für die Darstellung des Felds verwendet werden, dann braucht man keine solche Funktion an den einzelnen Elementen der Arrays. Speichert man sich aber nur die Änderungen bei einem Berechnungsschritt und will daraufhin diese Änderungen für alle Felder übernehmen, dann wäre es möglich, es über eine entsprechende Methode zu erledigen (wobei Tick in dem Fall kein passender Name wäre).
Ich persönlich würde es besser finden, ein einziges Feld zu haben, welches am Ende der Berechnungen aktualisiert wird, statt das gesamte Feld durch ein anderes zu ersetzen (auch wenn die beiden Felder abwechselnd durcheinander ausgetauscht werden). Aus Sicht der Performance könnte die Lösung mit 2 Arrays aber besser sein.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

16

17.03.2014, 06:57

Statt arrays kannst Du auch Mengen (von lebendigen Zellen) verwenden. Die performance wird dadurch nicht besser, der Programmablauf jedoch leichter nachvollziehbar.

Nebeneffekt: Die Spielwelt wird theoretisch unendlich. Hier liegt auch ein Haken ;)

Zitat

Ich bin nicht der Messias.
Ich sage, du bist es, Herr. Und ich muss es wissen, denn ich bin schon einigen gefolgt.

https://bitbucket.org/bwbg

Werbeanzeige