Skip to content

Commit 0ac46ff

Browse files
author
3DES
committed
Initial commit
0 parents  commit 0ac46ff

32 files changed

Lines changed: 2210 additions & 0 deletions

.gitignore

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
target/
2+
!.mvn/wrapper/maven-wrapper.jar
3+
!**/src/main/**/target/
4+
!**/src/test/**/target/
5+
6+
### IntelliJ IDEA ###
7+
.idea/modules.xml
8+
.idea/jarRepositories.xml
9+
.idea/compiler.xml
10+
.idea/libraries/
11+
*.iws
12+
*.iml
13+
*.ipr
14+
15+
### Eclipse ###
16+
.apt_generated
17+
.classpath
18+
.factorypath
19+
.project
20+
.settings
21+
.springBeans
22+
.sts4-cache
23+
24+
### NetBeans ###
25+
/nbproject/private/
26+
/nbbuild/
27+
/dist/
28+
/nbdist/
29+
/.nb-gradle/
30+
build/
31+
!**/src/main/**/build/
32+
!**/src/test/**/build/
33+
34+
### VS Code ###
35+
.vscode/
36+
37+
### Mac OS ###
38+
.DS_Store

pom.xml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xmlns="http://maven.apache.org/POM/4.0.0"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<groupId>org.example</groupId>
8+
<artifactId>JavaGameLibrary</artifactId>
9+
<version>1.0-SNAPSHOT</version>
10+
11+
<properties>
12+
<maven.compiler.source>8</maven.compiler.source>
13+
<maven.compiler.target>8</maven.compiler.target>
14+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15+
</properties>
16+
17+
</project>

src/main/java/GUI.java

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
import games.Game;
2+
import games.crosstheroad.CrossTheRoadGame;
3+
import games.flappybird.FlappyBirdGame;
4+
import games.jumpinggame.JumpingGame;
5+
import games.pong.PongGame;
6+
import games.snake.SnakeGame;
7+
import games.tetris.board.TetrisGame;
8+
import games.tictactoe.TicTacToe;
9+
10+
import javax.swing.*;
11+
import java.awt.*;
12+
import java.awt.event.KeyEvent;
13+
import java.awt.event.KeyListener;
14+
import java.util.ArrayList;
15+
16+
public class GUI extends JFrame {
17+
private final JPanel jPanel = new Menu();
18+
19+
private int frameWidth = 400;
20+
private int frameHeight = 800;
21+
22+
23+
public GUI() {
24+
25+
this.setBounds(600, 200, frameWidth, frameHeight);
26+
27+
jPanel.setBackground(Color.BLACK);
28+
jPanel.setLayout(new GridLayout(0, 1));
29+
jPanel.setVisible(true);
30+
addKeyListener((KeyListener) jPanel);
31+
this.add(jPanel);
32+
33+
34+
this.setVisible(true);
35+
}
36+
37+
private class Menu extends JPanel implements KeyListener {
38+
39+
private final ArrayList<GameInfo> games = new ArrayList<>();
40+
41+
private int gameNum = 0;
42+
private int selectedGame = 1;
43+
44+
45+
46+
public Menu() {
47+
48+
}
49+
50+
private void addGame(GameInfo game) {
51+
games.add(game);
52+
}
53+
54+
@Override
55+
public void paintComponent(Graphics g) {
56+
super.paintComponent(g);
57+
games.clear();
58+
gameNum = 0;
59+
60+
g.drawLine(frameWidth / 2, 0, frameWidth / 2, frameHeight);
61+
62+
g.setColor(Color.RED);
63+
g.drawString("Chose a game to play", (frameWidth / 2) - (g.getFontMetrics().stringWidth("Chose a game to play") / 2), 20);
64+
65+
g.setColor(Color.RED);
66+
67+
addGame(new GameInfo("Snake", new SnakeGame()));
68+
addGame(new GameInfo("Pong", new PongGame()));
69+
addGame(new GameInfo("FlappyBird", new FlappyBirdGame()));
70+
addGame(new GameInfo("TicTacToe", new TicTacToe()));
71+
addGame(new GameInfo("JumpingGame", new JumpingGame()));
72+
addGame(new GameInfo("Tetris", new TetrisGame()));
73+
74+
75+
76+
gameNum = games.size();
77+
78+
drawGames(g);
79+
80+
//Draw title
81+
g.drawRect(0, (int) (frameHeight * (0.1 * (selectedGame)) - 25), frameWidth, 40);
82+
83+
84+
}
85+
86+
private void drawGames(Graphics g) {
87+
for (int i = 1; i <= games.size(); i++)
88+
g.drawString(games.get(i - 1).getName(), 10, (int) (frameHeight * (0.1 * i)));
89+
}
90+
91+
@Override
92+
public void keyTyped(KeyEvent e) {
93+
94+
}
95+
96+
@Override
97+
public void keyPressed(KeyEvent e) {
98+
if (e.getKeyCode() == KeyEvent.VK_S || e.getKeyCode() == KeyEvent.VK_DOWN) {
99+
if (selectedGame == gameNum)
100+
selectedGame = 0;
101+
selectedGame++;
102+
repaint();
103+
} else if (e.getKeyCode() == KeyEvent.VK_W || e.getKeyCode() == KeyEvent.VK_UP) {
104+
if (selectedGame == 1)
105+
selectedGame = gameNum + 1;
106+
selectedGame--;
107+
repaint();
108+
} else if (e.getKeyChar() == KeyEvent.VK_ENTER) {
109+
games.get(selectedGame - 1).getGame().startGame();
110+
}
111+
}
112+
113+
@Override
114+
public void keyReleased(KeyEvent e) {
115+
116+
}
117+
}
118+
119+
private class GameInfo {
120+
private final String name;
121+
private final Game game;
122+
123+
public GameInfo(String name, Game game) {
124+
this.name = name;
125+
this.game = game;
126+
}
127+
128+
public String getName() {
129+
return name;
130+
}
131+
132+
public Game getGame() {
133+
return game;
134+
}
135+
}
136+
137+
}
138+

src/main/java/Main.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
public class Main {
2+
public static void main(String[] args) {
3+
new GUI();
4+
}
5+
}

src/main/java/games/Game.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package games;
2+
3+
public interface Game {
4+
void startGame();
5+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package games.flappybird;
2+
3+
import java.awt.*;
4+
5+
public class Column {
6+
private final Point position;
7+
private final int colLength;
8+
9+
public Column(Point position, int length) {
10+
this.position = position;
11+
this.colLength = length;
12+
}
13+
14+
public Point getPosition() {
15+
return position;
16+
}
17+
18+
public int getColLength() {
19+
return colLength;
20+
}
21+
}

0 commit comments

Comments
 (0)