diff --git a/pom.xml b/pom.xml
index 90aba00..e2e4eae 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
org.openjfx
javafx-graphics
- 18
+ 19
org.springframework
@@ -33,7 +33,7 @@
org.apache.groovy
groovy
- 4.0.5
+ 4.0.6
org.junit.jupiter
@@ -43,7 +43,7 @@
org.springframework
spring-context
- 5.3.22
+ 5.3.23
commons-logging
@@ -54,7 +54,7 @@
org.slf4j
slf4j-log4j12
- 2.0.1
+ 2.0.3
org.reflections
@@ -64,7 +64,7 @@
org.springframework
spring-core
- 5.3.22
+ 5.3.23
org.springframework
@@ -79,7 +79,7 @@
org.springframework.boot
spring-boot-starter-mail
- 2.7.3
+ 2.7.4
diff --git a/src/cz/spsmb/ctvrtak/c_spring/f_resource_files/resources/META-INF/data/dictionary_cs.properties b/src/cz/spsmb/ctvrtak/c_spring/f_resource_files/resources/META-INF/data/dictionary_cs.properties
new file mode 100644
index 0000000..a192167
--- /dev/null
+++ b/src/cz/spsmb/ctvrtak/c_spring/f_resource_files/resources/META-INF/data/dictionary_cs.properties
@@ -0,0 +1,8 @@
+main.title=Vítejte ve slu?b? Moje dokumenty
+main.menu.1=Zobrazit v?echny Moje dokumenty
+main.menu.2=Zobrazit v?echny typy dokument?
+main.menu.3=Vyhledávání podle typu
+main.menu.4=Odejít
+
+login.success=Tento u?ivatel je autorizovaný
+login.failure=VAROVÁNÍ! Tento u?ivatel nemá oprávn?ní!
\ No newline at end of file
diff --git a/src/cz/spsmb/ctvrtak/c_spring/m_email_scheduling/main/spring/email/EmailService.java b/src/cz/spsmb/ctvrtak/c_spring/m_email_scheduling/main/spring/email/EmailService.java
index 19735d6..c6ffa2e 100644
--- a/src/cz/spsmb/ctvrtak/c_spring/m_email_scheduling/main/spring/email/EmailService.java
+++ b/src/cz/spsmb/ctvrtak/c_spring/m_email_scheduling/main/spring/email/EmailService.java
@@ -10,6 +10,7 @@
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
/**
diff --git a/src/cz/spsmb/ctvrtak/c_spring/m_email_scheduling/test/spring/MyDocumentsTest.java b/src/cz/spsmb/ctvrtak/c_spring/m_email_scheduling/test/spring/MyDocumentsTest.java
index 557b9f2..f1ca7d3 100644
--- a/src/cz/spsmb/ctvrtak/c_spring/m_email_scheduling/test/spring/MyDocumentsTest.java
+++ b/src/cz/spsmb/ctvrtak/c_spring/m_email_scheduling/test/spring/MyDocumentsTest.java
@@ -13,7 +13,9 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.stereotype.Repository;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@@ -38,24 +40,22 @@ public void testScheduler() throws InterruptedException{
}
@Test
- @Disabled
public void testEmail() throws InterruptedException{
log.debug("Testing Email...");
Assertions.assertNotNull(email);
long start = new Date().getTime();
- email.send("ahoj@seznam.cz", "stemberk@spsmb.cz", "Hello World1!", "Hello There!!");
+ email.send("franta@seznam.cz", "stemberk@spsmb.cz", "Hello World1!", "Hello There!!");
long end = new Date().getTime();
long time = (end - start)/1000;
log.debug("Sending email done. Took: " + time + " seconds.");
}
@Test
- @Disabled
public void testAsyncEmail() throws InterruptedException{
log.debug("Testing Async Email...");
Assertions.assertNotNull(email);
long start = new Date().getTime();
- email.sendAsync("ahoj@seznam.cz", "stemberk@spsmb.cz", "Hello World Async, 2. pokus!", "Hello There!!");
+ email.sendAsync("franta@seznam.cz", "stemberk@spsmb.cz", "Hello World Async, 2. pokus!", "Hello There!!");
long end = new Date().getTime();
long time = (end - start)/1000;
log.debug("Sending Async email done. Took: " + time + " seconds.");
diff --git a/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/b_animace/Board.java b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/b_animace/Board.java
index 9809f32..4bf2cf7 100644
--- a/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/b_animace/Board.java
+++ b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/b_animace/Board.java
@@ -19,6 +19,7 @@ public class Board extends javafx.animation.AnimationTimer {
private Image star;
// private Timer timer;
private int x, y;
+ private int x_velocity, y_velocity;
private Canvas canvas;
public Board() {
@@ -37,12 +38,23 @@ public Canvas getCanvas() {
@Override
public void handle(long l) {
- x += 1;
- y += 1;
+ x += x_velocity;
+ y += y_velocity;
if (y > B_HEIGHT) {
- y = INITIAL_Y;
- x = INITIAL_X;
+ y_velocity = -y_velocity;
+ }
+
+ if(x > B_WIDTH) {
+ x_velocity = -x_velocity;
+ }
+
+ if (y < 0) {
+ y_velocity = -y_velocity;
+ }
+
+ if (x < 0) {
+ x_velocity = -x_velocity;
}
this.drawStar();
}
@@ -59,9 +71,28 @@ private void initBoard() {
loadImage();
x = INITIAL_X;
y = INITIAL_Y;
+
+ setRandomVelocity();
+ }
+
+ private void setRandomVelocity(){
+ if(x_velocity < 0){
+ x_velocity = (int) (Math.random() * 10);
+ } else {
+ x_velocity = (int) (Math.random() * 10) * -1;
+ }
+
+ if(y_velocity < 0){
+ y_velocity = (int) (Math.random() * 10);
+ } else {
+ y_velocity = (int) (Math.random() * 10) * -1;
+ }
}
private void drawStar() {
GraphicsContext gc = canvas.getGraphicsContext2D();
+ gc.setFill(Color.BLACK);
+ gc.fillRect(0,0, canvas.getWidth(), canvas.getHeight());
+
gc.drawImage(star, x, y);
gc.setLineWidth(2);
gc.setStroke(Color.BLACK);
diff --git a/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Board.java b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Board.java
index 7168786..51e0093 100644
--- a/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Board.java
+++ b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Board.java
@@ -52,10 +52,33 @@ public void handle(long l) {
private void step() {
spaceShip.move();
GraphicsContext gc = canvas.getGraphicsContext2D();
+ gc.setFill(javafx.scene.paint.Color.BLACK);
+ gc.fillRect(0,0,canvas.getWidth(),canvas.getHeight());
+
+ for (Projectile p : spaceShip.getProjectiles()) {
+ if(p.getX() > canvas.getWidth() || p.getX() < 0 || p.getY() > canvas.getHeight() || p.getY() < 0) {
+ spaceShip.getProjectiles().remove(p);
+ continue;
+ }
+ for (Enemy e : spaceShip.getEnemies()) {
+ if (p.getX() + p.getHeight() >= e.getX() - e.getWidth() && p.getX() - p.getHeight() <= e.getX() + e.getWidth() && p.getY() + p.getWidth() >= e.getY() - e.getHeight() && p.getY() - p.getWidth() <= e.getY() + e.getHeight()) {
+ gc.drawImage(e.getExplosion(), e.getX(), e.getY());
+ spaceShip.getEnemies().remove(e);
+ spaceShip.getProjectiles().remove(p);
+ }
+ }
+ p.move();
+ gc.drawImage(p.getImage(), p.getX(), p.getY());
+ }
+
+ for(Enemy e : spaceShip.getEnemies()) {
+ gc.drawImage(e.getImage(), e.getX(), e.getY());
+ }
+
+
gc.drawImage(spaceShip.getImage(), spaceShip.getX(), spaceShip.getY());
- //repaint(spaceShip.getX()-1, spaceShip.getY()-1,
- // spaceShip.getWidth()+2, spaceShip.getHeight()+2);
}
+
/*
private class TAdapter extends KeyAdapter {
diff --git a/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Enemy.java b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Enemy.java
new file mode 100644
index 0000000..6ad64e9
--- /dev/null
+++ b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Enemy.java
@@ -0,0 +1,52 @@
+package cz.spsmb.ctvrtak.e_javafx.hry.a_zaklady.c_pohyb_spritu;
+
+import javafx.scene.image.Image;
+
+public class Enemy {
+ int x, y;
+ int dx, dy;
+ int width, height;
+ Image image;
+ Image explosion;
+
+ public Enemy(int x, int y) {
+ this.x = x;
+ this.y = y;
+ this.image = new Image("alien.png");
+ this.explosion = new Image("star.png");
+ this.width = (int) image.getWidth();
+ this.height = (int) image.getHeight();
+ }
+
+ public int getX() {
+ return x;
+ }
+
+ public int getY() {
+ return y;
+ }
+
+ public int getDx() {
+ return dx;
+ }
+
+ public int getDy() {
+ return dy;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ public Image getImage() {
+ return image;
+ }
+
+ public Image getExplosion() {
+ return explosion;
+ }
+}
diff --git a/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Projectile.java b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Projectile.java
new file mode 100644
index 0000000..36a9540
--- /dev/null
+++ b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/Projectile.java
@@ -0,0 +1,55 @@
+package cz.spsmb.ctvrtak.e_javafx.hry.a_zaklady.c_pohyb_spritu;
+import javafx.scene.image.Image;
+
+public class Projectile {
+ private int x, y;
+ private int dx, dy;
+ private int width, height;
+ private Image image;
+
+ public Projectile(int x, int y, int dx, int dy) {
+ this.x = x;
+ this.y = y;
+ this.dx = dx;
+ this.dy = dy;
+ this.image = new Image("missile.png");
+ this.width = (int) image.getWidth();
+ this.height = (int) image.getHeight();
+ }
+
+ public void move() {
+ x += dx;
+ y += dy;
+ }
+
+ public int getX() {
+ return x;
+ }
+
+ public int getY() {
+ return y;
+ }
+
+ public int getDx() {
+ return dx;
+ }
+
+ public int getDy() {
+ return dy;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ public Image getImage() {
+ return image;
+ }
+}
+
+
+
diff --git a/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/SpaceShip.java b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/SpaceShip.java
index 5a37ee4..4261946 100644
--- a/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/SpaceShip.java
+++ b/src/cz/spsmb/ctvrtak/e_javafx/hry/a_zaklady/c_pohyb_spritu/SpaceShip.java
@@ -1,25 +1,32 @@
package cz.spsmb.ctvrtak.e_javafx.hry.a_zaklady.c_pohyb_spritu;
-
-
+import javafx.scene.SnapshotParameters;
+import javafx.scene.canvas.Canvas;
import javafx.scene.image.Image;
+import javafx.scene.image.ImageView;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
+import javafx.scene.paint.Color;
+
+import java.util.ArrayList;
import static javafx.scene.input.KeyEvent.KEY_PRESSED;
public class SpaceShip {
-
- private int dx=1;
+ private int dx;
private int dy;
private int x = 40;
private int y = 60;
private double w;
private double h;
private Image image;
+ private ArrayList projectiles;
+ private ArrayList enemies;
+ private KeyCode lastPressed;
public SpaceShip() {
-
loadImage();
+ enemies = new ArrayList<>();
+ projectiles = new ArrayList<>();
}
private void loadImage() {
@@ -37,43 +44,80 @@ public void move() {
}
public int getX() {
-
return x;
}
public int getY() {
-
return y;
}
public Image getImage() {
-
return image;
}
public void keyPressed(KeyEvent e) {
-
KeyCode key = e.getCode();
- //e.getEventType() == KEY_PRESSED
+ if(key == KeyCode.SPACE){
+ int velocityX = 0;
+ int velocityY = 0;
+ if(lastPressed == KeyCode.LEFT) {
+ velocityX = -1;
+ }
+ if(lastPressed == KeyCode.RIGHT) {
+ velocityX = 1;
+ }
+ if(lastPressed == KeyCode.UP) {
+ velocityY = -1;
+ }
+ if(lastPressed == KeyCode.DOWN) {
+ velocityY = 1;
+ }
+
+ projectiles.add(new Projectile(x, y, velocityX, velocityY));
+ }
+
if (key == KeyCode.LEFT) {
- dx = -2;
+ dx = -1;
+ lastPressed = key;
}
if (key == KeyCode.RIGHT) {
- dx = 2;
+ dx = 1;
+ lastPressed = key;
}
if (key == KeyCode.UP) {
- dy = -2;
+ dy = -1;
+ lastPressed = key;
}
if (key == KeyCode.DOWN) {
- dy = 2;
+ dy = 1;
+ lastPressed = key;
+ }
+
+ if(key == KeyCode.ESCAPE){
+ System.exit(0);
+ }
+
+ if(key == KeyCode.ENTER){
+ enemies.add(new Enemy((int)(Math.random() * 300), (int)(Math.random() * 300)));
}
}
- public void keyReleased(KeyEvent e) {
+ public ArrayList getProjectiles() {
+ return projectiles;
+ }
+ public void setProjectiles(ArrayList projectiles) {
+ this.projectiles = projectiles;
+ }
+
+ public void setEnemies(ArrayList enemies) {
+ this.enemies = enemies;
+ }
+
+ public void keyReleased(KeyEvent e) {
KeyCode key = e.getCode();
if (key == KeyCode.LEFT) {
@@ -92,4 +136,12 @@ public void keyReleased(KeyEvent e) {
dy = 0;
}
}
+
+ public ArrayList getEnemies() {
+ return enemies;
+ }
+
+ public KeyCode getLastPressed() {
+ return lastPressed;
+ }
}