tcppunk
Erfahrenes Mitglied
Ok der Titel ist nicht sehr passend aber mir ist einfach nichts besseres eingefallen.
Also ich habe ein Fußballspiel (Wenn man es so nennen kann) gemacht. Das
Prob: Wenn man geschossen hat, kann man das Prog. nicht mehr zurücksetzen und muss es neustarten. Den Ball kann man zwar wieder bewegen und damit schießen,
jedoch der Torwart bewegt sich nicht, weil die Torwartbewegungsmethode nicht
mehr läuft und wenn man sie jetzt startet, dann konzentriert sich das Prog nurnoch auf
den Torwart und der KeyListener wird vernachlässigt (Aaa diese Erklärung ist miserabel!) Nunja, ich habe den Quellcode mal angehongen, und ich muss noch dazu
sagen das das ganze ziemlich hässlich aussieht (me <-- ) falls jemand verstanden hat, was ich meine, der helfe mir bitte.
(Achso wenn ihr lachen wollt lacht ruhig)
import java.awt.event.*;
import java.awt.*;
public class Game extends Frame implements WindowListener, KeyListener{
Label tor, torwart, ball, steuerung;
int x, y, z, bx, by = 220;
boolean halt = false, rechts = true, vb = false;
public Game(){
this.setBounds(500,390,450,400);
this.setBackground(new Color(170,220,170));
this.setTitle("Baelle ballern");
this.setVisible(true);
tor = new Label("|-------------------|");
torwart = new Label("|0|");
steuerung = new Label("Tasten: <-- nach links, ^ schuss, --> nach rechts");
ball = new Label("O");
tor.setBounds(140,24,200,20);
torwart.setBounds(200,40,24,20);
ball.setBounds(200,220,15,20);
steuerung.setBounds(14,350,420,20);
steuerung.setBackground(new Color(220,170,170));
this.addWindowListener(this);
this.add(tor);
this.add(torwart);
this.add(ball);
this.add(steuerung);
this.addKeyListener(this);
}
public static void main(String args[]){
Game mt1 = new Game();
mt1.torwart();
}
//Beweg den Ball!
public void moveBall(int b1){
if (b1 == 1){
bx =(int)(ball.getLocation().getX());
ball.setLocation((bx+5), 220);
} else {
if (b1 == 2){
bx =(int)(ball.getLocation().getX());
ball.setLocation((bx-5), 220);
} else {
bx = (int)(ball.getLocation().getX());
try{
while(by > 60){
Thread.sleep(50);
by = by -10;
ball.setLocation(bx, by);
if ((int)(ball.getLocation().getY()) < 70){
halt = true;
if (ball.getLocation().getX() + 14 < torwart.getLocation().getX() && ball.getLocation().getX() > 140 || ball.getLocation().getX() > torwart.getLocation().getX() + 23 && ball.getLocation().getX() +20 < 340){
this.setTitle("Tor!");
ball.setLocation(bx, 40);
vb = true;
} else {
this.setTitle("verloren!");
vb = true;
}
}
}
}catch(InterruptedException e){
}
}
}
}
//
//KeyListner
public void keyPressed(KeyEvent e){
if (e.getKeyCode() == e.VK_LEFT){
moveBall(2);
} else {
if (e.getKeyCode() == e.VK_RIGHT){
moveBall(1);
} else {
if (e.getKeyCode() == e.VK_UP){
moveBall(3);
}
}
}
}
public void keyReleased(KeyEvent e){
}
public void keyTyped(KeyEvent e){
}
//ende
//Torwartsteuerrung
public void torwart(){
while (!halt){
if (rechts){
try{
x = (int)(torwart.getLocation().getX());
y = x;
while (x < (y + (Math.random()*100))){
x= x+3;
Thread.sleep(50);
z = (int)((x + x + ball.getLocation().getX())/3);
if(!halt){
torwart.setLocation(z,40);
}
}
rechts = false;
}catch(InterruptedException e){
}
} else {
try{
x = (int)(torwart.getLocation().getX());
y = x;
while (x > (y - (Math.random()*100))){
x=x-3;
Thread.sleep(50);
z = (int)((x + x + ball.getLocation().getX())/3);
if(!halt){
torwart.setLocation(z,40);
}
}
rechts = true;
}catch(InterruptedException e){
}
}
}
}
//Ende
//windowListener
public void windowActivated(WindowEvent e){
}
public void windowClosed(WindowEvent e){
}
public void windowClosing(WindowEvent e){
System.exit(0);
}
public void windowDeactivated(WindowEvent e){
}
public void windowDeiconified(WindowEvent e){
}
public void windowIconified(WindowEvent e){
}
public void windowOpened(WindowEvent e){
}
//ende
}
Also ich habe ein Fußballspiel (Wenn man es so nennen kann) gemacht. Das
Prob: Wenn man geschossen hat, kann man das Prog. nicht mehr zurücksetzen und muss es neustarten. Den Ball kann man zwar wieder bewegen und damit schießen,
jedoch der Torwart bewegt sich nicht, weil die Torwartbewegungsmethode nicht
mehr läuft und wenn man sie jetzt startet, dann konzentriert sich das Prog nurnoch auf
den Torwart und der KeyListener wird vernachlässigt (Aaa diese Erklärung ist miserabel!) Nunja, ich habe den Quellcode mal angehongen, und ich muss noch dazu
sagen das das ganze ziemlich hässlich aussieht (me <-- ) falls jemand verstanden hat, was ich meine, der helfe mir bitte.
(Achso wenn ihr lachen wollt lacht ruhig)
import java.awt.event.*;
import java.awt.*;
public class Game extends Frame implements WindowListener, KeyListener{
Label tor, torwart, ball, steuerung;
int x, y, z, bx, by = 220;
boolean halt = false, rechts = true, vb = false;
public Game(){
this.setBounds(500,390,450,400);
this.setBackground(new Color(170,220,170));
this.setTitle("Baelle ballern");
this.setVisible(true);
tor = new Label("|-------------------|");
torwart = new Label("|0|");
steuerung = new Label("Tasten: <-- nach links, ^ schuss, --> nach rechts");
ball = new Label("O");
tor.setBounds(140,24,200,20);
torwart.setBounds(200,40,24,20);
ball.setBounds(200,220,15,20);
steuerung.setBounds(14,350,420,20);
steuerung.setBackground(new Color(220,170,170));
this.addWindowListener(this);
this.add(tor);
this.add(torwart);
this.add(ball);
this.add(steuerung);
this.addKeyListener(this);
}
public static void main(String args[]){
Game mt1 = new Game();
mt1.torwart();
}
//Beweg den Ball!
public void moveBall(int b1){
if (b1 == 1){
bx =(int)(ball.getLocation().getX());
ball.setLocation((bx+5), 220);
} else {
if (b1 == 2){
bx =(int)(ball.getLocation().getX());
ball.setLocation((bx-5), 220);
} else {
bx = (int)(ball.getLocation().getX());
try{
while(by > 60){
Thread.sleep(50);
by = by -10;
ball.setLocation(bx, by);
if ((int)(ball.getLocation().getY()) < 70){
halt = true;
if (ball.getLocation().getX() + 14 < torwart.getLocation().getX() && ball.getLocation().getX() > 140 || ball.getLocation().getX() > torwart.getLocation().getX() + 23 && ball.getLocation().getX() +20 < 340){
this.setTitle("Tor!");
ball.setLocation(bx, 40);
vb = true;
} else {
this.setTitle("verloren!");
vb = true;
}
}
}
}catch(InterruptedException e){
}
}
}
}
//
//KeyListner
public void keyPressed(KeyEvent e){
if (e.getKeyCode() == e.VK_LEFT){
moveBall(2);
} else {
if (e.getKeyCode() == e.VK_RIGHT){
moveBall(1);
} else {
if (e.getKeyCode() == e.VK_UP){
moveBall(3);
}
}
}
}
public void keyReleased(KeyEvent e){
}
public void keyTyped(KeyEvent e){
}
//ende
//Torwartsteuerrung
public void torwart(){
while (!halt){
if (rechts){
try{
x = (int)(torwart.getLocation().getX());
y = x;
while (x < (y + (Math.random()*100))){
x= x+3;
Thread.sleep(50);
z = (int)((x + x + ball.getLocation().getX())/3);
if(!halt){
torwart.setLocation(z,40);
}
}
rechts = false;
}catch(InterruptedException e){
}
} else {
try{
x = (int)(torwart.getLocation().getX());
y = x;
while (x > (y - (Math.random()*100))){
x=x-3;
Thread.sleep(50);
z = (int)((x + x + ball.getLocation().getX())/3);
if(!halt){
torwart.setLocation(z,40);
}
}
rechts = true;
}catch(InterruptedException e){
}
}
}
}
//Ende
//windowListener
public void windowActivated(WindowEvent e){
}
public void windowClosed(WindowEvent e){
}
public void windowClosing(WindowEvent e){
System.exit(0);
}
public void windowDeactivated(WindowEvent e){
}
public void windowDeiconified(WindowEvent e){
}
public void windowIconified(WindowEvent e){
}
public void windowOpened(WindowEvent e){
}
//ende
}
Zuletzt bearbeitet: