Skip to content
Snippets Groups Projects
Commit 7e54e01d authored by jez04's avatar jez04
Browse files

feat: assignment

parent 798889ae
No related merge requests found
Showing
with 34 additions and 23 deletions
package cz.vsb.fei.java2.lab02.common;
package lab.data;
import java.util.Random;
......
......@@ -8,6 +8,7 @@ import javafx.geometry.Dimension2D;
import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import lab.Config;
public class Level {
......@@ -27,7 +28,7 @@ public class Level {
entities.add(new Obstacle(this, new Point2D(300, 200), new Dimension2D(80, 40)));
entities.add(new Obstacle(this));
entities.add(player);
for (int i = 0; i < monsterCount; i++) {
for (int i = 0; i < monsterCount*Config.getInstance().getMonsterMultiplier(); i++) {
entities.add(new Monster(this));
}
}
......
......@@ -9,6 +9,7 @@ import javafx.geometry.Point2D;
import javafx.geometry.Rectangle2D;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.image.Image;
import lab.Config;
public class Monster extends WorldEntity implements Collisionable {
......@@ -21,9 +22,12 @@ public class Monster extends WorldEntity implements Collisionable {
public Monster(Level level) {
super(level, new Point2D(0, 0), 100);
image = new Image(getClass().getResourceAsStream("red-monster.gif"));
position = new Point2D(level.getWidth() * 0.5 + RANDOM.nextDouble(level.getWidth() * 0.5 - image.getWidth()),
position = new Point2D(
level.getWidth() * Config.getInstance().getMonsterMinXPopsition() + RANDOM.nextDouble(
level.getWidth() - image.getWidth()),
RANDOM.nextDouble(level.getHeight()));
speed = new Point2D(0, RANDOM.nextDouble(50, 150));
speed = new Point2D(0, RANDOM.nextDouble(Config.getInstance().getMonsterMinSpeed(),
Config.getInstance().getMonsterMaxSpeed()));
}
public Monster(Level level, Point2D position) {
......@@ -42,7 +46,7 @@ public class Monster extends WorldEntity implements Collisionable {
public void simulate(double delay) {
position = position.add(speed.multiply(delay / 1_000_000_000));
position = new Point2D(position.getX(), position.getY() % level.getHeight());
if(position.getY() + image.getHeight() < 0) {
if (position.getY() + image.getHeight() < 0) {
position = new Point2D(position.getX(), level.getHeight());
}
}
......@@ -61,7 +65,8 @@ public class Monster extends WorldEntity implements Collisionable {
public void hitBy(Collisionable another) {
if (another instanceof Player) {
level.remove(this);
level.add(new Obstacle(level, getPosition(), new Dimension2D(60, 30)));
level.add(new Obstacle(level, getPosition(), new Dimension2D(Config.getInstance().getObstacleWidth(),
Config.getInstance().getObstacleHeight())));
fireMonsterDead();
}
......
......@@ -4,13 +4,15 @@ import javafx.geometry.Dimension2D;
import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import lab.Config;
public class Obstacle extends WorldEntity {
private Dimension2D size;
public Obstacle(Level level) {
this(level, new Point2D(200, 100), new Dimension2D(30, 20));
this(level, new Point2D(200, 100),
new Dimension2D(Config.getInstance().getObstacleWidth(), Config.getInstance().getObstacleHeight()));
}
public Obstacle(Level level, Point2D position, Dimension2D size) {
......
......@@ -8,11 +8,12 @@ import javafx.scene.canvas.GraphicsContext;
import javafx.scene.paint.Color;
import javafx.scene.transform.Affine;
import javafx.scene.transform.Rotate;
import lab.Config;
public class Player extends WorldEntity implements Collisionable {
private static final Random RANDOM = new Random();
private Point2D speed;
private double speedSize = 50;
private double speedSize = Config.getInstance().getPlayerStartSpeed();
private double angle;
public Player(Level level, Point2D position, Point2D speed) {
......
......@@ -9,6 +9,7 @@ import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
import lab.Config;
/**
* Class <b>App</b> - extends class Application and it is an entry point of the
......@@ -23,6 +24,7 @@ public class App extends Application {
private Stage primaryStage;
public static void main(String[] args) {
Config.configure(new Config());
launch(args);
}
......
......@@ -3,7 +3,6 @@ package lab.gui;
import java.io.IOException;
import java.util.List;
import cz.vsb.fei.java2.lab02.common.Score;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
......@@ -13,7 +12,8 @@ import javafx.scene.control.TextField;
import javafx.scene.control.ToggleButton;
import javafx.scene.control.ToggleGroup;
import javafx.scene.control.cell.PropertyValueFactory;
import lab.ScoreStorageFactory;
import lab.Config;
import lab.data.Score;
import lab.game.Difficult;
/**
......@@ -70,17 +70,17 @@ public class MainScreenController {
void btnGenerateScoreAction(ActionEvent event) {
Score score = Score.generate();
this.scores.getItems().add(score);
ScoreStorageFactory.getInstance().insertScore(score);
Config.getInstance().getScoreStorageInterface().insertScore(score);
}
@FXML
void btnLoadAllAction(ActionEvent event) {
updateScoreTable(ScoreStorageFactory.getInstance().getAll());
updateScoreTable(Config.getInstance().getScoreStorageInterface().getAll());
}
@FXML
void btnLoadFirstTenAction(ActionEvent event) {
updateScoreTable(ScoreStorageFactory.getInstance().getFirstTen());
updateScoreTable(Config.getInstance().getScoreStorageInterface().getFirstTen());
}
private void updateScoreTable(List<Score> scores) {
......@@ -103,9 +103,8 @@ public class MainScreenController {
}
private void initDB() {
//Stream.generate(Score::generate).limit(10).toList();
ScoreStorageFactory.getInstance().init();
scores.getItems().addAll(ScoreStorageFactory.getInstance().getAll());
Config.getInstance().getScoreStorageInterface().init();
scores.getItems().addAll(Config.getInstance().getScoreStorageInterface().getAll());
}
}
package cz.vsb.fei.java2.lab02.db;
package lab.storage;
import java.sql.Connection;
import java.sql.DriverManager;
......@@ -9,8 +9,8 @@ import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import cz.vsb.fei.java2.lab02.common.Score;
import cz.vsb.fei.java2.lab02.common.ScoreStorageInterface;
import lab.data.Score;
public class DbConnector implements ScoreStorageInterface {
......
package cz.vsb.fei.file;
package lab.storage;
import java.io.IOException;
import java.nio.file.Files;
......@@ -10,8 +10,7 @@ import java.util.Comparator;
import java.util.List;
import java.util.stream.Stream;
import cz.vsb.fei.java2.lab02.common.Score;
import cz.vsb.fei.java2.lab02.common.ScoreStorageInterface;
import lab.data.Score;
public class FileStorage implements ScoreStorageInterface {
......
package cz.vsb.fei.java2.lab02.common;
package lab.storage;
import java.util.List;
import lab.data.Score;
public interface ScoreStorageInterface {
List<Score> getAll();
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment