Problem mit Java Zahlen Spiel

Status
Nicht offen für weitere Antworten.
J

Johny

Gast
Code:
//import javax.sound.sampled.*;
import java.awt.Color;
import java.awt.*;

public class Ball
{
private int rand = 5;
private int radius; // Größe
private int x,y; // Position
private int maxx,maxy;
private int speed_x,speed_y; // Geschwindigkeit
private Color farbe; //Farbe
private String text;
private boolean visible = true;
Color farbe2 = new Color(0,255,255);
//ac = getAudioClip( getCodeBase(),"MetalCrash.au" );


public Ball(int radius, int x, int y,int maxx,int maxy, int dx, int dy, Color color,String text)
{
this.radius = radius;
this.x = x;
this.y = y;
this.maxx = maxx;
this.maxy = maxy;
speed_x = dx;
speed_y = dy;
rand = radius;
farbe = color;
this.text = text;
}

public void move()
{
if (visible)
{
x += speed_x;
y += speed_y;
isOut();
}
}
private boolean isOut()
{
boolean out = false;
if (x>(maxx-rand))
{
x = maxx-rand-1;
//
speed_x = speed_x * -1;
speed_x = (int)(speed_x * (2*(Math.random())));
speed_y = (int)(speed_y * (2*(Math.random())));
if (speed_x == 0)speed_x = (int)(2*(Math.random()+2));
if (speed_y == 0) speed_y = (int)(2*(Math.random()+2));
out = true;
}
if (x<(rand))
{
x = rand+1;
//
speed_x = speed_x * -1;
speed_x = (int)(speed_x * (1*(Math.random()+0.5)));
speed_y = (int)(speed_y * (1*(Math.random()+0.5)));
if (speed_x ==0)speed_x = (int)(2*(Math.random()+2));
if (speed_y == 0) speed_y = (int)(2*(Math.random()+2));
out = true;
}
if (y>(maxy-rand))
{
y = maxy-rand-1;
//
speed_y = speed_y * -1;
speed_y = (int)(speed_y * (1*(Math.random()+0.5)));
speed_x = (int)(speed_x * (1*(Math.random()+0.5)));
if (speed_y == 0)speed_y =-1;
if (speed_x == 0)speed_x =1;
out = true;
}
if (y<(rand))
{
y = rand+1;
//
speed_y = speed_y * -1;
speed_y = (int)(speed_y * (1*(Math.random()+0.5)));
speed_x = (int)(speed_x * (1*(Math.random()+0.5)));

if (speed_x == 0)speed_x =1;
out = true;
}
return out;

}
public boolean userHit (int maus_x, int maus_y)
{
// Bestimmen der Verbindungsvektoren
double mx = maus_x - x;
double my = maus_y - y;

// Berechnen der Distanz
double distance = Math.sqrt ((mx*mx) + (my*my));

// Wenn Distanz kleiner als 15 gilt Ball als getroffen
if (distance < 15)
{

return true;
}
else return false;
}
public boolean ballHit(int bx,int by)
{
double mx = bx - x;
double my = by - y;

// Berechnen der Distanz
double distance = Math.sqrt ((mx*mx) + (my*my));

// Wenn Distanz kleiner als 15 gilt Ball als getroffen
if (distance < 15)
{

return true;
}
else return false;
}
public int getNummer()
{
return Integer.parseInt(text);
}
public int getX()
{
return x;
}

public int getY()
{
return y;
}
public int getRadius()
{
return radius;
}
public void verdecken()
{

visible = false;
}
public void neueRichtung()
{
speed_y = speed_y *(-1);
speed_x = speed_x *(-1);

}
public void paint(Graphics g)
{
if (visible) g.setColor(farbe);
else
g.setColor(farbe2);
//g.fillOval(x,y,radius,radius);
g.drawString(text,x,y);
}
public void hide(Graphics g)
{

g.setColor(Color.BLACK);
//g.fillOval(x,y,radius,radius);
g.drawString(text,x,y);
}
}



Zitat:

import java.awt.*;



public class Schlaeger
{
private int x,y; // Position
private int tempX,tempY; // Gespeicherte Position
private int richtungX,richtungY; //Richtung der Maus
private int dx,dy; // Ausdehnung in x und y
private Color farbe; //Farbe
public Schlaeger(int x,int y,int dx,int dy,Color color)
{
this.x = x;
this.y = y;
this.dx = dx;
this.dy = dy;

farbe = color;
}
public void setPos(int x,int y)
{
this.tempX =x;
this.tempY = y;
}
public int getX()
{
return x;
}
public int getY()
{
return y;
}
public void paint(Graphics g)
{
// g.setColor(farbe);
// g.fillRect(x,y,dx,dy);
}
public boolean getroffenX(int ballX,int ballY,int radius)
{
boolean treffer = false;
if ((x+dx >= ballX)&&(x<ballX)) // rechte Seite des Schlägers
treffer = true;

if ((x<= ballX+radius)&&(x+dx>ballX+radius)) // linke Seite des Schlägers
treffer = true;
if (getroffenY(ballX,ballY,radius)&&treffer)
treffer = false;
return treffer;
}
public boolean getroffenY(int ballX,int ballY,int radius)
{
boolean treffer = false;
if (y+dy == ballY)
treffer = true;

if (y == ballY+radius)
treffer = true;

return treffer;
}
public void hide(Graphics g)
{

//g.setColor(Color.BLACK);
//g.clearRect(x,y,dx,dy);

x = tempX;
y = tempY;
}

}




Zitat:

import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.util.*;

import javax.swing.JButton;
import javax.swing.JDialog;


//Aufgabe 4

public class Spiel extends Applet implements Runnable, WindowListener, MouseMotionListener,ActionListener
{
Cursor c; // Variable für Cursor
Font f = new Font ("Serif", Font.BOLD, 50);
int speed = 150;
int treffernummer = 0;
Thread th;
Ball b;
Schlaeger s;
//Button but=new Button("Start");
TextField T= new TextField();


boolean bp=false;

private Image dbImage;
private Graphics dbg;

private Vector baelle;
private static final int maxBaelle = 15;

JDialog d = new JDialog();
public void init()
{

setSize(800,800);
setVisible(true);
c = new Cursor (Cursor.CROSSHAIR_CURSOR);
this.setCursor (c);

Color superblue = new Color (255, 0, 255);

// Setzen der Hintergrundfarbe
setBackground (Color.black);

// Setzten der Schrift
setFont (f);
speed = 15;




th = new Thread (this);

addMouseMotionListener(this);
s = new Schlaeger(100,100,25,50,new Color(255,0,0));
baelle = new Vector(20);
for ( int i= 0; i <=maxBaelle;i++)
{
Ball b = new Ball(10,30*i,30*i,getWidth(),getHeight(),(int)(Math.random()*3+1),(int)(Math.random()*3+1),superblue,String.valueOf(i));
baelle.add(b);
}

}


public void run() {

Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

while (true)
{
try
{
// Stoppen des Threads für 10 Millisekunden
Thread.sleep (speed);


repaint();

}




catch (InterruptedException ex)
{
// do nothing
}

// Zurücksetzen der ThreadPriority auf Maximalwert
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}

}
public void update (Graphics g)
{
// Initialisierung des DoubleBuffers
if (dbImage == null)
{
dbImage = createImage (this.getSize().width, this.getSize().height);
dbg = dbImage.getGraphics ();
}

// Auf gelöschten Hintergrund Vordergrund zeichnen
dbg.setColor (getForeground());
s.hide(dbg);
s.paint(dbg);
for (Iterator iter = baelle.iterator();iter.hasNext()Wink
{ Ball b;
b = ((Ball) iter.next());
for (Iterator iter2 = baelle.iterator();iter2.hasNext()Wink
{ Ball b2;
b2 = ((Ball) iter2.next());
if ((b2.getX()!= b.getX())&&(b2.getY()!= b.getY()))
if (b2.ballHit(b.getX(),b.getY())) b2.neueRichtung();
}
b.hide(dbg);
b.move();

b.paint(dbg);
}

paint (dbg);

// Nun fertig gezeichnetes Bild Offscreen auf dem richtigen Bildschirm anzeigen
g.drawImage (dbImage, 0, 0, this);
}

public void start()
{

while (bp!=true)
{
run();
}
d.addMouseMotionListener(this);


d.add( new JButton ("Herzlich willkommen Spiel Starten") );
d.setSize( 300, 100 );
d.setVisible( true );





repaint();

Spiel s = new Spiel();





}
public void actionPerformed(ActionEvent e)
{
bp=true;
d.hide();
run();


}




public static void main(String[] args)
{

}

public void windowActivated(WindowEvent e) {}

public void windowClosed(WindowEvent e) {}

public void windowClosing(WindowEvent e)
{

}

public void windowDeactivated(WindowEvent e) {}

public void windowDeiconified(WindowEvent e) {}

public void windowIconified(WindowEvent e) {}

public void windowOpened(WindowEvent e) {}

public void mouseClicked(MouseEvent e) {

}

public void mouseEntered(MouseEvent e){}

public void mouseExited(MouseEvent e) {}

public void mousePressed(MouseEvent e) {


}

public void mouseReleased(MouseEvent e) {}

public void mouseDragged(MouseEvent e) { run(); }

public void mouseMoved(MouseEvent e) {
s.setPos(e.getX(),e.getY());

for (Iterator iter = baelle.iterator();iter.hasNext()Wink
{ Ball b;
b = ((Ball) iter.next());

if (b.userHit(s.getX(),s.getY()))
{
treffernummer=treffernummer+1;


System.out.print("Fehler"+treffernummer);

;


treffernummer = b.getNummer();
b.verdecken();
}

}

}}


soweit der sourcecode

Aufgabe1
jetzt soll eine begrüßung vorm spielbeginn gezeigt werden, die nach klicken verschwindet und das spiel startet.

Aufgabe2
EIn Fehlerzähler soll bei berühren einer falschen zahl um eins erhöht werden

Aufgabe3
nach beendigung des spiels soll nach nachfrage das spiel wieder von vorne anfangen



zb der fehlerzähler läuft ohne mein zutun unendlich weiter


ie begrüssung wird als fenster angezeigt
aber das programm läuft sofort los und der angezeigte button tut nichts

if (b.userHit(s.getX(),s.getY()))
{
treffernummer=treffernummer+1;


System.out.print("Fehler"+treffernummer);

die treffer kann ich auch nicht erfassen

wie komm ich dabei weiter?
 
S

SlaterB

Gast
was für ein Programm.., Applets sind schlecht selber zu testen, das schreckt vielleicht Helfer ab,

Tipp für Aufgabe 1 und 3: diese haben relativ wenig mit dem Rest zu tun,
baue diese für ein 50-Zeilen-Dummy-Spiel,
in deinen 500 Zeilen geht das ja völlig unter,


> zb der fehlerzähler läuft ohne mein zutun unendlich weiter
wie kann das sein? reagiert der nicht auf ein Mausereignis oder so?

du hast das bei mouseMoved mit drin? das Ereignis kommt natürlich relativ oft,
mach dort doch eine Ausgabe
Systen.out.println("position x,y , treffernummer wird erhöht weil ...");
dann weißt du warum da das Programm die Anzahl erhöht

------

> die treffer kann ich auch nicht erfassen

meinst du jetzt die Anzahl der Fehler oder ist das eine neue Frage?

ist außerdem keine Problembeschreibung, was ist deine Frage dabei?
bist du konzeptionell bei Null und fragst allgemein wie das geht,
oder hast du da einen Kompilierfehler in einer bestimmten Codestelle?
 
J

Johny

Gast
allgemein würd schon reichen.
applets lassen sich doch recht leicht testen
in einer html

ich wollte einmal die treffer
und die falsch getroffenen anzeigen
if oder for klappt nicht so richtig bei mir
 
S

SlaterB

Gast
> if oder for klappt nicht so richtig bei mir

wenn das deine gesamte Eigenleistung/ Problembeschreibung ist, dann gehts hier kaum weiter ;)
und HTML ist eben nicht gerade komfortabel
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Java Dezimal Zahlen Internazialisation Problem Java Basics - Anfänger-Themen 7
josfe1234 JAVA FX problem Java Basics - Anfänger-Themen 3
J JAVA-Problem blockiert MEDIATHEKVIEW Java Basics - Anfänger-Themen 13
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6
C Java Methoden "Parameter" Problem Java Basics - Anfänger-Themen 16
K Java Problem mit Übergabe von argumenten Java Basics - Anfänger-Themen 3
J "travelling salesman problem" mit Java Editor Java Basics - Anfänger-Themen 17
C Two-Center Problem in Java Java Basics - Anfänger-Themen 0
P Problem bei Java-Aufgabe Java Basics - Anfänger-Themen 12
L Java reset button Problem Java Basics - Anfänger-Themen 3
L Java reset button Problem Java Basics - Anfänger-Themen 9
L Problem bei Java-ActionListener Java Basics - Anfänger-Themen 4
Amelie Java Problem Java Basics - Anfänger-Themen 2
T eclipse mit java 9 Problem? Java Basics - Anfänger-Themen 5
B problem mit java Java Basics - Anfänger-Themen 15
Z Problem mit "Random" in Java Java Basics - Anfänger-Themen 12
J Verständnis Problem Java-Listener. Java Basics - Anfänger-Themen 59
A Problem eines Anfängers bei Java Java Basics - Anfänger-Themen 6
O Compiler-Fehler Ein weiteres Java Problem Java Basics - Anfänger-Themen 3
L Compiler-Fehler Problem beim Programmieren eines Kalenders (java.lang.ArrayIndexOutOfBoundsException) Java Basics - Anfänger-Themen 2
H Interface Problem mit Java Editor Java Basics - Anfänger-Themen 15
J Problem mit java Dos-Applikation Java Basics - Anfänger-Themen 3
M Problem/Unsicherheit bei Java-Aufgaben Java Basics - Anfänger-Themen 11
G Problem: Java Projekt als ausführbare Jar Exportieren (Eclipse) Java Basics - Anfänger-Themen 10
K Java Projekt als ausführbare Jar Exportieren (Eclipse) Problem Java Basics - Anfänger-Themen 24
D Erste Schritte Problem mit dem Java-Editor Eclipse [Frage] Java Basics - Anfänger-Themen 13
P Tag der Zeitumstellung Sommer->Winterzeit (Java Calendar) Problem Java Basics - Anfänger-Themen 5
T Problem mit Eclipse? Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 4
J Java Daten von Konsole einlesen (Spezielles Problem) Java Basics - Anfänger-Themen 6
R Problem mit Java-Chat Java Basics - Anfänger-Themen 2
KranzKrone Erste Schritte Java MVC Problem Java Basics - Anfänger-Themen 3
T Problem mit java-editor + Scanner Java Basics - Anfänger-Themen 9
C JDK installieren Habe ein Problem bei Java install Java Basics - Anfänger-Themen 4
B JAVA Package Problem Java Basics - Anfänger-Themen 8
D Java Date/Calendar Problem Java Basics - Anfänger-Themen 4
V Java Chat Programm Problem mit IP Addresse Java Basics - Anfänger-Themen 7
J Habe problem mit Java Java Basics - Anfänger-Themen 2
B Problem mit Dr. Java Java Basics - Anfänger-Themen 15
T Problem bei BeatBox aus Java-Von Kopf bis Fuß Java Basics - Anfänger-Themen 3
P Problem- Java Applet wird nicht ausgeführt Java Basics - Anfänger-Themen 9
H JDK installieren Mac Problem mit Java SE 1.7 Java Basics - Anfänger-Themen 5
I Java von Kopf bis Fuß: Ratespiel-Problem Java Basics - Anfänger-Themen 20
P Problem :Java-Dateien in einem Ordner ablegen Java Basics - Anfänger-Themen 10
M Java String " einfügen Problem Java Basics - Anfänger-Themen 2
I Problem mit Java Text Area Java Basics - Anfänger-Themen 14
S Problem mit java.awt Java Basics - Anfänger-Themen 3
S java versionen problem Java Basics - Anfänger-Themen 20
Z Problem mit Tutorial - Finde Kon.java nicht Java Basics - Anfänger-Themen 11
B Problem mit Java XML Java Basics - Anfänger-Themen 6
B Problem mit XML und Java Java Basics - Anfänger-Themen 2
F Methoden Java Freihand Problem Java Basics - Anfänger-Themen 4
turmaline Java Virtual Machine Launcher Problem Java Basics - Anfänger-Themen 1
J Java Installations/Deinstallations Problem. Java Basics - Anfänger-Themen 5
D Problem mit java.io.* Java Basics - Anfänger-Themen 6
M Problem bei einer Java-Aufgabe (Fakultäten) Java Basics - Anfänger-Themen 5
H Problem beim Anfang von Java (Java Editor) Java Basics - Anfänger-Themen 2
D Problem mit Java für dummies Java Basics - Anfänger-Themen 2
K Java Array Problem Java Basics - Anfänger-Themen 3
M java.lang.NumberFormatException-Problem Java Basics - Anfänger-Themen 6
S Java problem, bitte um hilfe! Java Basics - Anfänger-Themen 9
J Problem mit Ausführen von Java-Dateien Java Basics - Anfänger-Themen 5
A Problem bei der Division mit Java Java Basics - Anfänger-Themen 4
E Datentypen ein java problem rekursiv loesen Java Basics - Anfänger-Themen 2
S Java Verständnis Problem Methoden etc. Java Basics - Anfänger-Themen 22
E Java hashCode equals Problem Java Basics - Anfänger-Themen 2
D Problem bei Java - Aufgabe Java Basics - Anfänger-Themen 7
B in & out class problem (java anfängeR) Java Basics - Anfänger-Themen 5
F Java Variablen Problem Java Basics - Anfänger-Themen 8
R Problem beim Ausführen von Java-PGM aus der shel Java Basics - Anfänger-Themen 3
D Java Problem bitte um hilfe Java Basics - Anfänger-Themen 4
L Java [Beginner] Problem Java Basics - Anfänger-Themen 8
K java.util.ConcurrentModificationException problem in der Logik? Quaxli-Tutorial Java Basics - Anfänger-Themen 9
D Java per Konsole oder Batch öffnen - Problem Java Basics - Anfänger-Themen 4
S setVisible Problem bei java.awt Java Basics - Anfänger-Themen 9
J Anfänger-Problem: Rechnen mit Java Java Basics - Anfänger-Themen 3
T Java Bilderverwaltung - Image Fetcher Problem Java Basics - Anfänger-Themen 4
V Problem bei java Application Java Basics - Anfänger-Themen 3
B Java Desktop Wecker problem Java Basics - Anfänger-Themen 3
? Konsolenprogramm hat Problem mit java.awt oder javax.swing Java Basics - Anfänger-Themen 7
M Problem mit dem Klassen aus dem java.io Paket Java Basics - Anfänger-Themen 9
E java.util.ConcurrentModificationException Problem Java Basics - Anfänger-Themen 5
G java.io.File problem Java Basics - Anfänger-Themen 5
R Java Problem (mit NetBeans) - html gibt nur java logo aus Java Basics - Anfänger-Themen 7
M Problem mit Java unter Vista 64 Java Basics - Anfänger-Themen 4
S Seltsames Java Problem Java Basics - Anfänger-Themen 3
A Matisse oder Java Problem: JPanels werden riesig ? Java Basics - Anfänger-Themen 3
S Ausgabe auf der Java-Console (Java Problem) Java Basics - Anfänger-Themen 13
A Do/While Problem (Exception in thread "main" java. Java Basics - Anfänger-Themen 4
Nexu [JAVA] Problem mit den Fenstern Java Basics - Anfänger-Themen 2
D Problem bei einer Formel (Bin Java Neuling) Java Basics - Anfänger-Themen 3
D Java Rechner und Einlesen Problem (mit hasNext) Java Basics - Anfänger-Themen 2
G JAVA KARA PROBLEM Java Basics - Anfänger-Themen 4
F Problem mit auführen einer .bat Datei aus Java heraus Java Basics - Anfänger-Themen 24
I Problem mit import java.awt.*; Java Basics - Anfänger-Themen 5
J Java GUI Problem (throws.) Java Basics - Anfänger-Themen 3
S Problem beim kompilieren mit Java 1.4 Java Basics - Anfänger-Themen 4
A problem mit java.awt Java Basics - Anfänger-Themen 17
K Problem mit javax/servlet/http/HttpServletRequest.java Java Basics - Anfänger-Themen 2
N Problem mit MySql und Java Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben