-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGamePanel.java
More file actions
executable file
·148 lines (124 loc) · 3.43 KB
/
GamePanel.java
File metadata and controls
executable file
·148 lines (124 loc) · 3.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.IOException;
import java.io.File;
import java.net.URL;
public class GamePanel extends JPanel implements MouseListener
{
private final Dimension SIZE = new Dimension(800, 600);
private final double SCALE = 0.5;
private Interactive interactive;
private BufferedImage splashImage, newGameButton, howToButton;
private RenderingHints renderingHints;
private String cmd;
public GamePanel()
{
setSize(SIZE);
setPreferredSize(SIZE);
addMouseListener(this);
renderingHints = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
setBackground(Color.BLACK);
interactive = new MainMenu();
}
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHints(renderingHints); // Enable anti-aliasing\
if (cmd != null)
{
int c = Integer.parseInt(cmd);
cmd = null;
interactive = new Game(c);
}
int command = Interactive.NO_CHANGE;
if (interactive != null)
command = interactive.render(g2d);
if (command == Interactive.MAIN_MENU)
interactive = new MainMenu();
else if (command == Interactive.PLAY_MENU)
{
EventQueue.invokeLater(new Runnable()
{
@Override
public void run()
{
cmd = JOptionPane.showInputDialog(null, "Please enter your buy-in amount: $", "New Game", JOptionPane.NO_OPTION);
}
});
}
repaint();
}
public static void main(String[] args)
{
System.setProperty("sun.java2d.opengl", "true");
JFrame frame = new JFrame();
frame.setResizable(false);
frame.setTitle("Blackjack");
GamePanel panel = new GamePanel();
frame.add(panel);
frame.setContentPane(panel);
frame.pack();
if(frame.getContentPane().getWidth() != 800){
frame.pack();
}
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public static BufferedImage getImageFromFile(String filename) throws IOException
{
return ImageIO.read(GamePanel.class.getResourceAsStream(filename));
}
/**
* Invoked when the mouse button has been clicked (pressed
* and released) on a component.
*
* @param e
*/
@Override
public void mouseClicked(MouseEvent e)
{
Mouse.pushClickBuffer(e.getX(), e.getY());
}
/**
* Invoked when a mouse button has been pressed on a component.
*
* @param e
*/
@Override
public void mousePressed(MouseEvent e)
{
}
/**
* Invoked when a mouse button has been released on a component.
*
* @param e
*/
@Override
public void mouseReleased(MouseEvent e)
{
}
/**
* Invoked when the mouse enters a component.
*
* @param e
*/
@Override
public void mouseEntered(MouseEvent e)
{
}
/**
* Invoked when the mouse exits a component.
*
* @param e
*/
@Override
public void mouseExited(MouseEvent e)
{
}
}