Siedler2Clone

Status
Nicht offen für weitere Antworten.

Memphis

Aktives Mitglied
Hallo,
ich arbeite zur Zeit an einen Siedler2Clone jedoch in abgespeckter Version und mit meinen größtenteils eignen Ideen. Halt was man so verbesser möchte wenn man ein Spiel spielt, kennt jeder oder?

Nun stell sich mir die Frage, wie kann ich es schaffen wenn Militärgebäude gebaut werden das sich die Grenzabsteckung erweitert.
Ich habe erstmal um ein mein Haupthaus eine quadratische Absteckung gebaut nur ist dann das Problem wenn ich ein Militär gebäude baue erweitert sich die Absteckung auf voller Fläche.

Erklärung : HH = Haupthaus
MG = Militärgebäude

Code:
-------------------------
|                              |
|                              |
|          HH                |
|                              |
|                               |
|                              |
---------------------------

Jedoch wenn nun ein Militärgebäude gebaut wird dann siehst so aus
Code:
-------------------------
|                              |
|                              |
|          HH            MG| 
|                              |
|                               |
|                              |
---------------------------
Wenn das Mg gebaut wird sieht es dann so auf
Code:
---------------------------------------------
|                                                      |
|                                                      |
|          HH            MG                        | 
|                                                      |
|                                                      |
|                                                      |
----------------------------------------------
Nur ich will das es rund erweitert wird ca so praktisch dann in alle Richtungen ich weis bloß net wie ich das machen soll.

Ca so.
Code:
                         __________
                        /              \
                       /                 \     
-------------------                   \   
|                                          \  
|                                           |
|          HH            MG             | 
|                                           |
|                                          /
|                                        /
--------------------------------
Sieht zwar jetzt nich so toll aus aber denke jeder kann erkennen was mein Prob ist

Vll. habt ihr ja nen Gedankengang wie man das machenkönnte.

Ich hab es bisher nur geschafft siehe oben das es immer in eine Richtung erweitert auf ganzer Linie und halt so 4-eckig immer.

Problem ist auch bei meinem System:
Code:
-----------------------------------------------------------------------------------
|                                                                                                     |
|                                                                                                    |
|          HH             MG                     MG                       MG                | 
|                                                                                                     |
|                                                                                                     |
|                                                                                                     |
------------------------------------------------------------------------------------
Wenn jetzt nach unten erweitert werden soll dann tritt folgendes Prob auf
Code:
-----------------------------------------------------------------------------------
|                                                                                                     |
|                                                                                                    |
|          HH             MG                     MG                       MG                | 
|                                                                                                     |
|                                                                                                     |
|                                                                                  MG                | 
------------------------------------------------------------------------------------
<------ wird unten eins gebaut in südrichtung passiert folgendes
Code:
-----------------------------------------------------------------------------------
|                                                                                                     |
|                                                                                                    |
|          HH             MG                     MG                       MG                | 
|                                                                                                     |
|                                                                                                     |
|                                                                                  MG                | 
|                                                                                                      |
|                                                                                                      |
|                                                                                                     |
------------------------------------------------------------------------------------
Es soll sich aber nicht auf kompleter Linie erweitern eigentlich solle es dann so aussehen
Code:
-----------------------------------------------------------------------------------
|                                                                                                      |
|                                                                                                      |
|          HH             MG                     MG                       MG                |___ 
|                                                                                                           |
|                                                                                                           | 
| ---------------------------------------------------                MG                      | 
                                                                 |                                          |
                                                                  |                                       |
                                                                  |                                  |
                                                                  -|----------------------------

Ca so und net wie oben naja ich ssag dann mal erstmal cu und danke schonmal!

Leider passen die Formatierungen net mehr ganz ich werde vll. noch ein gif uploaden wo man es besser erkennt aber vll. kann jemand schonmal was mit an!
 

Illuvatar

Top Contributor
Du kannst doch an dem Punkt wo das MG ist in einem bestimmten Radius um den Punkt rumgehen (Satz des Pythagoras verwenden ;) ) und da die Grenze setzen, wenn es nicht innerhalb der alten Grenze ist.

PS: Interessiert mich, das Projekt, schreib mal, wenn daraus was wird :D
 

Memphis

Aktives Mitglied
Werde ich machen.
Die Idee mit dem Rundrum hatte ich auch schon. Nur wie kann ich das machen ob es außerhalb lieg also die Abfrage dafür.
 

Illuvatar

Top Contributor
Ich vermute mal die Grenze machst du mit nem GeneralPath? Wäre jedenfalls das einfachste. Und GeneralPath hat auch noch die Methode contains (Point2D), was die Klasse noch vorteilhafter für dich macht ;)
 

DarKestSun

Mitglied
wie man schon aus anderen themen erfahren kann vertrete ich die image-veriante

du könntest ein bild zeichen, völlig schwarz mit einem weißen kreis, der den bereich des haupthauses darstellt

suche im goolge nach "pixelgrabber" , mit dem kannst du ein bild in ein 2D Array laden, x-u. y-koordinate.

wenn du ein mg baust, benutzt du einfach g.drawOval(mg.x, mg.y, radius, radius) und zeichnest einen weiteren weißen kreis auf dein bild

mit dem array kannst du abfragen ob "array[x][y] == 0", wobei 0 für einen weißen pixel steht.
dann erleichterst du dir auch das speichern.

du kannst später auch einen (z.b. roten) kreis zeichen der einen bereich ankündigt, den man nicht betreten kann
oder blaue bereiche für wasser, die möglichkeiten sind grenzenlos
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben