C
Clemenzo
Gast
Guten Tag, ich möchte ein kleines Spiel mit Java-Applet programmieren, in welchem sich Kästchen von alleineüber ein Gitter bewegen und der SPieler während dessen ein Kästchen selbst steuern kann!
Ich bekomme es jedoch leider nicht hin, dass sich die Kästchen von alleine hin und her bewegen und man gleichzeitig ein Kästchen steuern kann! Wie kann man so etwas programmieren? Ich habe mit einer while-schleife versucht, dass sich die Kästchen alle 2 sec in eine Richtung bewegen, hat geklappt, aber ich konnte dann wiederum nicht mein Kästchen während dessen steuern..
Ich schreib hier mal meinen Quellcode hinein, auch wenn er nicht gut geschrieben ist, ich hoffe ihr versteht auch ohne den Quellcode mein problem. Der Quellcode ist nicht gerade sehr durchschaubar!:
import java.awt.*;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.util.Random;
import java.lang.*;
import java.io.*;
import java.text.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class HalloWWW extends Applet
{
Button links, rechts, oben, unten ;
Label l_satz;
TextField t_satz;
long start = System.currentTimeMillis();
long t=3000;
Rechteck r = new Rechteck();
int li=1, re=1, ob=1, un=1 ;
int fi=1,fe=1,fo=1,fu=1;
int go=1;
public void paint(Graphics gc)
{
for(int i=1;i<30;i++)
{
gc.drawLine(1,30*i,500,30*i);
gc.drawLine(30*i,30,30*i,500);
}
gc.setColor(Color.red);
gc.fillRect(90,60,30,30);
gc.setColor(Color.green);
gc.fillRect(120,90,30,30);
r.zeichnen(gc, li,re,ob,un);
r.zeichnen(gc,fi,fe,fo,fu);
}
class Spielen implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if((System.currentTimeMillis()-start) >t)
{
li++;
t+=2000;
repaint();
}
String a;
a = e.getActionCommand();
if(a.equals("links"))
{
li--;
if((li==3 & re==2 & ob==1 & un==1)|(li==4 & re==3 &ob==1 & un==1))
{
t_satz.setText("DONG");
li++;
repaint();
}
else
repaint();
}
if(a.equals("rechts"))
{
li++;
if(li==3 & re==2 & ob==1 & un==1|(li==4 & re==3 &ob==1 & un==1))
{
t_satz.setText("Doing");
li--;
repaint();
}
else
repaint();
}
if(a.equals("oben"))
{
re--;
if(li==3 & re==2 & ob==1 & un==1|(li==4 & re==3 &ob==1 & un==1))
{
t_satz.setText("Bautz!");
re++;
repaint();
}
else
repaint();
}
if(a.equals("unten"))
{
re++;
if(li==3 & re==2 & ob==1 & un==1|(li==4 & re==3 &ob==1 & un==1))
{
t_satz.setText("KLONG");
re--;
repaint();
}
else
repaint();
}
}
}
public void init()
{
links = new Button("links");
rechts = new Button("rechts");
oben = new Button ("oben");
unten = new Button ("unten");
l_satz = new Label("Gesucht:");
t_satz= new TextField(10);
setLayout(new FlowLayout(FlowLayout.LEFT));
add(links);
add(oben);
add(unten);
add(rechts);
add(l_satz);
add(t_satz);
links.addActionListener(new Spielen());
rechts.addActionListener(new Spielen());
oben.addActionListener(new Spielen());
unten.addActionListener(new Spielen());
}
}
class Rechteck
{
private int li,re,ob,un ;
public Rechteck()
{
int li=1;
int re=1;
int ob=1;
int un=1;
}
public void zeichnen(Graphics g, int li, int re, int ob, int un )
{
g.setColor(Color.black);
g.fillRect(30*li,30*re,30*ob,30*un);
}
}
Ich bekomme es jedoch leider nicht hin, dass sich die Kästchen von alleine hin und her bewegen und man gleichzeitig ein Kästchen steuern kann! Wie kann man so etwas programmieren? Ich habe mit einer while-schleife versucht, dass sich die Kästchen alle 2 sec in eine Richtung bewegen, hat geklappt, aber ich konnte dann wiederum nicht mein Kästchen während dessen steuern..
Ich schreib hier mal meinen Quellcode hinein, auch wenn er nicht gut geschrieben ist, ich hoffe ihr versteht auch ohne den Quellcode mein problem. Der Quellcode ist nicht gerade sehr durchschaubar!:
import java.awt.*;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.util.Random;
import java.lang.*;
import java.io.*;
import java.text.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class HalloWWW extends Applet
{
Button links, rechts, oben, unten ;
Label l_satz;
TextField t_satz;
long start = System.currentTimeMillis();
long t=3000;
Rechteck r = new Rechteck();
int li=1, re=1, ob=1, un=1 ;
int fi=1,fe=1,fo=1,fu=1;
int go=1;
public void paint(Graphics gc)
{
for(int i=1;i<30;i++)
{
gc.drawLine(1,30*i,500,30*i);
gc.drawLine(30*i,30,30*i,500);
}
gc.setColor(Color.red);
gc.fillRect(90,60,30,30);
gc.setColor(Color.green);
gc.fillRect(120,90,30,30);
r.zeichnen(gc, li,re,ob,un);
r.zeichnen(gc,fi,fe,fo,fu);
}
class Spielen implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if((System.currentTimeMillis()-start) >t)
{
li++;
t+=2000;
repaint();
}
String a;
a = e.getActionCommand();
if(a.equals("links"))
{
li--;
if((li==3 & re==2 & ob==1 & un==1)|(li==4 & re==3 &ob==1 & un==1))
{
t_satz.setText("DONG");
li++;
repaint();
}
else
repaint();
}
if(a.equals("rechts"))
{
li++;
if(li==3 & re==2 & ob==1 & un==1|(li==4 & re==3 &ob==1 & un==1))
{
t_satz.setText("Doing");
li--;
repaint();
}
else
repaint();
}
if(a.equals("oben"))
{
re--;
if(li==3 & re==2 & ob==1 & un==1|(li==4 & re==3 &ob==1 & un==1))
{
t_satz.setText("Bautz!");
re++;
repaint();
}
else
repaint();
}
if(a.equals("unten"))
{
re++;
if(li==3 & re==2 & ob==1 & un==1|(li==4 & re==3 &ob==1 & un==1))
{
t_satz.setText("KLONG");
re--;
repaint();
}
else
repaint();
}
}
}
public void init()
{
links = new Button("links");
rechts = new Button("rechts");
oben = new Button ("oben");
unten = new Button ("unten");
l_satz = new Label("Gesucht:");
t_satz= new TextField(10);
setLayout(new FlowLayout(FlowLayout.LEFT));
add(links);
add(oben);
add(unten);
add(rechts);
add(l_satz);
add(t_satz);
links.addActionListener(new Spielen());
rechts.addActionListener(new Spielen());
oben.addActionListener(new Spielen());
unten.addActionListener(new Spielen());
}
}
class Rechteck
{
private int li,re,ob,un ;
public Rechteck()
{
int li=1;
int re=1;
int ob=1;
int un=1;
}
public void zeichnen(Graphics g, int li, int re, int ob, int un )
{
g.setColor(Color.black);
g.fillRect(30*li,30*re,30*ob,30*un);
}
}