# Siedler2Clone



## Memphis (1. Apr 2005)

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


```
-------------------------
|                              |
|                              |
|          HH                |
|                              |
|                               |
|                              |
---------------------------
```

Jedoch wenn nun ein Militärgebäude gebaut wird dann siehst so aus

```
-------------------------
|                              |
|                              |
|          HH            MG| 
|                              |
|                               |
|                              |
---------------------------
```
Wenn das Mg gebaut wird sieht es dann so auf

```
---------------------------------------------
|                                                      |
|                                                      |
|          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.

```
__________
                        /              \
                       /                 \     
-------------------                   \   
|                                          \  
|                                           |
|          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:

```
-----------------------------------------------------------------------------------
|                                                                                                     |
|                                                                                                    |
|          HH             MG                     MG                       MG                | 
|                                                                                                     |
|                                                                                                     |
|                                                                                                     |
------------------------------------------------------------------------------------
```
Wenn jetzt nach unten erweitert werden soll dann tritt folgendes Prob auf

```
-----------------------------------------------------------------------------------
|                                                                                                     |
|                                                                                                    |
|          HH             MG                     MG                       MG                | 
|                                                                                                     |
|                                                                                                     |
|                                                                                  MG                | 
------------------------------------------------------------------------------------
```
<------ wird unten eins gebaut in südrichtung passiert folgendes

```
-----------------------------------------------------------------------------------
|                                                                                                     |
|                                                                                                    |
|          HH             MG                     MG                       MG                | 
|                                                                                                     |
|                                                                                                     |
|                                                                                  MG                | 
|                                                                                                      |
|                                                                                                      |
|                                                                                                     |
------------------------------------------------------------------------------------
```
Es soll sich aber nicht auf kompleter Linie erweitern eigentlich solle es dann so aussehen

```
-----------------------------------------------------------------------------------
|                                                                                                      |
|                                                                                                      |
|          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 (1. Apr 2005)

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


----------



## Memphis (1. Apr 2005)

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 (1. Apr 2005)

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 (3. Apr 2005)

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


----------



## Illuvatar (3. Apr 2005)

IMHO is das performanter wenn mans direkt im Array macht...


----------



## DarKestSun (4. Apr 2005)

ja klar is das andere besser in der performance, aber auch schwerer zu realisieren


----------

