julian.veh
Bekanntes Mitglied
Java:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Newfour extends JPanel implements Runnable, KeyListener{
private JFrame frame;
private Thread thread;
private int xEins = 20, yEins = 20, xZwei = 50, yZwei = 50;
private boolean einsUp = false, einsDown = false, einsLeft = false, einsRight = false;
private boolean zweiUp = false, zweiDown = false, zweiLeft = false, zweiRight = false;
public Newfour() {
this.setPreferredSize(new Dimension(400, 300));
this.frame = new JFrame("Fenster");
this.frame.setLocationRelativeTo(null);
this.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.frame.setResizable(false);
this.frame.addKeyListener(this);
this.frame.add(this);
this.frame.pack();
this.frame.setVisible(true);
run();
}
public void start() {
this.thread = new Thread(this);
thread.start();
}
public void stop() {
thread.stop();
}
@Override
public void run() {
while(frame.isVisible()) {
doLogic();
repaint();
try {
thread.sleep(30);
} catch (InterruptedException e) {
}
}
}
@Override
public void keyReleased(KeyEvent e) {
if(e.getKeyCode() == 37) {
einsUp = false;
einsDown = false;
einsLeft = false;
einsRight = false;
} else if(e.getKeyCode() == 38) {
einsUp = false;
einsDown = false;
einsLeft = false;
einsRight = false;
} else if(e.getKeyCode() == 39) {
einsUp = false;
einsDown = false;
einsLeft = false;
einsRight = false;
} else if(e.getKeyCode() == 40) {
einsUp = false;
einsDown = false;
einsLeft = false;
einsRight = false;
} else if(e.getKeyCode() == 65) {
zweiUp = false;
zweiDown = false;
zweiLeft = false;
zweiRight = false;
} else if(e.getKeyCode() == 87) {
zweiUp = false;
zweiDown = false;
zweiLeft = false;
zweiRight = false;
} else if(e.getKeyCode() == 68) {
zweiUp = false;
zweiDown = false;
zweiLeft = false;
zweiRight = false;
} else if(e.getKeyCode() == 83) {
zweiUp = false;
zweiDown = false;
zweiLeft = false;
zweiRight = false;
}
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == 37) {
einsUp = false;
einsDown = false;
einsLeft = true;
einsRight = false;
} else if(e.getKeyCode() == 38) {
einsUp = true;
einsDown = false;
einsLeft = false;
einsRight = false;
} else if(e.getKeyCode() == 39) {
einsUp = false;
einsDown = false;
einsLeft = false;
einsRight = true;
} else if(e.getKeyCode() == 40) {
einsUp = false;
einsDown = true;
einsLeft = false;
einsRight = false;
} else if(e.getKeyCode() == 65) {
zweiUp = false;
zweiDown = false;
zweiLeft = true;
zweiRight = false;
} else if(e.getKeyCode() == 87) {
zweiUp = true;
zweiDown = false;
zweiLeft = false;
zweiRight = false;
} else if(e.getKeyCode() == 68) {
zweiUp = false;
zweiDown = false;
zweiLeft = false;
zweiRight = true;
} else if(e.getKeyCode() == 83) {
zweiUp = false;
zweiDown = true;
zweiLeft = false;
zweiRight = false;
}
}
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.black);
g.fillOval(xEins, yEins, 20, 20);
g.setColor(Color.red);
g.fillOval(xZwei, yZwei, 20, 20);
}
public void doLogic() {
if(einsUp) yEins-=3;
if(einsDown) yEins+=3;
if(einsLeft) xEins-=3;
if(einsRight) xEins+=3;
if(zweiUp) yZwei-=3;
if(zweiDown) yZwei+=3;
if(zweiLeft) xZwei-=3;
if(zweiRight) xZwei+=3;
}
public static void main (String[] args) {
new Newfour();
}
}
Das dein Code imho ein ziemliches Durcheinander ist habe ich das ganze nochmal erneuert.
Wenn du alles verstehst, solltest du mal probieren es selbst nachzuprogrammieren und nicht einfach einzufügen.
Abgesehen davon empfehle ich dir vllt erstmal mit etwas wie einem Sudokuspiel anzufangen und dir anschließend ein Tutorial wie ich es hier schon gepostet habe vorzunehmen.
Grüße Julian