85 lines
1.9 KiB
Java
85 lines
1.9 KiB
Java
package dice3d.main;
|
|
import java.awt.Graphics;
|
|
import java.awt.Graphics2D;
|
|
import java.awt.event.KeyAdapter;
|
|
import java.awt.event.KeyEvent;
|
|
import javax.swing.JFrame;
|
|
import javax.swing.JPanel;
|
|
import javax.swing.SwingUtilities;
|
|
|
|
import dice3d.models.cuboids.Cuboid;
|
|
import dice3d.models.cuboids.Dice;
|
|
|
|
|
|
public class MainWindow extends JPanel {
|
|
World w = new World();
|
|
|
|
|
|
public MainWindow() {
|
|
addKeyListener(new KeyHandler());
|
|
}
|
|
|
|
@Override
|
|
protected void paintComponent(Graphics g) {
|
|
super.paintComponent(g);
|
|
draw((Graphics2D) g);
|
|
}
|
|
|
|
|
|
|
|
public void draw(Graphics2D g) {
|
|
for(Cuboid c : w.cuboids) {
|
|
c.draw(g);
|
|
}
|
|
int yOffset = 0;
|
|
g.drawString("Press space key to roll again", 10, yOffset =+ 20);
|
|
|
|
for(int i = 0; i < w.cuboids.size(); i++) {
|
|
Cuboid c = w.cuboids.get(i);
|
|
if(c instanceof Dice) {
|
|
Dice d = (Dice) c;
|
|
g.drawString("dice[" + i + "]: moving=" + !d.notMoving() + " number_rolled=" + d.getNumberRolled(), 10, yOffset += 20);
|
|
} else {
|
|
g.drawString("cuboid[" + i + "]: moving=" + !c.notMoving(), 10, yOffset += 20);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
repaint();
|
|
}
|
|
|
|
private class KeyHandler extends KeyAdapter {
|
|
@Override
|
|
public void keyPressed(KeyEvent e) {
|
|
if (e.getID() != KeyEvent.KEY_PRESSED) {
|
|
return;
|
|
}
|
|
if (e.getKeyCode() == KeyEvent.VK_SPACE) {
|
|
for(Cuboid c : w.cuboids) {
|
|
c.reset();
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
SwingUtilities.invokeLater(new Runnable() {
|
|
@Override
|
|
public void run() {
|
|
MainWindow view = new MainWindow();
|
|
JFrame frame = new JFrame();
|
|
frame.setTitle("Dice");
|
|
frame.getContentPane().add(view);
|
|
frame.setSize(1280, 720);
|
|
frame.setLocationRelativeTo(null);
|
|
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
|
// frame.setResizable(false);
|
|
frame.setVisible(true);
|
|
view.requestFocus();
|
|
}
|
|
});
|
|
}
|
|
|
|
}
|