Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.Color;
- import java.awt.Graphics;
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- public class Game extends JPanel implements KeyListener {
- boolean[] keys = new boolean[1000];
- double x = 100;
- double y = 100;
- JFrame frame;
- public Game() {
- this.setBackground(Color.BLACK);
- frame = new JFrame();
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- frame.addKeyListener(this);
- frame.add(this);
- frame.setSize(640, 480);
- frame.setLocationRelativeTo(null);
- frame.setVisible(true);
- loop();
- }
- private void loop() {
- while (true) {
- long t0 = System.currentTimeMillis();
- repaint();
- logic();
- long duration = System.currentTimeMillis() - t0;
- if (duration < 16) {
- try {
- Thread.sleep(16 - duration);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- }
- }
- private void logic() {
- double speed = 3.0;
- if (keys[KeyEvent.VK_UP]) {
- y -= speed;
- }
- if (keys[KeyEvent.VK_DOWN]) {
- y += speed;
- }
- if (keys[KeyEvent.VK_LEFT]) {
- x -= speed;
- }
- if (keys[KeyEvent.VK_RIGHT]) {
- x += speed;
- }
- if (keys[KeyEvent.VK_ESCAPE]) {
- System.exit(0);
- }
- }
- @Override
- public void paint(Graphics g) {
- super.paint(g);
- g.setColor(Color.WHITE);
- g.fillRect((int) x, (int) y, 30, 30);
- }
- public static void main(String[] args) {
- new Game();
- }
- @Override
- public void keyPressed(KeyEvent e) {
- keys[e.getKeyCode()] = true;
- }
- @Override
- public void keyReleased(KeyEvent e) {
- keys[e.getKeyCode()] = false;
- }
- @Override
- public void keyTyped(KeyEvent e) {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement