summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-03-01 16:32:56 +0100
committerGustav Sörnäs <gustav@sornas.net>2021-03-01 16:49:48 +0100
commit466dd14287dde6ac5afc6c90379590699dbc6dc9 (patch)
treed1c038692059526781157a86599e7c5d5f2379fd /src
parent122ef4d5d1d297467fe58d8ccf190b9661f300ca (diff)
downloadtdde30-466dd14287dde6ac5afc6c90379590699dbc6dc9.tar.gz
show image on startup
Diffstat (limited to 'src')
-rw-r--r--src/se/liu/gusso230/tetris/Board.java4
-rw-r--r--src/se/liu/gusso230/tetris/ImageComponent.java18
-rw-r--r--src/se/liu/gusso230/tetris/TetrisComponent.java2
-rw-r--r--src/se/liu/gusso230/tetris/TetrisViewer.java14
4 files changed, 34 insertions, 4 deletions
diff --git a/src/se/liu/gusso230/tetris/Board.java b/src/se/liu/gusso230/tetris/Board.java
index 9b423cf..d43d3a4 100644
--- a/src/se/liu/gusso230/tetris/Board.java
+++ b/src/se/liu/gusso230/tetris/Board.java
@@ -6,7 +6,8 @@ import java.util.Random;
public class Board {
private enum GameState {
- RUNNING, GAME_OVER,
+ RUNNING,
+ GAME_OVER,
}
private GameState state = GameState.RUNNING;
@@ -37,7 +38,6 @@ public class Board {
}
public void tick() {
- System.out.println("tick");
if (state == GameState.RUNNING) {
if (falling == null) {
createFalling();
diff --git a/src/se/liu/gusso230/tetris/ImageComponent.java b/src/se/liu/gusso230/tetris/ImageComponent.java
new file mode 100644
index 0000000..98a09f1
--- /dev/null
+++ b/src/se/liu/gusso230/tetris/ImageComponent.java
@@ -0,0 +1,18 @@
+package se.liu.gusso230.tetris;
+
+import javax.swing.*;
+import java.awt.*;
+
+public class ImageComponent extends JComponent {
+ ImageIcon icon;
+
+ public ImageComponent(String name) {
+ icon = new ImageIcon(ClassLoader.getSystemResource(name));
+ }
+
+ public void paintComponent(final Graphics g) {
+ final Graphics2D g2d = (Graphics2D) g;
+ g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+ icon.paintIcon(this, g, 0, 0);
+ }
+}
diff --git a/src/se/liu/gusso230/tetris/TetrisComponent.java b/src/se/liu/gusso230/tetris/TetrisComponent.java
index f358e7a..2c10941 100644
--- a/src/se/liu/gusso230/tetris/TetrisComponent.java
+++ b/src/se/liu/gusso230/tetris/TetrisComponent.java
@@ -62,6 +62,8 @@ public class TetrisComponent extends JComponent implements BoardListener {
g.fillRect(x * (TILE_SIZE + TILE_GAP), y * (TILE_SIZE + TILE_GAP), TILE_SIZE, TILE_SIZE);
}
}
+
+ requestFocus();
}
public Color getColor(int x, int y) {
diff --git a/src/se/liu/gusso230/tetris/TetrisViewer.java b/src/se/liu/gusso230/tetris/TetrisViewer.java
index 4139188..369991e 100644
--- a/src/se/liu/gusso230/tetris/TetrisViewer.java
+++ b/src/se/liu/gusso230/tetris/TetrisViewer.java
@@ -6,9 +6,11 @@ import java.awt.event.ActionEvent;
public class TetrisViewer {
private JMenuBar menuBar;
+ private ImageComponent imageComponent;
private TetrisComponent tetrisComponent;
public TetrisViewer(Board board) {
+ imageComponent = new ImageComponent("images/hello_world.png");
tetrisComponent = new TetrisComponent(board);
board.addListener(tetrisComponent);
}
@@ -37,11 +39,19 @@ public class TetrisViewer {
public void show() {
JFrame frame = new JFrame("Tetris");
+ frame.setJMenuBar(setupMenuBar());
frame.setLayout(new BorderLayout());
+ frame.setVisible(true);
+
+ frame.add(imageComponent, BorderLayout.CENTER);
+ frame.pack();
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException ignored) {}
+
+ frame.remove(imageComponent);
frame.add(tetrisComponent, BorderLayout.CENTER);
- frame.setJMenuBar(setupMenuBar());
frame.pack();
- frame.setVisible(true);
update();
}