An error occurred while loading the file. Please try again.
-
jez04 authorede4537fa7
Level.java 1.56 KiB
package lab;
import javafx.geometry.Dimension2D;
import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
public class Level {
private double width;
private double height;
private DrawableSimulable[] entities;
private Player player;
public Level(double width, double height, int monsterCount) {
this.width = width;
this.height = height;
player = new Player(this, new Point2D(20, 250), new Point2D(100, -20));
entities = new DrawableSimulable[monsterCount+4];
entities[0] = new NicerObstacle(this, new Point2D(20, 150));
entities[1] = new Obstacle(this, new Point2D(300, 200), new Dimension2D(80, 40));
entities[2] = new Obstacle(this);
entities[3] = player;
for (int i = 4; i < entities.length; i++) {
entities[i] = new Monster(this);
}
}
public void draw(GraphicsContext gc) {
gc.setFill(Color.WHITE);
gc.clearRect(0, 0, width, height);
for (DrawableSimulable entity : entities) {
entity.draw(gc);
}
}
public void simulate(double delay) {
for (DrawableSimulable entity : entities) {
entity.simulate(delay);
}
for (int i = 0; i < entities.length; i++) {
if (entities[i] instanceof Collisionable c1) {
for (int j = i + 1; j < entities.length; j++) {
if (entities[j] instanceof Collisionable c2) {
if (c1.intersect(c2.getBoundingBox())) {
c1.hitBy(c2);
c2.hitBy(c1);
}
}
}
}
}
}
public double getWidth() {
return width;
}
public double getHeight() {
return height;
}
public Player getPlayer() {
return player;
}
}