@ -1,4 +1,5 @@
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 ;
@ -20,11 +21,9 @@ public abstract class GeneralMap extends World
/ *
/ *
Die einzelnen Positionen der Provinzen wird mit SCALE_VALUE / 10000 multipliziert .
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 .
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 8000 einzutragen .
Bei diesem Beispiel w ä re hier , neben dem Offset oben , der Wert 0.8 einzutragen .
Die vorherige Erh ö hung des Skalars ist mit der h ö heren Genauigkeit bei der Arbeit mit dem int - Basistyp zu erkl ä ren .
* /
* /
private final int SCALE_VALUE = 10000 ; // SCALE_VALUE/10000 wird verwendet
private final double SCALE_VALUE = 0.8 ;
protected Province [ ] provinces ;
protected Province [ ] provinces ;
protected Player [ ] players ;
protected Player [ ] players ;
@ -52,11 +51,10 @@ public abstract class GeneralMap extends World
protected void initProvinces ( ) {
protected void initProvinces ( ) {
for ( int i = 1 ; i < provinces . length ; i + + ) {
for ( int i = 1 ; i < provinces . length ; i + + ) {
Province p = provinces [ i ] ;
Province p = provinces [ i ] ;
int s = SCALE_VALUE / 10000 ;
int x = p . getXPos ( ) ;
int x = p . getX ( ) ;
int y = p . getYPos ( ) ;
int y = p . getY ( ) ;
x = ( ( int ) Math . floor ( x * SCALE_VALUE ) ) + X_OFFSET ;
x = ( x * s ) + X_OFFSET ;
y = ( ( int ) Math . floor ( y * SCALE_VALUE ) ) + Y_OFFSET ;
y = ( y * s ) + y_OFFSET ;
addObject ( p , x , y ) ;
addObject ( p , x , y ) ;
}
}
}
}