+ int numMountains = random.nextInt(5);
+ while (numMountains --> 0) {
+ final int pngWidth = 366;
+ double scale = 0.5 * (1 + random.nextDouble());
+ int x = random.nextInt(1920 + (int) (scale*pngWidth))
+ - (int) (scale*pngWidth/2);
+ int baseTint = 64 + random.nextInt(128);
+ Sprite mountain = graphicEntityModule.createSprite()
+ .setImage("mountain.png")
+ .setX(x)
+ .setY(680)
+ .setAnchorX(0.5)
+ .setAnchorY(283.0 / 321.0)
+ .setRotation((random.nextDouble() - 0.5) * Math.PI / 1800)
+ .setScaleX(random.nextInt(2) == 0 ? scale : -scale)
+ .setScaleY(scale * (1 + (random.nextDouble() - 0.5) / 2))
+ .setSkewX((random.nextDouble() - 0.5) / 4)
+ .setSkewY((random.nextDouble() - 0.5) / 8)
+ .setTint((baseTint + random.nextInt(16) - 8) * 0x010000
+ + (baseTint + random.nextInt(16) - 8) * 0x0100
+ + (baseTint + random.nextInt(16) - 8) * 0x01);
+ graphicEntityModule.createSprite().setImage("mountaintop.png")
+ .setX(mountain.getX())
+ .setY(mountain.getY())
+ .setAnchorX(mountain.getAnchorX())
+ .setAnchorY(mountain.getAnchorY())
+ .setRotation(mountain.getRotation())
+ .setScaleX(mountain.getScaleX())
+ .setScaleY(mountain.getScaleY())
+ .setSkewX(mountain.getSkewX())
+ .setSkewY(mountain.getSkewY());
+ }
+
+ int numTrees = random.nextInt(21);
+ ArrayList<Pos> poss = new ArrayList<Pos>(numTrees);