package xfe.panels; import javax.swing.JPanel; import main.java.xfe.model.World; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; public class GamePanel extends JPanel { World world; public GamePanel() { this.addKeyListener(new GameKeyListener()); this.addMouseListener(new GameMouseListener()); this.world = new World(); } @Override public void paintComponent(Graphics g) { Graphics2D g2d = (Graphics2D) g; g2d.setColor(Color.BLACK); g2d.fillRect(0, 0, getWidth(), getHeight()); // Main draw function here this.world.draw(g2d); } class GameKeyListener implements KeyListener { @Override public void keyTyped(KeyEvent e) {} @Override public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_W -> world.getCamera().toggleMovingUp(); case KeyEvent.VK_S -> world.getCamera().toggleMovingDown(); case KeyEvent.VK_D -> world.getCamera().toggleMovingRight(); case KeyEvent.VK_A -> world.getCamera().toggleMovingLeft(); } } @Override public void keyReleased(KeyEvent e) {} } } class GameMouseListener implements MouseListener { @Override public void mouseClicked(MouseEvent e) {} @Override public void mousePressed(MouseEvent e) {} @Override public void mouseReleased(MouseEvent e) {} @Override public void mouseEntered(MouseEvent e) {} @Override public void mouseExited(MouseEvent e) {} }