-
jez04 authored268d0795
Level.java 1.43 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;
public Level(double width, double height) {
this.width = width;
this.height = height;
entities = new DrawableSimulable[9];
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] = new Player(this, new Point2D(20, 250), new Point2D(100, -20));
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;
}
}