Papam
Legacy Member
Hallo, ik heb een paar probleempjes met java, we maken een simpel spel ( een dragrace) en we willen auto's met een random snelheid doen rijden. Dus maak ik een programma die voorlopig simpele wagentjes tekent en ze een random snelheid geeft.
Het enigste probleem is nu dat ze ieder om beurt beginnen te rijden maar ik wil dat ze allemaal tegelijk vertrekken. Ik geef hier eens mijn programmaatje en ik hoop dat iemand kan helpen.
import javax.swing.*; // voor de klasse JFrame
import java.awt.*; // voor de klasse Color,Graphics
import java.util.*; // voor de klasse Date
class TestAuto extends JPanel {
private int positie1=0;
private int positie2=0;
private int positie3=0;
private int positie4=0;
public static void main(String[] args) {
JFrame venster = new JFrame("Dragrace");
venster.setSize(1500, 1300);
venster.setLocation(100, 100);
venster.setVisible(true);
venster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
TestAuto tekening = new TestAuto();
venster.setContentPane(tekening);
Random rg = new Random();
int intA;
int intB;
int intC;
int intD;
intA = rg.nextInt(100);
intB = rg.nextInt(100);
intC = rg.nextInt(100);
intD = rg.nextInt(100);
for(int pos1 =0; pos1 <30; pos1 ++){
tekening.pauze(intA); //
tekening.verplaatsFig1(pos1);
}
for(int pos2 =0; pos2 <30; pos2 ++){
tekening.pauze1(intB); //
tekening.verplaatsFig2(pos2);
}
for(int pos3 =0; pos3 <30; pos3 ++){
tekening.pauze2(intC);
tekening.verplaatsFig3(pos3);
}
for(int pos4 =0; pos4 <30; pos4 ++){
tekening.pauze3(intD);
tekening.verplaatsFig4(pos4);
}
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// de straat tekenen
g.setColor(Color.BLACK);
g.drawLine(0, 210, 500, 210);
for (int streepStart=0; streepStart <500 ; streepStart +=50) {
g.drawLine(streepStart, 232 , streepStart + 25 , 232);
}
g.drawLine(0, 255, 500, 255);
// Auto1
int xL=positie1*15,yL=200, d=10;
g.setColor(Color.GREEN);
g.fillRect(xL+2*d, yL-2*d, d*4, 4*d);
g.fillRect(xL, yL, d*8, 2*d);
g.fillOval(xL+d,yL+d, 2*d, 2*d);
g.fillOval(xL+5*d,yL+d, 2*d, 2*d);
//Auto2
int xL1=positie2*15,yL1=400, d1=10;
g.setColor(Color.GREEN);
g.fillRect(xL1+2*d1, yL1-2*d1, d1*4, 4*d1);
g.fillRect(xL1, yL1, d1*8, 2*d1);
g.fillOval(xL1+d,yL1+d1, 2*d1, 2*d1);
g.fillOval(xL1+5*d,yL1+d1, 2*d1, 2*d1);
//Auto3
int xL2=positie3*15,yL2=600, d2=10;
g.setColor(Color.GREEN);
g.fillRect(xL2+2*d1, yL2-2*d2, d2*4, 4*d2);
g.fillRect(xL2, yL2, d2*8, 2*d2);
g.fillOval(xL2+d,yL2+d2, 2*d2, 2*d2);
g.fillOval(xL2+5*d,yL2+d2, 2*d2, 2*d2);
//Auto4
int xL3=positie4*15,yL3=800, d3=10;
g.setColor(Color.GREEN);
g.fillRect(xL3+2*d3, yL3-2*d3, d3*4, 4*d3);
g.fillRect(xL3, yL3, d3*8, 2*d3);
g.fillOval(xL3+d,yL3+d3, 2*d3, 2*d3);
g.fillOval(xL3+5*d,yL3+d3, 2*d3, 2*d3);
}
public void pauze(int mSec){
Date nuTijd=new Date ( );
Date startTijd=new Date ( );
while (nuTijd.getTime ( )<startTijd.getTime ( )+mSec) {
nuTijd= new Date ( );
}
}
public void pauze1(int mSec1){
Date nuTijd=new Date ( );
Date startTijd=new Date ( );
while (nuTijd.getTime ( )<startTijd.getTime ( )+mSec1) {
nuTijd= new Date ( );
}
}
public void pauze2(int mSec2){
Date nuTijd=new Date ( );
Date startTijd=new Date ( );
while (nuTijd.getTime ( )<startTijd.getTime ( )+mSec2) {
nuTijd= new Date ( );
}
}
public void pauze3(int mSec3){
Date nuTijd=new Date ( );
Date startTijd=new Date ( );
while (nuTijd.getTime ( )<startTijd.getTime ( )+mSec3) {
nuTijd= new Date ( );
}
}
public void verplaatsFig1(int nieuwePositie1){
positie1=nieuwePositie1;
repaint();
}
public void verplaatsFig2(int nieuwePositie2){
positie2=nieuwePositie2;
repaint();
}
public void verplaatsFig3(int nieuwePositie3){
positie3=nieuwePositie3;
repaint();
}
public void verplaatsFig4(int nieuwePositie4){
positie4=nieuwePositie4;
repaint();
}
}
Het enigste probleem is nu dat ze ieder om beurt beginnen te rijden maar ik wil dat ze allemaal tegelijk vertrekken. Ik geef hier eens mijn programmaatje en ik hoop dat iemand kan helpen.
import javax.swing.*; // voor de klasse JFrame
import java.awt.*; // voor de klasse Color,Graphics
import java.util.*; // voor de klasse Date
class TestAuto extends JPanel {
private int positie1=0;
private int positie2=0;
private int positie3=0;
private int positie4=0;
public static void main(String[] args) {
JFrame venster = new JFrame("Dragrace");
venster.setSize(1500, 1300);
venster.setLocation(100, 100);
venster.setVisible(true);
venster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
TestAuto tekening = new TestAuto();
venster.setContentPane(tekening);
Random rg = new Random();
int intA;
int intB;
int intC;
int intD;
intA = rg.nextInt(100);
intB = rg.nextInt(100);
intC = rg.nextInt(100);
intD = rg.nextInt(100);
for(int pos1 =0; pos1 <30; pos1 ++){
tekening.pauze(intA); //
tekening.verplaatsFig1(pos1);
}
for(int pos2 =0; pos2 <30; pos2 ++){
tekening.pauze1(intB); //
tekening.verplaatsFig2(pos2);
}
for(int pos3 =0; pos3 <30; pos3 ++){
tekening.pauze2(intC);
tekening.verplaatsFig3(pos3);
}
for(int pos4 =0; pos4 <30; pos4 ++){
tekening.pauze3(intD);
tekening.verplaatsFig4(pos4);
}
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// de straat tekenen
g.setColor(Color.BLACK);
g.drawLine(0, 210, 500, 210);
for (int streepStart=0; streepStart <500 ; streepStart +=50) {
g.drawLine(streepStart, 232 , streepStart + 25 , 232);
}
g.drawLine(0, 255, 500, 255);
// Auto1
int xL=positie1*15,yL=200, d=10;
g.setColor(Color.GREEN);
g.fillRect(xL+2*d, yL-2*d, d*4, 4*d);
g.fillRect(xL, yL, d*8, 2*d);
g.fillOval(xL+d,yL+d, 2*d, 2*d);
g.fillOval(xL+5*d,yL+d, 2*d, 2*d);
//Auto2
int xL1=positie2*15,yL1=400, d1=10;
g.setColor(Color.GREEN);
g.fillRect(xL1+2*d1, yL1-2*d1, d1*4, 4*d1);
g.fillRect(xL1, yL1, d1*8, 2*d1);
g.fillOval(xL1+d,yL1+d1, 2*d1, 2*d1);
g.fillOval(xL1+5*d,yL1+d1, 2*d1, 2*d1);
//Auto3
int xL2=positie3*15,yL2=600, d2=10;
g.setColor(Color.GREEN);
g.fillRect(xL2+2*d1, yL2-2*d2, d2*4, 4*d2);
g.fillRect(xL2, yL2, d2*8, 2*d2);
g.fillOval(xL2+d,yL2+d2, 2*d2, 2*d2);
g.fillOval(xL2+5*d,yL2+d2, 2*d2, 2*d2);
//Auto4
int xL3=positie4*15,yL3=800, d3=10;
g.setColor(Color.GREEN);
g.fillRect(xL3+2*d3, yL3-2*d3, d3*4, 4*d3);
g.fillRect(xL3, yL3, d3*8, 2*d3);
g.fillOval(xL3+d,yL3+d3, 2*d3, 2*d3);
g.fillOval(xL3+5*d,yL3+d3, 2*d3, 2*d3);
}
public void pauze(int mSec){
Date nuTijd=new Date ( );
Date startTijd=new Date ( );
while (nuTijd.getTime ( )<startTijd.getTime ( )+mSec) {
nuTijd= new Date ( );
}
}
public void pauze1(int mSec1){
Date nuTijd=new Date ( );
Date startTijd=new Date ( );
while (nuTijd.getTime ( )<startTijd.getTime ( )+mSec1) {
nuTijd= new Date ( );
}
}
public void pauze2(int mSec2){
Date nuTijd=new Date ( );
Date startTijd=new Date ( );
while (nuTijd.getTime ( )<startTijd.getTime ( )+mSec2) {
nuTijd= new Date ( );
}
}
public void pauze3(int mSec3){
Date nuTijd=new Date ( );
Date startTijd=new Date ( );
while (nuTijd.getTime ( )<startTijd.getTime ( )+mSec3) {
nuTijd= new Date ( );
}
}
public void verplaatsFig1(int nieuwePositie1){
positie1=nieuwePositie1;
repaint();
}
public void verplaatsFig2(int nieuwePositie2){
positie2=nieuwePositie2;
repaint();
}
public void verplaatsFig3(int nieuwePositie3){
positie3=nieuwePositie3;
repaint();
}
public void verplaatsFig4(int nieuwePositie4){
positie4=nieuwePositie4;
repaint();
}
}
