Merge pull request #40 from HGE-IT-Course-2016/master

GruenRoteBranch - Aktualisierung
master
Achim 8 years ago committed by GitHub
commit c45cdad866

@ -1,12 +1,13 @@
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.lang.Math;
/** /**
* Oberklasse für verschiedene Maps; Oberklasse für verschiedene Maps;
* neue Maps werden als Unterklasse dieser Klasse eingefügt. neue Maps werden als Unterklasse dieser Klasse eingefügt.
*
* @author GruenerWal, MaxiJohl @author GruenerWal, MaxiJohl, Felix Stupp
* @version 0.2.0 @version 0.3.0
*/ */
public abstract class GeneralMap extends World public abstract class GeneralMap extends World
{ {
/* /*
@ -14,6 +15,16 @@ public abstract class GeneralMap extends World
Später evtl. weitere Werte wie Schwierigkeit denkbar Später evtl. weitere Werte wie Schwierigkeit denkbar
*/ */
private final int X_OFFSET = 0; // Verschiebt die Provinzen nach rechts
private final int Y_OFFSET = 0; // Verschiebt die Provinzen nach unten
/*
Die einzelnen Positionen der Provinzen wird mit SCALE_VALUE/10000 multipliziert.
Dies ist nützlich, wenn die Karte beispielsweise nur noch 80% der Originalgröße bei ihrer Darstellung groß ist.
Bei diesem Beispiel wäre hier, neben dem Offset oben, der Wert 0.8 einzutragen.
*/
private final double SCALE_VALUE = 1;
protected Province[] provinces; protected Province[] provinces;
protected Player[] players; protected Player[] players;
@ -34,6 +45,15 @@ public abstract class GeneralMap extends World
} }
} }
/**
Fügt alle Provinzen aus dem Array der Welt an der entsprechden Stelle zu.
*/
protected void initProvinces() {
for(int i = 1; i < provinces.length; i++) {
addObject(provinces[i],((int) Math.floor(provinces[i].getXPos() * SCALE_VALUE)) + X_OFFSET,((int) Math.floor(provinces[i].getYPos() * SCALE_VALUE)) + Y_OFFSET);
}
}
/** /**
Gibt die Anzahl der vorhandenen Spieler aus. Gibt die Anzahl der vorhandenen Spieler aus.
*/ */

@ -1,45 +1,45 @@
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/** /**
* Klasse der Standard-Welt Klasse der Standard-Welt
* (Also die normale Weltkarte mit allen Kontinenten) (Also die normale Weltkarte mit allen Kontinenten)
*
* @author GruenerWal, MaxiJohl @author GruenerWal, MaxiJohl
* @version 0.3.0 @version 0.3.0
*/ */
public class Map_World extends GeneralMap public class Map_World extends GeneralMap
{ {
/** /**
* Anzahl der Provinzen. Anzahl der Provinzen.
*/ */
int provinceCount = 42; int provinceCount = 42;
/** /**
* Konstruktor der Weltkarte; Konstruktor der Weltkarte;
* konstruiert eine GeneralMap mit den Ausmassen 1600 auf 900 Pixel. konstruiert eine GeneralMap mit den Ausmassen 1600 auf 900 Pixel.
*/ */
public Map_World(String[] playerList, int[] colorList) public Map_World(String[] playerList, int[] colorList)
{ {
super("",playerList,colorList); super("",playerList,colorList);
/* /*
* Hier werden später sämtliche Provinzen der Standard-Map erstellt. Hier werden später sämtliche Provinzen der Standard-Map erstellt.
* Dies funktioniert folgendermassen: Dies funktioniert folgendermassen:
* ================================================================= =================================================================
*
* Dieses kürzere Format ersetzt den langen Code und sorgt eventuell sogar für einen Geschwindigkeitsschub. Dabei sollte diesselbe Funktionalität erhalten bleiben. Dieses kürzere Format ersetzt den langen Code und sorgt eventuell sogar für einen Geschwindigkeitsschub. Dabei sollte diesselbe Funktionalität erhalten bleiben.
*
* provinces[<Provinz-ID>] = new Province(<Provinz-ID>,<Kontinent-ID>,<X-Position>,<Y-Position>,<Anzahl Sterne>,"<Anzeigename>", new int[] { <Liste aller Nachbarprovinzen> }); provinces[<Provinz-ID>] = new Province(<Provinz-ID>,<Kontinent-ID>,<X-Position>,<Y-Position>,<Anzahl Sterne>,"<Anzeigename>", new int[] { <Liste aller Nachbarprovinzen> });
*
* ================================================================= =================================================================
* Der Speicherplatz für provinces[0] bleibt leer, da es keine Provinz mit der ID 0 gibt! Der Speicherplatz für provinces[0] bleibt leer, da es keine Provinz mit der ID 0 gibt!
*
* Und ja, ich weiss, dass das scheisse viel Schreibarbeit ist. Und ja, ich weiss, dass das scheisse viel Schreibarbeit ist.
* Aber da muss man durch, wir habens auch hinbekommen :P Aber da muss man durch, wir habens auch hinbekommen :P
*
* ~GruenerWal ~GruenerWal
*/ */
// Festlegung der Provinz-Anzahl // Festlegung der Provinz-Anzahl
@ -103,9 +103,6 @@ public class Map_World extends GeneralMap
provinces[41] = new Province(41 , 6 , 1000, 595 , 1 , "Ost Australien" , new int[] {40 , 42}); provinces[41] = new Province(41 , 6 , 1000, 595 , 1 , "Ost Australien" , new int[] {40 , 42});
provinces[42] = new Province(42 , 6 , 934 , 628 , 1 , "West Australien" , new int[] {40 , 41 , 39}); provinces[42] = new Province(42 , 6 , 934 , 628 , 1 , "West Australien" , new int[] {40 , 41 , 39});
for (int c = 1; c <= provinceCount; c++) initProvinces();
{
addObject(provinces[c],provinces[c].getXPos(),provinces[c].getYPos());
}
} }
} }

@ -120,11 +120,11 @@ Die Provinzliste enthält alle Provinzobjekte, die auf der Karte zu sehen sind.
### Protected Methoden ### Protected Methoden
- *void* **addProvinceToMap** ( *Province* province ) - *void* **initProvinces** ()
#### addProvinceToMap() #### initProvinces()
Diese Methode soll das Hinzufügen der Provinzen, sowohl in das Array, als auch an die richtige Position auf der *World* übernehmen. Sollte eine Provinz-ID zweimal verwendet werden sollen, wird diese Methode einen Fehler auslösen! Diese Methode soll das Hinzufügen der Provinzen an die richtige Position auf der *World* übernehmen (nicht ins Array). Diese Methode sucht sich alle Provinzen aus dem Array *Province[]* **provinces**.
### Public Methoden ### Public Methoden
@ -244,6 +244,8 @@ Diese Eigenschaft speichert, wie viele Einheiten auf diesem Feld stehen (natürl
### Public Methoden ### Public Methoden
- *int* **getXPos** ()
- *int* **getYPos** ()
- *int* **getID** () - *int* **getID** ()
- *int* **getContinentID** () - *int* **getContinentID** ()
- *String* **getDisplayName** () - *String* **getDisplayName** ()
@ -263,6 +265,14 @@ Diese Eigenschaft speichert, wie viele Einheiten auf diesem Feld stehen (natürl
- *void* **redrawProvince** () - *void* **redrawProvince** ()
#### getXPos()
Gibt die in der Provinz hinterlegte X-Position zurück.
#### getYPos()
Gibt die in der Provinz hinterlegte Y-Position zurück.
#### getID() #### getID()
Gibt die Provinz-ID dieser Provinz zurück. Gibt die Provinz-ID dieser Provinz zurück.

@ -17,7 +17,7 @@ Dies könnt auch als Checkliste verwenden, um zu sehen, ob ihr bereits alle Meth
- *GeneralMap* ( *String* backgroundImage, *String[]* playerList, *int[]* colorList ) - *GeneralMap* ( *String* backgroundImage, *String[]* playerList, *int[]* colorList )
- protected *void* **addProvinceToMap** ( *Province* province ) - protected *void* **initProvinces** ()
- *int* **getPlayerCount** () - *int* **getPlayerCount** ()
- *String* **getPlayerName** () - *String* **getPlayerName** ()
@ -32,6 +32,8 @@ Dies könnt auch als Checkliste verwenden, um zu sehen, ob ihr bereits alle Meth
- *Province* ( *int* provinceID, *int* continentID, *int* xPos, *int* yPos, *String* displayName, *int* stars, *int[]* neighbourProvinces ) - *Province* ( *int* provinceID, *int* continentID, *int* xPos, *int* yPos, *String* displayName, *int* stars, *int[]* neighbourProvinces )
- *int* **getXPos** ()
- *int* **getYPos** ()
- *int* **getID** () - *int* **getID** ()
- *int* **getContinentID** () - *int* **getContinentID** ()
- *String* **getDisplayName** () - *String* **getDisplayName** ()

Loading…
Cancel
Save