Skip to content
Snippets Groups Projects
Commit 8e204918 authored by jez04's avatar jez04
Browse files

feat: lab03 assignment

parent 8b6d5942
No related merge requests found
Showing
with 38 additions and 31 deletions
......@@ -9,6 +9,7 @@ import javafx.geometry.Point2D;
import javafx.geometry.Rectangle2D;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.image.Image;
import lab.Setup;
public class LochNess extends WorldEntity implements Collisionable {
......@@ -22,9 +23,13 @@ public class LochNess extends WorldEntity implements Collisionable {
super(scene, new Point2D(0, 0), 90);
this.scene = scene;
image = new Image(LochNess.class.getResourceAsStream("LochNess.gif"));
position = new Point2D(RANDOM.nextDouble(scene.getSize().getWidth() * 0.3, scene.getSize().getWidth()),
RANDOM.nextDouble(scene.getSize().getHeight() * 0.5, scene.getSize().getHeight() - image.getHeight()));
speed = new Point2D(-RANDOM.nextDouble(50, 150), 0);
position = new Point2D(
RANDOM.nextDouble(scene.getSize().getWidth() * Setup.getInstance().getLochnessMinXPopsition(),
scene.getSize().getWidth()),
RANDOM.nextDouble(scene.getSize().getHeight() * Setup.getInstance().getLochnessMinYPopsition(),
scene.getSize().getHeight() - image.getHeight()));
speed = new Point2D(-RANDOM.nextDouble(Setup.getInstance().getLochnessMinSpeed(),
Setup.getInstance().getLochnessMaxSpeed()), 0);
}
@Override
......@@ -76,7 +81,7 @@ public class LochNess extends WorldEntity implements Collisionable {
public boolean removeDeadListener(DeadListener o) {
return deadListeners.remove(o);
}
private void fireLochNessDead() {
for (DeadListener deadListener : deadListeners) {
deadListener.lochnessDead();
......
......@@ -7,6 +7,7 @@ import java.util.List;
import javafx.geometry.Dimension2D;
import javafx.geometry.Point2D;
import javafx.scene.canvas.GraphicsContext;
import lab.Setup;
public class Scene {
......@@ -28,7 +29,7 @@ public class Scene {
sceneEntitites.add(background);
sceneEntitites.add(rock);
sceneEntitites.add(boat);
for (int i = 0; i < numberOfMonsters; i++) {
for (int i = 0; i < numberOfMonsters * Setup.getInstance().getLochnessMultiplier(); i++) {
sceneEntitites.add(new LochNess(this));
}
}
......@@ -77,10 +78,11 @@ public class Scene {
public Background getBackground() {
return background;
}
public void add(DrawableSimulable entity) {
entititesToAdd.add(entity);
}
public void remove(DrawableSimulable entity) {
entititesToRemove.add(entity);
}
......
......@@ -9,6 +9,7 @@ import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
import lab.Setup;
/**
* 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) {
Setup.configure(new Setup());
launch(args);
}
......
......@@ -2,7 +2,6 @@ package lab.gui;
import java.util.List;
import cz.vsb.fei.java2.lab02.common.Score;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
......@@ -13,7 +12,8 @@ import javafx.scene.control.Label;
import javafx.scene.control.Slider;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import lab.ScoreStorageFactory;
import lab.Setup;
import lab.data.Score;
import lab.game.DrawingThread;
import lab.game.LochNess;
import lab.game.Scene;
......@@ -78,17 +78,17 @@ public class GameController {
void btnGenerateScoreAction(ActionEvent event) {
Score score = Score.generate();
this.scores.getItems().add(score);
ScoreStorageFactory.getInstance().insertScore(score);
Setup.getInstance().getScoreStorageInterface().insertScore(score);
}
@FXML
void btnLoadAllAction(ActionEvent event) {
updateScoreTable(ScoreStorageFactory.getInstance().getAll());
updateScoreTable(Setup.getInstance().getScoreStorageInterface().getAll());
}
@FXML
void btnLoadFirstTenAction(ActionEvent event) {
updateScoreTable(ScoreStorageFactory.getInstance().getFirstTen());
updateScoreTable(Setup.getInstance().getScoreStorageInterface().getFirstTen());
}
private void updateScoreTable(List<Score> scores) {
......
......@@ -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.Setup;
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);
Setup.getInstance().getScoreStorageInterface().insertScore(score);
}
@FXML
void btnLoadAllAction(ActionEvent event) {
updateScoreTable(ScoreStorageFactory.getInstance().getAll());
updateScoreTable(Setup.getInstance().getScoreStorageInterface().getAll());
}
@FXML
void btnLoadFirstTenAction(ActionEvent event) {
updateScoreTable(ScoreStorageFactory.getInstance().getFirstTen());
updateScoreTable(Setup.getInstance().getScoreStorageInterface().getFirstTen());
}
private void updateScoreTable(List<Score> scores) {
......@@ -103,8 +103,8 @@ public class MainScreenController {
}
private void initDB() {
ScoreStorageFactory.getInstance().init();
scores.getItems().addAll(ScoreStorageFactory.getInstance().getAll());
Setup.getInstance().getScoreStorageInterface().init();
scores.getItems().addAll(Setup.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();
......
import cz.vsb.fei.java2.lab02.common.ScoreStorageInterface;
module lab01 {
module lab02_module {
requires transitive javafx.controls;
requires javafx.fxml;
requires javafx.base;
requires cz.vsb.fei.java2.lab02.common_module;
requires java.sql;
opens lab.gui to javafx.fxml;
exports lab.gui to javafx.fxml,javafx.graphics;
uses ScoreStorageInterface;
}
\ No newline at end of file
}
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