Add some mountains
authorJBM <jbm@codingame.com>
Wed, 27 May 2020 13:12:58 +0000 (15:12 +0200)
committerJBM <jbm@codingame.com>
Wed, 27 May 2020 14:56:48 +0000 (16:56 +0200)
src/main/java/com/codingame/game/View.java
src/main/resources/view/assets/game.xcf
src/main/resources/view/assets/mountain.png [new file with mode: 0644]
src/main/resources/view/assets/mountaintop.png [new file with mode: 0644]

index f39bbb8..13ac93f 100644 (file)
@@ -230,6 +230,39 @@ class View {
                 .setImage("background.png")
                 .setAnchor(0);
 
+        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);
         while (numTrees --> 0) {
index c1d9e89..b09d55d 100644 (file)
Binary files a/src/main/resources/view/assets/game.xcf and b/src/main/resources/view/assets/game.xcf differ
diff --git a/src/main/resources/view/assets/mountain.png b/src/main/resources/view/assets/mountain.png
new file mode 100644 (file)
index 0000000..f0dfb7a
Binary files /dev/null and b/src/main/resources/view/assets/mountain.png differ
diff --git a/src/main/resources/view/assets/mountaintop.png b/src/main/resources/view/assets/mountaintop.png
new file mode 100644 (file)
index 0000000..a4202d2
Binary files /dev/null and b/src/main/resources/view/assets/mountaintop.png differ