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

feat: assignment

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