From f6d8e3a0d56721f205643b1f0e2d35cd2ed0b187 Mon Sep 17 00:00:00 2001 From: koz01 <koz01@PCCPIT1V203-040.msad.vsb.cz> Date: Mon, 24 Oct 2022 12:12:13 +0200 Subject: [PATCH] final solution --- src/main/java/lab/BulletAnimated.java | 5 +++++ src/main/java/lab/HitListener.java | 2 ++ src/main/java/lab/World.java | 10 +++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/lab/BulletAnimated.java b/src/main/java/lab/BulletAnimated.java index d232287..0120333 100644 --- a/src/main/java/lab/BulletAnimated.java +++ b/src/main/java/lab/BulletAnimated.java @@ -113,4 +113,9 @@ public class BulletAnimated implements DrawableSimulable, Collisionable{ speed = initialSpeed; } + public void setHitListener(HitListener hitListener) { + this.hitListener = hitListener; + System.out.println(hitListener.getClass()); + } + } diff --git a/src/main/java/lab/HitListener.java b/src/main/java/lab/HitListener.java index 51cc8dd..5e58e3e 100644 --- a/src/main/java/lab/HitListener.java +++ b/src/main/java/lab/HitListener.java @@ -1,5 +1,7 @@ package lab; +@FunctionalInterface public interface HitListener { void hit(); + } diff --git a/src/main/java/lab/World.java b/src/main/java/lab/World.java index f73df60..18896e1 100644 --- a/src/main/java/lab/World.java +++ b/src/main/java/lab/World.java @@ -27,7 +27,9 @@ public class World { Cannon cannon = new Cannon(this, new Point2D(50, 50), new Point2D(100, 20)); entities = new DrawableSimulable[2 + NUMBER_OF_DRAGONS]; entities[0] = cannon; - entities[1] = new BulletAnimated(this, cannon, new Point2D(30, 60), new Point2D(0, 0), 40); + BulletAnimated bulletAnimated; + entities[1] = bulletAnimated = new BulletAnimated(this, cannon, new Point2D(30, 60), new Point2D(0, 0), 40); + bulletAnimated.setHitListener(this::hit); Random rnd = new Random(); for (int i = 2; i < entities.length; i++) { @@ -118,5 +120,11 @@ public class World { public void setGameListener(GameListener gameListener) { this.gameListener = gameListener; } + + + private void hit() { + hits++; + gameListener.stateChanged(shoots, hits); + } } -- GitLab