public class RandomWorldGenerator extends Object
ArrayList
übergibt. Diese enthält die zu generierenden Objektklassen und
die Spawnwahrscheinlichkeiten. Mit der Methode generate(World, float, boolean, boolean)
werden nun
in der angegebenen Welt Objekte generiert.
Die Spawnwahrscheinlichkeiten sind relativ zueinander. Z.B. liegt bei den Wahrscheinlichkeiten
15f und 45f ein 1:3-Verhältnis vor. Generatable
-Objekte bei denen isStatic == true
ist,
werden vor den anderen Objekten erzeugt. Ebenso ist es möglich, dass mehr Objekte spawnen als erwünscht,
da der Generator so oder so soviele statische Objekte spawnt, wie es in den Generatable
-Objekten vermerkt ist.
Modifier and Type | Field and Description |
---|---|
protected ArrayList<Generatable> |
generatorObjects
Die Liste mit den zu spawnenden
Generatable -Objekten. |
Constructor and Description |
---|
RandomWorldGenerator(ArrayList<Generatable> classes)
Instantiiert einen
RandomWorldGenerator . |
Modifier and Type | Method and Description |
---|---|
void |
generate(greenfoot.World world,
float surfacePercentage,
boolean surfacePercentageAsObjectNumber,
boolean staticCounts)
Generiert in der angegebenen Welt zufällige Strukturen.
|
Coordinate |
generateRandomCoordinate(greenfoot.World world)
Generiert eine Zufallskoordinate in den Grenzen der angegebenen Welt.
|
boolean |
maySpawn(greenfoot.World world,
Generatable g,
int x,
int y)
Gibt zurück, ob das angegebene
Generatable an angegebener Stelle spawnen kann. |
void |
placeRandomObject(greenfoot.World world,
int x,
int y)
Platziert ein zufälliges
Generatable aus der Liste in der Welt world . |
protected ArrayList<Generatable> generatorObjects
Generatable
-Objekten.public RandomWorldGenerator(ArrayList<Generatable> classes)
RandomWorldGenerator
.classes
- Die Generatable
-Objekte, die die Spawnklassen enthalten.public void generate(greenfoot.World world, float surfacePercentage, boolean surfacePercentageAsObjectNumber, boolean staticCounts)
world
- Die Welt, in der generiert werden soll.surfacePercentage
- Wie viel Prozent der Fläche genutzt werden soll (z.B. 0.4f
)surfacePercentageAsObjectNumber
- Ob surfacePercentage
eine feste Anzahl an Spawnobjekten sein soll.staticCounts
- Ob statische Objekte in der surfacePercentage
miteinbezogen werden.public Coordinate generateRandomCoordinate(greenfoot.World world)
world
- Die Welt, deren Größe berücksichtigt werden soll.public boolean maySpawn(greenfoot.World world, Generatable g, int x, int y)
Generatable
an angegebener Stelle spawnen kann.world
- Die Welt, in der gespawnt werden würde.g
- Das Generatable, dass gespawnt werden soll.x
- Der x-Wert der potentiellen Spawnkoordinate.y
- Der y-Wert der potentiellen Spawnkoordinate.public void placeRandomObject(greenfoot.World world, int x, int y)
Generatable
aus der Liste in der Welt world
.world
- Die Welt, in der gespawnt wird.x
- Der x-Wert der Spawnkoordinate.y
- Der y-Wert der Spawnkoordinate.