diff --git a/src/main/java/lab/Cannon.java b/src/main/java/lab/Cannon.java index 92c54310524127224b89db59c3b840b7709df328..f62ad473e01ef3ebeb3d8d0ba4bd2afce514c063 100644 --- a/src/main/java/lab/Cannon.java +++ b/src/main/java/lab/Cannon.java @@ -13,7 +13,7 @@ public class Cannon { private Point2D size; private World world; - + private final double speed = 20; public Cannon(World world, Point2D position, Point2D size) { @@ -24,7 +24,7 @@ public class Cannon { } public void simulate(double timeStep) { - angle = angle + direction*0.8; + angle = angle + direction*speed*timeStep; if(angle <=-90 || angle >= 0) { direction*=-1; } diff --git a/src/main/java/lab/Dragon.java b/src/main/java/lab/Dragon.java new file mode 100644 index 0000000000000000000000000000000000000000..e44374b06b3b5aaf01a63b24133e0811c9b9f707 --- /dev/null +++ b/src/main/java/lab/Dragon.java @@ -0,0 +1,41 @@ +package lab; + +import javafx.geometry.Point2D; +import javafx.scene.canvas.GraphicsContext; +import javafx.scene.image.Image; + +public class Dragon { + private static final int SIZE_OF_DRAGON = 50; + + private final World world; + + private Point2D position; + + private final Point2D velocity; + + private final Point2D dimension; + + private final Image image; + + public Dragon(World world, Point2D position, Point2D velocity) { + this(world, position, velocity, new Point2D(SIZE_OF_DRAGON, SIZE_OF_DRAGON)); + } + + public Dragon(World world, Point2D position, Point2D velocity, Point2D dimension) { + this.world = world; + this.position = position; + this.velocity = velocity; + this.dimension = dimension; + this.image = Constants.DRAGON_IMAGE; + } + + public void draw(GraphicsContext gc) { + Point2D p = world.getCanvasPoint(position); + gc.drawImage(image, p.getX(), p.getY(), dimension.getX(), dimension.getY()); + } + + + public void simulate(double deltaT) { + position = position.add(velocity.multiply(deltaT)); + } +} diff --git a/src/main/java/lab/World.java b/src/main/java/lab/World.java index 32e29063760794dc58a65e7060e1ad47a5f17cf0..7ae56d21a87d433a38aa342bdf0b9f05adcb807b 100644 --- a/src/main/java/lab/World.java +++ b/src/main/java/lab/World.java @@ -8,12 +8,14 @@ public class World { private double height; private BulletAnimated bulletAnimatted; private Cannon cannon; + private Dragon dragon; public World(double width, double height) { this.width = width; this.height = height; cannon = new Cannon(this, new Point2D(50, 50), new Point2D(100, 20)); bulletAnimatted = new BulletAnimated(this, cannon, new Point2D(30, 60), new Point2D(0, 0), 40); + dragon = new Dragon(this, new Point2D(100, 100), new Point2D(40, 40)); } public Point2D getCanvasPoint(Point2D worldPoint) { @@ -24,11 +26,13 @@ public class World { gc.clearRect(0, 0, width, height); cannon.draw(gc); bulletAnimatted.draw(gc); + dragon.draw(gc); } public void simulate(double timeDelta) { bulletAnimatted.simulate(timeDelta); cannon.simulate(timeDelta); + dragon.simulate(timeDelta); } public double getWidth() {