Bildmanipulation wie bei "Plague inc." nur nicht generierend sondern abbauend.

  • 24 Antworten
  • Neuester Beitrag
Diskutiere Bildmanipulation wie bei "Plague inc." nur nicht generierend sondern abbauend. im Android Spiele Entwicklung im Bereich Android App Entwicklung.
H

Hackfleischhirn

Neues Mitglied
Erst mal hallo an alle die den Thread geöffnet haben :)
Hierbei handelt es sich um eine theoretische Frage. Code wird nicht unbedingt benötigt.
Ich bin gerade bei der Konzeptentwicklung eines kleinen Spiels und möchte, wie im Titel bereits angesprochen, ein Bild so manipulieren, wie Plague es auch macht. (Rote Punkte werden gesetzt)
Der Plan ist, dass Punkte auf einem Bild bei einem bestimmten Event entfernt werden. Anzahl sollte mindestens 1000 betragen.
Da ich nicht zwingend ein Array mit 1000 Punkten erstellen wollte und das auch sicher nicht effizient sein kann, wollte ich mal bei euch in die Runde fragen, ob jemandem da etwas besseres einfällt.

Vielen Dank schon mal ;)
 
Kardroid

Kardroid

Stammgast
Hi,

könntest du mal ein Screenshot hochladen? Ich kann es mir irgendwie nicht mit den roten Punkten vorstellen.
 
swa00

swa00

Moderator
Teammitglied
Hallo Hackfleisch,

ich wüsste nicht , was gegen eine Array(List) mit jeweils zwei float-Werten (LAT/LON) spricht.
 
H

Hackfleischhirn

Neues Mitglied
Um es etwas genauer darzustellen. Es ist angedacht eine Weltkarte zu nehmen und da wo Wald ist grüne Punkte zu setzen. Diese sollen dann verschwinden, wenn eine gewisse Zahl Bäume gefällt wurde. Dafür müsste ich natürlich nicht einfach Random Punkte setzen, sondern jeden einzeln setzen. Da ich aber als alter Naturwissenschaftler eine faule Sau bin suche ich gerade ach einem effizienteren Weg ;)
@Kardroid So sieht das aus. Die roten Punkte stehen für die Verbreitung einer Krankheit. Bei mir soll es genau umgekehrt sein. Also anstatt, dass die Punkte erzeugt werden, sollen Punkte verschwinden.

@swa00 naja. Ok. War halt nur ne Frage, ob es nicht was besseres gibt :)

EDIT: Ok während dem schreiben ist mir aufgegangen, dass ich irgendwie um drei Ecken gedacht habe XD Danke :)
 

Anhänge

swa00

swa00

Moderator
Teammitglied
Hallo Tartar,

um es dir etwas ein wenig einfacher zu gestalten .

Du könntest dir natürlich eine Zufallszahlen-Routine bauen , die nur in einem Bereich (LAT/LON) dein Array füllt.
 
H

Hackfleischhirn

Neues Mitglied
Ja. Denke auch, dass das wahrscheinlich dann die beste Idee ist. Muss mir mal anschauen wie die anderen (Apps) das so machen.
LAT/LON ist geographische Länge/Breite? Ich hab im Moment halt noch Bedenken, dass mir eine Zufalls-Routine einfach alles zusaut und eben nicht nur dahin setzt wo es im Zweifel dann auch hin soll. Schließlich wachsen Bäume nicht im Atlantik.
 
swa00

swa00

Moderator
Teammitglied
LAT/LON ist die Position , richtig.

Um das Ganze dann auch irgendwie logisch aussehen zu lassen , kann man sich ein "Inner-Bound" (Polygon) mit den Landes/Seegrenzen
vorher setzen.
Diese "Areas" gibt es praktisch überall im Netz. OSM wäre z.B. da meine erste Wahl, da Quell-Offen .
 
H

Hackfleischhirn

Neues Mitglied
Ok. Vielen Dank. Habe mich in der Vergangenheit etwas mit Unity auseinandergesetzt. Ich bin mir ziemlich sicher mal über sowas gestolpert zu sein....

Dieses Mal gibts 2 Kekse. Du warst ja schon wieder zur Stelle um mir zu helfen ;)

Danke auch an Kardriod ;)
 
swa00

swa00

Moderator
Teammitglied
Danke für die Kekse,

Aber bei dem Wort "Unity" gibt es dabei wieder Verdauungsprobleme :) (Spielzeug)
 
H

Hackfleischhirn

Neues Mitglied
Echt so schlimm ja XD Naja. Bisher habe ich eigentlich nichts einzuwenden. Perfekte Mischung aus einsteigerfreundlich und trotzdem vieler Entwicklungsmöglichkeiten. Dagegen kam ich mit Andriod Studio gar nicht klar :)
 
Kardroid

Kardroid

Stammgast
Hi, ich hatte schon mal eine ähnliche Anforderung.
Hier ein paar Links, die du dir anschauen kannst:
Natural Earth
Getting polygons of all countries and ISO-3166-2 subdivisons
Can I get the coordinates of country borders from Google Maps?

Bei mir war es so, dass ich mir eine Liste runtergeladen habe, und dann mittels Textwerkzeuge SQL-Insert-Statements bauen konnte.
Ich könnte die Lat/Lang so benutzen, du könntest leichte Probleme bekommen, da du ja deine "eigene" Map mit eigenem Kooridiatensystem erstellst, oder?
Du müsstest also aus den Lat/Lang Werten die Werte für dein Koordinatensystem "umwandeln".

Mir gefällt die Aufgabenstellung :)
 
H

Hackfleischhirn

Neues Mitglied
Hmm. Es geht ja weniger um das Abstecken der Ländergrenzen, als die bewaldeten Gebiete zu markieren.
Aber danke für die Links. Ich schau sie mir mal an.
:)
 
swa00

swa00

Moderator
Teammitglied
Hmm. Es geht ja weniger um das Abstecken der Ländergrenzen, als die bewaldeten Gebiete zu markieren.
na dann mal viel Spass mit deinem Speicher :)

Ich vermute mal , dass du - bezogen auf die OSM Daten - so an die 10000 Polygone alleine für die
Bundesrepublik bekommst :)
 
H

Hackfleischhirn

Neues Mitglied
Ähm ich glaube ich habe noch nicht richtig erklärt was ich vor habe XD
Ich möchte bewaldete Regionen markieren. Das ganze ist absolut unabhängig von den Ländergrenzen.
-> Zentralafrika
->Süd- bzw. Nord- und Mittelamerika
-> Europa (exklusiv Spanien)
-> Asien
mehr Gebiete werden nicht gebraucht denke ich mal.
Außerdem haben es schon Spiele vor mir hinbekommen ;P
 
swa00

swa00

Moderator
Teammitglied
Das habe ich schon verstanden.
Bewaldete Gebiete werden als Polygone im LAT/LON format dargestellt. (TAG = Forest)

Nehme ich nur mal in meiner Region und im Umkreis von 20 km, die bewaldete Gebiete (FFM/Mainz) dann komme ich
vom Schreibtisch schon aus auf ca. 30 Gebiete (Polygone)

Ich denke du meinst eher die Border-Polygone , nicht die bewaldeten - das sind zwei paar Schuhe ..
(Oder auch TAG Landscape/Coast)
 
Zuletzt bearbeitet:
H

Hackfleischhirn

Neues Mitglied
hmmm. Das ist tatsächlich richtig .... Aber ich verstehe dann deinen Speichereinwand nicht so richtig. Wenn ich das Bild was ich hochgeladen hab so anschaue sind das auch.. sagen wir mal "ein paar" Punkte/Polygone die man da sehen kann. XD
Da gibts bestimmt irgendeinen Trick 17 der das alles ganz effizient löst :)
 
swa00

swa00

Moderator
Teammitglied
Ich spreche auch nur von dem "Erstellungs" Aufwand ..

Angenommen , du machst wirklich eine Random-Erstellung der "Forest" Polygone,
so müsste diese Routine für jedes Forest Polygon durchlaufen.
Bezogen auf z.b. Europa wären das dann enorme Rechenvorgänge, zumal du ja nicht für jede Baumgruppe 1000 Punkte erstellen
möchtest, sondern diese ja auch proportional der Größe / Fläche anwenden magst.

Im Endeffekt magst du ja "nur" z.b, 1000 Punkte für Europa haben..


P.S ich habe beruflich mit FlightAreas zu tun ,und daher vermag ich ein wenig abzuschätzen ,was das bedeutet.
Dort kommt es auf die Destrict-Areas an ( Flugverbotszonen für die zivile Luftfahrt)

Da rechnen hier mehrere Rechner Tagelang.
 
H

Hackfleischhirn

Neues Mitglied
Ok. Leider kenne ich mich mit sowas gar nicht aus.
An sich wäre es dann aber weniger Rechenaufwand die Positionen vorher festzusetzen (also unterm Strich "jeden" Baum selber pflanzen) und das dann laden zu lassen? Habe ich das soweit schon mal richtig verstanden?
 
swa00

swa00

Moderator
Teammitglied
Es kommt auf deinen Anspruch an ..

Wenn du dich mit 1000 Punkten zufrieden gibst , die dann im Endeffekt auf die ganze Weltkugel bezogen sind , dann sind es halt nur
2000 Flieskommazahlen....

Und das wäre dann Peanuts
 
H

Hackfleischhirn

Neues Mitglied
Ich würde mal sagen der Anspruch steigt während er Entwicklung.
Erstmal das Konzept fertig machen und überhaupt mal mit der ersten Zeile Code anfangen.
Dann kann man sich über sowas sicher noch lang genug den Kopf zerbrechen.