Ich mache ein Rennauto Spiel für meine Klasse und ich habe nur in Java für ein paar Wochen programmiert und so frage ich mich, wie ich meine Autos anders bewegen könnte Geschwindigkeiten mit einer Zufallszahl.Ein JPanel Bild mit einer zufälligen Nummer bewegen
package racing.game;
import java.awt.Color;
import java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class RacingGame {
public static void main(String[] args) {
int temp ;
int dist1 = 0;
int dist2 = 0;
int dist3 = 0;
int dist4 = 0;
int i = 0;
JFrame freRace = new JFrame();
freRace.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
freRace.setSize(1900, 1080);
freRace.setLayout(null);
//Creating the vehicles
JLabel labelCar1 = new JLabel();
labelCar1.setIcon(new ImageIcon("images/car1.jpg"));
labelCar1.setBounds((0), (50), labelCar1.getPreferredSize().width, labelCar1.getPreferredSize().height);
freRace.add(labelCar1);
JLabel labelCar2 = new JLabel();
labelCar2.setIcon(new ImageIcon("images/car2.jpg"));
labelCar2.setBounds((0), (310), labelCar2.getPreferredSize().width, labelCar2.getPreferredSize().height);
freRace.add(labelCar2);
JLabel labelCar3 = new JLabel();
labelCar3.setIcon(new ImageIcon("images/car3.jpg"));
labelCar3.setBounds((0), (580), labelCar3.getPreferredSize().width, labelCar3.getPreferredSize().height);
freRace.add(labelCar3);
JLabel labelCar4 = new JLabel();
labelCar4.setIcon(new ImageIcon("images/car4.jpg"));
labelCar4.setBounds((0), (900), labelCar4.getPreferredSize().width, labelCar4.getPreferredSize().height);
freRace.add(labelCar4);
JLabel labelBackground = new JLabel();
labelBackground.setIcon(new ImageIcon("images/race track.jpg"));
labelBackground.setBounds((0), (0), labelBackground.getPreferredSize().width, labelBackground.getPreferredSize().height);
freRace.add(labelBackground);
freRace.setBackground(Color.WHITE);
// freRace.setVisible(true);
while (dist1 <= 1890) {
Random rn = new Random();
dist1 = dist1 + rn.nextInt(5);
dist2 = dist2 + rn.nextInt(4);
dist3 = dist3 + rn.nextInt(3);
dist4 = dist4 + rn.nextInt(2);
labelCar1.setBounds((dist1), (50), labelCar1.getPreferredSize().width, labelCar1.getPreferredSize().height);
labelCar2.setBounds((dist2), (310), labelCar2.getPreferredSize().width, labelCar2.getPreferredSize().height);
labelCar3.setBounds((dist3), (580), labelCar3.getPreferredSize().width, labelCar3.getPreferredSize().height);
labelCar4.setBounds((dist4), (900), labelCar4.getPreferredSize().width, labelCar4.getPreferredSize().height);
freRace.setVisible(true);
}
}
}
Der Code soll Rennwagen auf dem Bildschirm zufällig unterschiedlichen Geschwindigkeiten bekommen, aber ich weiß nicht, welche Schleife für diese zu wählen und wie ich, dass er Autos machen könnte beschleunigt i
erraten COMPLETLEY bewegen zufällig so
Holen Sie 'freRace.setVisible (true);' aus Ihrer Weile, und verwenden Sie einen Thread für die Schleife, Ändern der Position zufällig ist keine Geschwindigkeit, um eine Geschwindigkeit zu implementieren, müssen Sie zuerst, wie 'x' zu beheben Versuchen Sie dann, den Rahmen jede Sekunde entsprechend zu aktualisieren. – TiMr
JLabel ist keine gute Option, um Spiele mit Animationen zu erstellen. Benutzerdefinierte Bilder werden viel einfacher sein. – user3437460