Hi Leute,
die Physik des dritten Threads funktioniert leider nur teilweise hat da jemand ne Idee****? BIn grad am verzweifeln
Gruß Chris
die Physik des dritten Threads funktioniert leider nur teilweise hat da jemand ne Idee****? BIn grad am verzweifeln

Java:
package test;
import java.awt.Color;
public class Test {
private static JFrame frmJump;
JLabel label;
JLabel jumper;
JLabel background;
JLabel background2;
Thread t2;
Thread t;
Thread t3;
JButton start;
private int count = 0;
private JButton exit;
private JButton b6;
private JButton b7;
private JButton b8;
private JButton b9;
private JButton b11;
private boolean checka = false;
private boolean checkd = false;
private boolean checkw = false;
private JButton b10;
JButton btnNewGame;
public static boolean checkup = false;
private JButton b12;
JButton b1;
JButton b2;
JButton b3;
JButton b4;
JButton b5;
int yPosb1 = 00;
int yPosb2 = 60;
int yPosb3 = 80;
int yPosb4 = 100;
int points = 0;
int yPosb5 = 140;
int yPosb6 = 160;
int yPosb7 = 180;
int yPosb8 = 220;
int yPosb9 = 240;
int yPosb10 = 260;
int yPosb11 = 290;
int yPosb12 = 20;
int xPosb1 = 48;
int xPosb2 = 171;
int xPosb3 = 304;
int xPosb4 = 97;
int xPosb5 = 239;
int xPosb6 = 171;
int xPosb7 = 27;
int xPosb8 = 329;
int xPosb9 = 259;
int xPosb10 = 342;
int xPosb11 = 115;
int xPosb12 = 10;
int jumpyPos = 40;
JPanel panel;
int jumpxPos = 210;
private JTextField txtVerloren;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@SuppressWarnings("static-access")
public void run() {
try {
Test window = new Test();
window.frmJump.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Test() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
try {
UIManager
.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedLookAndFeelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
frmJump = new JFrame();
frmJump.setTitle("Test");
frmJump.setUndecorated(true);
frmJump.setBounds(100, 100, 450, 300);
frmJump.setLocationRelativeTo(null);
frmJump.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmJump.getContentPane().setLayout(null);
panel = new JPanel();
panel.setBackground(Color.BLUE);
panel.setOpaque(true);
panel.setBounds(0, 0, 450, 300);
frmJump.getContentPane().add(panel);
panel.setLayout(null);
start = new JButton("Start");
start.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if (count == 0) {
startThreads();
count++;
start.setVisible(false);
}
}
});
txtVerloren = new JTextField();
txtVerloren.setVisible(false);
exit = new JButton("X");
exit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
exit.setBorder(null);
exit.setBackground(Color.GREEN);
exit.setForeground(Color.BLACK);
exit.setBounds(429, 0, 21, 23);
panel.add(exit);
txtVerloren.setFont(new Font("SansSerif", Font.BOLD, 14));
txtVerloren.setHorizontalAlignment(SwingConstants.CENTER);
txtVerloren.setForeground(Color.RED);
txtVerloren.setEditable(false);
txtVerloren.setText("Verloren!");
txtVerloren.setBounds(150, 100, 122, 28);
panel.add(txtVerloren);
txtVerloren.setColumns(10);
start.setBounds(163, 50, 91, 28);
panel.add(start);
btnNewGame = new JButton("New Game?");
btnNewGame.addActionListener(new ActionListener() {
@SuppressWarnings({ "static-access", "deprecation" })
public void actionPerformed(ActionEvent arg0) {
t.stop();
t.interrupt();
t2.stop();
t2.interrupt();
t3.stop();
t3.interrupt();
frmJump.dispose();
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Test window = new Test();
window.frmJump.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
});
btnNewGame.setBounds(160, 162, 103, 28);
btnNewGame.setVisible(false);
panel.add(btnNewGame);
panel.setFocusCycleRoot(true);
panel.setFocusTraversalPolicyProvider(true);
panel.registerKeyboardAction(new ActionListener() {
public void actionPerformed(ActionEvent event) {
checkd = false;
checkw = false;
checka = true;
}
}, KeyStroke.getKeyStroke('a'), JComponent.WHEN_IN_FOCUSED_WINDOW);
panel.registerKeyboardAction(new ActionListener() {
public void actionPerformed(ActionEvent event) {
checka = false;
checkw = false;
checkd = true;
}
}, KeyStroke.getKeyStroke('d'), JComponent.WHEN_IN_FOCUSED_WINDOW);
panel.registerKeyboardAction(new ActionListener() {
public void actionPerformed(ActionEvent event) {
checka = false;
checkd = false;
checkw = true;
}
}, KeyStroke.getKeyStroke('w'), JComponent.WHEN_IN_FOCUSED_WINDOW);
jumper = new JLabel("I");
jumper.setForeground(Color.WHITE);
jumper.setFont(new Font("Tahoma", Font.BOLD, 15));
jumper.setBounds(210, 40, 9, 20);
jumper.setVisible(false);
panel.add(jumper);
b1 = new JButton("");
b1.setEnabled(false);
b1.setBorderPainted(false);
b1.setBounds(48, 250, 56, 14);
panel.add(b1);
b2 = new JButton("");
b2.setEnabled(false);
b2.setBorderPainted(false);
b2.setBounds(171, 250, 56, 14);
panel.add(b2);
b3 = new JButton("");
b3.setEnabled(false);
b3.setBorderPainted(false);
b3.setBounds(304, 250, 56, 14);
panel.add(b3);
b4 = new JButton("");
b4.setEnabled(false);
b4.setBorderPainted(false);
b4.setBounds(97, 205, 56, 14);
panel.add(b4);
b5 = new JButton("");
b5.setEnabled(false);
b5.setBorderPainted(false);
b5.setBounds(239, 191, 56, 14);
panel.add(b5);
b6 = new JButton("");
b6.setEnabled(false);
b6.setBorderPainted(false);
b6.setBounds(171, 136, 56, 14);
panel.add(b6);
b7 = new JButton("");
b7.setEnabled(false);
b7.setBorderPainted(false);
b7.setBounds(27, 89, 56, 14);
panel.add(b7);
b8 = new JButton("");
b8.setEnabled(false);
b8.setBorderPainted(false);
b8.setBounds(329, 151, 56, 14);
panel.add(b8);
b9 = new JButton("");
b9.setEnabled(false);
b9.setBorderPainted(false);
b9.setBounds(259, 84, 56, 14);
panel.add(b9);
b12 = new JButton("");
b12.setEnabled(false);
b12.setBorderPainted(false);
b12.setBounds(10, 9, 56, 14);
panel.add(b12);
background = new JLabel();
background.setIcon(new ImageIcon(Test.class
.getResource("/Community/background.png")));
background.setBounds(0, 0, 800, 600);
panel.add(background);
background2 = new JLabel();
background2.setIcon(new ImageIcon(Test.class
.getResource("/Community/background.png")));
background2.setBounds(0, -600, 800, 600);
panel.add(background2);
JLabel background3 = new JLabel();
background3.setIcon(new ImageIcon(Test.class
.getResource("/Community/background.png")));
background3.setBounds(0, 0, 800, 600);
panel.add(background3);
b11 = new JButton("");
b11.setEnabled(false);
b11.setBorderPainted(false);
b11.setBounds(115, 47, 56, 14);
panel.add(b11);
b10 = new JButton("");
b10.setEnabled(false);
b10.setBorderPainted(false);
b10.setBounds(342, 21, 56, 14);
panel.add(b10);
}
public void startThreads() {
t = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
while (checka) {
jumpxPos--;
try {
Thread.sleep(5);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
while (checkd) {
jumpxPos++;
try {
Thread.sleep(5);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
while (checkw) {
}
}
}
});
t2 = new Thread(new Runnable() {
public void run() {
int counti = 0;
int checki = 0;
int counti2 = -600;
int speed = 20;
int counter2 = 0;
boolean check = false;
Random r = new Random();
jumper.setVisible(true);
while (!check) {
if (jumper.getLocation().y == 280) {
check = true;
}
if (checki == 25){
checkup = false;
checki = 0;
}
if (checkup) {
jumpyPos = jumpyPos - 4;
checki++;
} else {
jumpyPos = jumpyPos + 4;
}
jumper.setLocation(jumpxPos, jumpyPos);
count++;
if (counti == 600) {
counti = -600;
background.setLocation(0, counti);
}
if (counti2 == 600) {
counti2 = -600;
background2.setLocation(0, counti2);
}
background.setLocation(0, counti);
background2.setLocation(0, counti2);
b1.setLocation(xPosb1, yPosb1);
b2.setLocation(xPosb2, yPosb2);
b4.setLocation(xPosb4, yPosb4);
b5.setLocation(xPosb5, yPosb5);
b7.setLocation(xPosb7, yPosb7);
b8.setLocation(xPosb8, yPosb8);
b10.setLocation(xPosb10, yPosb10);
b11.setLocation(xPosb11, yPosb11);
if (points >= 1000) {
if (b3.getLocation().y == 0) {
b3.setVisible(false);
} else {
b3.setLocation(xPosb3, yPosb3);
yPosb3++;
}
if (b6.getLocation().y == 0) {
b6.setVisible(false);
} else {
b6.setLocation(xPosb6, yPosb6);
yPosb6++;
}
if (b9.getLocation().y == 0) {
b9.setVisible(false);
} else {
b9.setLocation(xPosb9, yPosb9);
yPosb9++;
}
if (b12.getLocation().y == 0) {
b12.setVisible(false);
} else {
b12.setLocation(xPosb12, yPosb12);
yPosb12++;
}
} else {
b3.setLocation(xPosb3, yPosb3);
yPosb3++;
b6.setLocation(xPosb6, yPosb6);
yPosb6++;
b9.setLocation(xPosb9, yPosb9);
yPosb9++;
b12.setLocation(xPosb12, yPosb12);
yPosb12++;
}
counti++;
counti2++;
points++;
counter2++;
yPosb1++;
yPosb2++;
yPosb4++;
yPosb5++;
yPosb7++;
yPosb8++;
yPosb10++;
yPosb11++;
if (yPosb1 == 300) {
yPosb1 = 0;
xPosb1 = r.nextInt(394);
} else if (yPosb2 == 300) {
yPosb2 = 0;
xPosb2 = r.nextInt(394);
} else if (yPosb3 == 300) {
yPosb3 = 0;
xPosb3 = r.nextInt(394);
} else if (yPosb4 == 300) {
yPosb4 = 0;
xPosb4 = r.nextInt(394);
} else if (yPosb5 == 300) {
yPosb5 = 0;
xPosb5 = r.nextInt(394);
} else if (yPosb6 == 300) {
yPosb6 = 0;
xPosb6 = r.nextInt(394);
} else if (yPosb7 == 300) {
yPosb7 = 0;
xPosb7 = r.nextInt(394);
} else if (yPosb8 == 300) {
yPosb8 = 0;
xPosb8 = r.nextInt(394);
} else if (yPosb9 == 300) {
yPosb9 = 0;
xPosb9 = r.nextInt(394);
} else if (yPosb10 == 300) {
yPosb10 = 0;
xPosb10 = r.nextInt(394);
} else if (yPosb11 == 300) {
yPosb11 = 0;
xPosb11 = r.nextInt(394);
} else if (yPosb12 == 300) {
yPosb12 = 0;
xPosb12 = r.nextInt(394);
}
if (counter2 == 100) {
if (speed != 5) {
speed--;
counter2 = 0;
}
}
try {
Thread.sleep(speed);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
btnNewGame.setVisible(true);
txtVerloren.setText(Integer.toString(points) + " Points");
txtVerloren.setVisible(true);
}
});
t3 = new Thread(new Runnable() {
@Override
public void run() {
while (jumpyPos != 0) {
try {
Thread.sleep(4);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (jumpyPos == yPosb1 && jumpxPos >= xPosb1
&& jumpxPos <= b1.getSize().width+xPosb1) {
checkup = true;
}
if (jumpyPos == yPosb2 && jumpxPos >= xPosb2
&& jumpxPos <= b2.getSize().width+xPosb2) {
checkup = true;
}
if (jumpyPos == yPosb3 && jumpxPos >= xPosb3
&& jumpxPos <= b3.getSize().width+xPosb3) {
checkup = true;
}
if (jumpyPos == yPosb4 && jumpxPos >= xPosb4
&& jumpxPos <= b4.getSize().width+xPosb4) {
checkup = true;
}
if (jumpyPos == yPosb5 && jumpxPos >= xPosb5
&& jumpxPos <= b5.getSize().width+xPosb5) {
checkup = true;
}
if (jumpyPos == yPosb6 && jumpxPos >= xPosb6
&& jumpxPos <= b6.getSize().width+xPosb6) {
checkup = true;
}
if (jumpyPos == yPosb7 && jumpxPos >= xPosb7
&& jumpxPos <= b7.getSize().width+xPosb7) {
checkup = true;
}
if (jumpyPos == yPosb8 && jumpxPos >= xPosb8
&& jumpxPos <= b8.getSize().width+xPosb8) {
checkup = true;
}
if (jumpyPos == yPosb9 && jumpxPos >= xPosb9
&& jumpxPos <= b9.getSize().width+xPosb9) {
checkup = true;
}
if (jumpyPos == yPosb10 && jumpxPos >= xPosb10
&& jumpxPos <= b10.getSize().width+xPosb10) {
checkup = true;
}
if (jumpyPos == yPosb11 && jumpxPos >= xPosb11
&& jumpxPos <= b11.getSize().width+xPosb11) {
checkup = true;
}
if (jumpyPos == yPosb12 && jumpxPos >= xPosb12
&& jumpxPos <= b12.getSize().width+xPosb12) {
checkup = true;
}
}
}
});
t.start();
t2.start();
t3.start();
}
}
Gruß Chris
Zuletzt bearbeitet: