mouseDown

Status
Nicht offen für weitere Antworten.

Tonxxx

Bekanntes Mitglied
halllo, ich weiss nicht wiso ich diess Methode nicht öffnen kann. öffnet sich die nicht automatisch wenn man mit der Maus klickt?

Java:
	public void mouseDown (Event e)
	{
		System.out.println("mouseDown start");
		// Wenn Spiel noch nicht gestartet ist, oder wieder gestartet wird
		if (e.clickCount == 2)
		{
		    // Alle wichtigen Werte zurücksetzen
			punkte.setEnd(0);
			init ();
		}

	}

vielen dank für di antworten
 

Tonxxx

Bekanntes Mitglied
als ich jetzt MousListener wollte implementieren, sagte er mir
C:\Programme Java\Applets\Snake>javac Snake.java
Snake.java:12: Snake is not abstract and does not override abstract method mouse
Exited(java.awt.event.MouseEvent) in java.awt.event.MouseListener
public class Snake extends Applet implements Runnable, MouseListener

was ist jetzt falsch?
 

Marco13

Top Contributor
Die Klasse, die "implements MouseListener" macht, muss Methoden
Code:
public void  mouseEntered(MouseEvent e) {}
public void  mouseExited(MouseEvent e) {}
public void  mousePressed(MouseEvent e) {}
public void  mouseReleased(MouseEvent e) {}
public void  mouseClicked(MouseEvent e) {}
enhalten - bei dir wären die wohl erstmal alle leer, außer "mouseClicked"...
 

Tonxxx

Bekanntes Mitglied
gut ich hab die alle reingeschrieben.
doch warum wird die methode immer noch nicht geöffnet, wenn ich klicke?

Java:
	public void  mouseEntered(MouseEvent e) 
	{

	}
	public void  mouseExited(MouseEvent e) 
	{

	}
	public void  mousePressed(MouseEvent e) 
	{
		System.out.println("mousePressed start");
		// Wenn Spiel noch nicht gestartet ist, oder wieder gestartet wird
		//if (e.getClickCount () == 2)
		//{
		    // Alle wichtigen Werte zurücksetzen
			punkte.setEnd(0);
			init ();
		//}
	}
	public void  mouseReleased(MouseEvent e) 
	{

	}
	public void  mouseClicked(MouseEvent e) 
	{

	}
 

eRaaaa

Top Contributor
also mal im ernst. wieso postet du immer nur so kleckerweise? :) keiner weiss genau wies aussieht. kann ja an tausend ecken und kanten kleine fehler gemacht werden..wenn du dann nicht mal ne fehlermeldung postest, wird das ewig dauern. ich tippe einfach mal drauf, dass du den listener nicht registriert hast.

wieso schaust du dir nicht mal den link an, der am anfang vorgeschlagen wurde?
 

Painii

Bekanntes Mitglied
wenn du dann nicht mal ne fehlermeldung postest, wird das ewig dauern. ich tippe einfach mal drauf, dass du den listener nicht registriert hast.
In dem Fall wird es evtl. keine Fehlermeldung geben (weil ja nix passiert was Fehler machen kann :D)

Im Rest kann ich nur zustimmen, schau dir das Tutorial an
 

Spin

Top Contributor
Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Spin
 */
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Mausereignisse extends JApplet implements MouseListener {
    
    JButton button = new JButton("Mausereignisse");
    JLabel l = new JLabel();
    
    // Konstruktor des Applets
    public Mausereignisse()
    {
        Container cp = getContentPane();
        cp.setLayout(new BorderLayout());
        
        //Komponenten hinzufuegen
        cp.add(button,BorderLayout.NORTH);
        cp.add(l,BorderLayout.SOUTH);
        
        button.addMouseListener(this);
    }

    public void mouseClicked(MouseEvent e) {
        l.setText("Maustaste gedrückt");
    }

    public void mousePressed(MouseEvent e) {
        l.setText("Schaltfläche  gedrückt");
    }

    public void mouseReleased(MouseEvent e) {
       l.setText("Schaltfläche gedrückt");
    }

    public void mouseEntered(MouseEvent e) {
        l.setText("Maustaste gedrückt halten");
    }

    public void mouseExited(MouseEvent e) {
        l.setText("Maustaste losgelassen");
    }
        
    
}



Bitte ;) Also Ereignisse sind ganz einfach ;)
Wenn du die Basics kannst , dann ist so ein Listener schnell hinzugefügt ^^.

grüße
 

Tonxxx

Bekanntes Mitglied
Vielen Dank für die vielen antworten, doch sehr viel weiter bin ich nicht, denn ich konnte euch keine Fehlermeldung geben, da ich keine hatte. aus den englischen Seiten die ihr mir gegeben habt, bin ich auch nicht sehr schlau geworden. Und ich habe nur fetzten rein gestellt, da sich früher mache aufgeregt haben, dass ich immer zu viel poste. mir scheint es, das ich dieses mal zu wenig gepostet habe, darum poste ich noch einmal alles!;)

Java:
//Snake
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.MouseListener;
import java.util.*;
import javax.swing.*;




public class Snake extends JApplet, extends Applet implements Runnable, MouseListener
{
	// Initialisierung der Variablen

	int appletsize_x = 600; 	// Größe des Applets in x - Richtung
	int appletsize_y = 600;		// Größe des Applets in y - Richtung
//
	int x_pos = appletsize_x / 2;		// x - Position des Balles
	int y_pos = appletsize_y / 2;		// y - Position des Balles

	int x_speed = 0;		// Geschwindigkeit des Balles in x - Richtung
	int y_speed = 0;		// Geschwindigkeit des Balles in y - Richtung

	public int getX_speed()
	{
		return x_speed;
	}

	public void setX_speed(int x_speed)
	{
		this.x_speed 	= x_speed;
	}
	public int getY_speed()
	{
		return y_speed;
	}

	public void setY_speed(int y_speed)
	{
		this.y_speed 	= y_speed;
	}

	int speed = 2;

	int radius = 15;		// Radius des Balles

	int pause = 10;

//
	int x_beweg;
	int y_beweg;	

	int x_be_speed = 0;
	int y_be_speed = 0;

	int be_speed = 1;

	int b_beweg = 38;
	int h_beweg = 32;

	int[] x_be;
	int[] y_be;

	int anzahl_be_punkte = 6;
//

	//Zufallszahl
	Random zufallspos = new Random();

	Punkte punkte = new Punkte();
	Futter futter = new Futter();

	// Variablen für die Doppelpufferung
	private Image dbImage;
	private Graphics dbg;

   	 JButton button = new JButton("Mausereignisse");
   	 JLabel l = new JLabel();
    
   	 // Konstruktor des Applets
   	 public Snake()
  	 {
      	 	 Container cp = getContentPane();
       		 cp.setLayout(new BorderLayout());
        
       		 //Komponenten hinzufuegen
       		 cp.add(button,BorderLayout.NORTH);
       		 cp.add(l,BorderLayout.SOUTH);
        
       		 button.addMouseListener(this);
    	}


	public void init()
	{
		setBackground (Color.blue);


	}

	public void start ()
	{
		// Schaffen eines neuen Threads, in dem das Spiel läuft
		Thread th = new Thread (this);
		// Starten des Threads
		th.start ();

				//System.out.println("start : Start");
	}

	public void stop()
	{

	}

	public void destroy()
	{

	}

	/* Diese Methode fängt das Ereigniss auf, das beim Drücken einer Keyboardtaste entsteht.
	Die Tasten Cursor links, rechts und die Space Taste haben dabei eine bestimmte Bedeutung.
	Wird eine andere Taste gedrückt, so wird ihr Integerwert in die Standardausgabe geschrieben. */
	public boolean keyDown (Event e, int key)
	{
					//System.out.println("start : keyDown");
		// linke Cursortaste
		if (key == Event.LEFT)
		{
			// Ball bewegt sich dann nach links
			x_speed = -speed;
			y_speed = 0;
		}
		// rechte Cursortaste
		else if (key == Event.RIGHT)
		{
			// Ball bewegt sich dann nach rechts
			x_speed = speed;
			y_speed = 0;
		}
		// hoch
		else if (key == 1004)//1004 = hoch
		{
			// Ball bewegt sich dann nach links
			y_speed = -speed;
			x_speed = 0;
		}
		// runter
		else if (key == 1005)//1005 = runter
		{
			// Ball bewegt sich dann nach rechts
			y_speed = speed;
			x_speed = 0;
		}
		// SpaceBar hat Wert 32
		else if (key == 32)
		{
			x_speed = 0;
			y_speed = 0;
		}
		else
		{
			// Ausgabe von gedrüktem Key und Zahlenwert an die Standardausgabe
			System.out.println ("Charakter: " + (char)key + " Integer Value: " + key);
		}
					//System.out.println("nach Cursor : " + x_speed + " , " + y_speed);

					//System.out.println("finish : keyDown");
		return true;

	}
   	public void mouseClicked(MouseEvent e) 
	{
        	l.setText("Maustaste gedrückt");
    	}
 
    	public void mousePressed(MouseEvent e) 
	{
        	l.setText("Schaltfläche  gedrückt");
    	}
 
    	public void mouseReleased(MouseEvent e) 
	{
       		l.setText("Schaltfläche gedrückt");
    	}
 
    	public void mouseEntered(MouseEvent e) 
	{
        	l.setText("Maustaste gedrückt halten");
    	}
 
    	public void mouseExited(MouseEvent e) 
	{
        	l.setText("Maustaste losgelassen");
    	}

		/*System.out.println("mouseDown start");
		// Wenn Spiel noch nicht gestartet ist, oder wieder gestartet wird
		//if (e.getClickCount () == 2)
		//{
		    // Alle wichtigen Werte zurücksetzen
			punkte.setEnd(0);
			init ();*/


	public void run ()
	{
					//System.out.println("start : run");
		// Erniedrigen der ThreadPriority um zeichnen zu erleichtern
		Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

		System.out.println("run : " + x_speed + " , " + y_speed);

	// Zufallsort des Futters
		
		futter.Zufallspos_X(appletsize_x, appletsize_y);
		futter.Zufallspos_Y(appletsize_x, appletsize_y);

	// Zufallsort der Punkte

		punkte.Zufallspos_X(appletsize_x, appletsize_y);
		punkte.Zufallspos_Y(appletsize_x, appletsize_y);

	// Zufallsort der beweglichen Punkte
		x_be = new int[anzahl_be_punkte];

		//while(true)
		//{
			for(int i=0; i<=anzahl_be_punkte -1; i++)
			{
				x_be[i] = zufallspos.nextInt(appletsize_x - punkte.getBreite());
				System.out.println("bewegliche Punkte x: " + x_be[i]);
	
			}

			y_be = new int[anzahl_be_punkte];
			for(int i=0; i<=anzahl_be_punkte -1; i++)
			{
				y_be[i] = zufallspos.nextInt(appletsize_x - punkte.getHöhe());	
				System.out.println("bewegliche Punkte y: " + y_be[i]);

				//return false;
	
			}
			//for(int i=0; i<=anzahl_be_punkte -1; i++)
			//{	
			//	if((appletsize_y / 2) + radius <=y_be[i]<= (appletsize_y / 2) - h_beweg && (appletsize_x / 2) - b_beweg<= x_be[i]<= (appletsize_x / 2) + radius)
			//	{
			//		return true;
			//	}
			//}		
		//}
	// Zufallsrichtung der beweglichen Punkte

		final int N = 0;
		final int NO = 1;
		final int O = 2;
		final int SO = 3;
		final int S = 4;
		final int SW = 5;
		final int W = 6;
		final int NW = 7;
		

		for(int i=0; i<=anzahl_be_punkte -1; i++)
		{
			//x_futter = zufallspos.nextInt(7);	
		}

		x_be_speed = be_speed;

		// Solange 0 ist läuft der Thread weiter
		while (punkte.getEnd() == 0)
		{
		int loop =0;
		loop++;
					//System.out.println("while start " + loop);
			// Wenn der Ball den rechten Rand berührt, dann prallt er ab
			if (x_pos > appletsize_x - radius)
			{
				// Ändern der Richtung des Balles
				x_speed = -speed;
			}
			// Ball brührt linken Rand und prallt ab
			else if (x_pos < radius)
			{
				// Ändern der Richtung des Balles
				x_speed = +speed;
			}
			// Verändern der x- Koordinate
			x_pos += x_speed;

			// Wenn der Ball den unteren Rand berührt, dann prallt er ab
			if (y_pos > appletsize_y - radius)
			{
				// Ändern der Richtung des Balles
				y_speed = -speed;
			}
			// Ball brührt oberen Rand und prallt ab
			else if (y_pos < radius)
			{
				// Ändern der Richtung des Balles
				y_speed = +speed;
			}
			// Verändern der y- Koordinate
			y_pos += y_speed;

			x_speed = punkte.Punkte_erkennen1(x_pos, y_pos, radius, x_speed, y_speed);
			y_speed = punkte.Punkte_erkennen2(x_pos, y_pos, radius, x_speed, y_speed);

			// Futter erkennen

			futter.Futter_erkennen(x_pos, y_pos, radius, x_speed, y_speed, appletsize_x, appletsize_y);

			
			// Bewegliche Punkte Erkennen
			for (int i=0; i<=anzahl_be_punkte -1; i++)
			{
				x_beweg = x_be[i];
				y_beweg = y_be[i];

				if (   (x_beweg + b_beweg -(x_pos + radius)) * (x_beweg + b_beweg -(x_pos + radius)) + (y_beweg + h_beweg -(y_pos + radius)) * (y_beweg + h_beweg -(y_pos + radius)) <= radius * radius || 
			      		(x_beweg + b_beweg -(x_pos + radius)) * (x_beweg + b_beweg -(x_pos + radius)) + (y_beweg + h_beweg -(y_pos + radius)) * (y_beweg + h_beweg -(y_pos + radius)) <= radius * radius || 
			       		(x_beweg + b_beweg -(x_pos + radius)) * (x_beweg + b_beweg -(x_pos + radius)) + (y_beweg + h_beweg -(y_pos + radius)) * (y_beweg + h_beweg -(y_pos + radius)) <= radius * radius ||
			       		(x_beweg  + b_beweg -(x_pos + radius)) * (x_beweg + b_beweg -(x_pos + radius)) + (y_beweg + h_beweg -(y_pos + radius)) * (y_beweg + h_beweg -(y_pos + radius)) <= radius * radius ||
					x_pos + radius >= x_beweg && x_pos + radius <= x_beweg + b_beweg && y_pos >= y_beweg && y_pos <= y_beweg + b_beweg ||
					x_pos >= x_beweg && x_pos <= x_beweg + b_beweg && y_pos - radius >= y_beweg && y_pos - radius <= y_beweg + b_beweg ||
					x_pos - radius >= x_beweg && x_pos - radius <= x_beweg + b_beweg && y_pos >= y_beweg && y_pos <= y_beweg + b_beweg ||
					x_pos >= x_beweg && x_pos <= x_beweg + b_beweg && y_pos + radius >= y_beweg && y_pos + radius <= y_beweg + b_beweg   )
				{
								//System.out.println("start : punkteerkennen1 if anweisung");
					//Abprallen von den Punkten
					if (x_speed != 0)
					{
						x_speed = -x_speed;
						y_speed = 0;
						if (x_speed < 0)
						{
							x_pos = x_pos -3;
						}
						if (x_speed > 0)
						{
							x_pos = x_pos +3;
						}
					}

					if (y_speed != 0)
					{
						y_speed = -y_speed;
						x_speed = 0;

						if (y_speed < 0)
						{
							y_pos = y_pos -3;
						}
						if (y_speed > 0)
						{
							y_pos = y_pos +3;
						}
					}

					System.out.println("Dead! beweg");			
			
				}

			}
			
		//	x_be_speed = be_speed;

			for(int i=0;i <= anzahl_be_punkte -1; i++)
			{
			
				// Wenn der bewegliche Punkt den rechten Rand berührt, dann prallt er ab
				if (x_be[i] > appletsize_x - b_beweg)
				{
					// Ändern der Richtung des Balles
					x_be_speed = -be_speed;
				}
				// bewegliche Punkt brührt linken Rand und prallt ab
				else if (x_be[i] < 0)
				{
					// Ändern der Richtung des Balles
					x_be_speed = +be_speed;
				}

				// Verändern der x- Koordinate
				//for(int i=0;i <= anzahl_be_punkte -1; i++)
				//{

					x_be[i] += x_be_speed;
				//}

				// Wenn der Ball den unteren Rand berührt, dann prallt er ab
				if (y_be[i] > appletsize_y - h_beweg)
				{
					// Ändern der Richtung des Balles
					y_be_speed = -be_speed;
				}

				// Ball brührt oberen Rand und prallt ab
				else if (y_be[i] < 0)
				{
					// Ändern der Richtung des Balles
					y_be_speed = +be_speed;
				}

				// Verändern der y- Koordinate
				//for(int i=0;i <= anzahl_be_punkte -1; i++)
				//{
					y_beweg += y_be_speed;
				//}
			}

			// Neuzeichnen des Applets
			repaint();

			try
			{
				// Stoppen des Threads für in Klammern angegebene Millisekunden
				Thread.sleep (pause);
			}
			catch (InterruptedException ex)
			{
				// do nothing
			}
						//System.out.println("while end " + loop);
			// Zurücksetzen der ThreadPriority auf Maximalwert
			Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
		}

	}


	/** Update - Methode, Realisierung der Doppelpufferung zur Reduzierung des Bildschirmflackerns */
	public void update (Graphics g)
	{
					//System.out.println("start : update");
		// Initialisierung des DoubleBuffers
		if (dbImage == null)
		{
			dbImage = createImage (this.getSize().width, this.getSize().height);
			dbg = dbImage.getGraphics ();
		}

		// Bildschirm im Hintergrund löschen
		dbg.setColor (getBackground ());
		dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);

		// Auf gelöschten Hintergrund Vordergrund zeichnen
	 	dbg.setColor (getForeground());
		paint (dbg);

		// Nun fertig gezeichnetes Bild Offscreen auf dem richtigen Bildschirm anzeigen
		g.drawImage (dbImage, 0, 0, this);
					//System.out.println("finish : update");
	}

	public void paint (Graphics g)
	{

		if (punkte.getEnd() == 0)
		{
						//System.out.println("start : paint");
			System.out.println("futter : " + futter.getFressen());
			System.out.println("punkte : " + punkte.getCount());

			// Kugel
			g.setColor  (Color.red);

			g.fillOval (x_pos - radius, y_pos - radius, 2 * radius, 2 * radius);

			// Punkte
			for(int i=0; i<= punkte.getAnzahl_punkte() -1; i++)
			{
				g.setColor  (Color.black);
				g.fillRect (punkte.getX_p(i),punkte.getY_p(i),punkte.getBreite(),punkte.getHöhe());	
			}

			// Beweglichen Punkte
			for(int i=0; i<=anzahl_be_punkte -1; i++)
			{
				g.setColor  (Color.pink);
				g.fillRect (x_be[i], y_be[i],b_beweg,h_beweg);	
			}
		
			//Futter
			g.setColor  (Color.yellow);
			g.fillRect (futter.getX_futter(), futter.getY_futter(),futter.getB_futter(),futter.getH_futter());

			g.setColor (Color.yellow);

			g.drawString ("Score: " + futter.getFressen(), 10, 40);
			g.drawString ("Lives: " + punkte.getCount(), 300, 40);

		}
		else
		{
			setBackground (Color.black);

			g.setColor (Color.yellow);

			// Erreichte Punkte und game over
			g.drawString ("Game over!", 130, 100);
			g.drawString ("You scored " + futter.getFressen() + " Points!", 90, 140);

			// Bewertung der Punkte
			if (futter.getFressen() < 3) g.drawString ("Well, it could be better!", 100, 190);
			else if (futter.getFressen() < 6 && futter.getFressen() >= 3) g.drawString ("That was not so bad", 100, 190);
			else if (futter.getFressen() < 9 && futter.getFressen() >= 6) g.drawString ("That was really good", 100, 190);
			else if (futter.getFressen() < 12 && futter.getFressen() >= 9) g.drawString ("You seem to be very good!", 90, 190);
			else if (futter.getFressen() < 15 && futter.getFressen() >= 12) g.drawString ("That was nearly perfect!", 90, 190);
			else if (futter.getFressen() >= 15) g.drawString ("You are the Champingon!",100, 190);

			//g.drawString ("Doubleclick on the Applet, to play again!", 20, 220);

			//isStoped = true;	// Zurücksetzen der isStoped Variablen, um wieder neu beginnen zu können
		}

	}
}

class Punkte
{
	private int x_punkt;		// Punkte
	private int y_punkt;

	private int breite;		// breite der Punkte
	private int höhe;			// Höhe der Punkte

	private int[] x_p;
	private int[] y_p;

	private int anzahl_punkte = 20;	

	private int count;

	private int end;
		
	//Zufallszahl
	Random zufallsort = new Random();

	//Konstruktor
	public Punkte()
	{
					//System.out.println("start : Punkte.konstruktor");
		x_punkt = 0;		// Punkte
		y_punkt = 0;

		breite = 48;		// breite der Punkte
		höhe = 48;		// Höhe der Punkte

		anzahl_punkte = 10;

		count = 10;
		
		end = 0;
					//System.out.println("finish : Punkte.konstruktor");	
	}

	//get_set methoden
	public int getX_punkt()
	{
		return x_punkt;
	}
		
	public void setX_punkt(int x_punkt)
	{
		this.x_punkt 	= x_punkt;
	}
	
	public int getY_punkt()
	{
		return y_punkt;
	}

	public void setY_punkt(int y_punkt)
	{
		this.y_punkt 	= y_punkt;
	}

	public int getBreite()
	{
		return breite;
	}		
	public void setBreite(int breite)
	{
		this.breite	= breite;
	}
	public int getHöhe()
	{
		return höhe;
	}
	public void setHöhe(int höhe)
	{
		this.höhe	= höhe;
	}

	public int getX_p(int i)
	{
		return x_p[i];
	}
	public void setX_p(int[] x_p)
	{
		this.x_p	= x_p;
	}
	public int getY_p(int i)
	{
		return y_p[i];
	}
	public void setY_p(int[] y_p)
	{
		this.y_p	= y_p;
	}

	public int getAnzahl_punkte()
	{
		return anzahl_punkte;
	}
	public void setAnzahl_punkte(int anzahl_punkte)
	{
		this.anzahl_punkte= anzahl_punkte;
	}
	public int getCount()
	{
		return count;
	}
		
	public void setCount(int count)
	{
		this.count 	= count;
	}
	public int getEnd()
	{
		return end;
	}
		
	public void setEnd(int end)
	{
		this.end 	= end;
	}

	public int[] Zufallspos_X(int appletsize_x, int appletsize_y)
	{
					//System.out.println("start : zufallspos_X");

		x_p = new int[anzahl_punkte];
		for(int i=0; i<=anzahl_punkte -1; i++)
		{
			x_p[i] = zufallsort.nextInt(appletsize_x - breite);
			System.out.println("Punkte x: " + x_p[i]);
	
		}
					//System.out.println("finish : Zufallspos_X");
		return x_p;

	}
	public int[] Zufallspos_Y(int appletsize_x, int appletsize_y)
	{
					//System.out.println("start : zufallspos_Y");

		y_p = new int[anzahl_punkte];
		for(int i=0; i<=anzahl_punkte -1; i++)
		{
			y_p[i] = zufallsort.nextInt(appletsize_x - höhe);	
			System.out.println("Punkte y: " + y_p[i]);
	
		}
					//System.out.println("finish : Zufallspos_Y");
		return y_p;
	}
	
	public int Punkte_erkennen1(int x_pos, int y_pos, int radius, int x_speed, int y_speed)
	{
					//System.out.println("start : punkteerkennen1");
			// Punkte erkennen
			for (int i=0; i<=anzahl_punkte -1; i++)
			{
				x_punkt = getX_p(i);
				y_punkt = getY_p(i);

				if (   (x_punkt + breite -(x_pos + radius)) * (x_punkt + breite -(x_pos + radius)) + (y_punkt + höhe -(y_pos + radius)) * (y_punkt + höhe -(y_pos + radius)) <= radius * radius || 
			      		(x_punkt + breite -(x_pos + radius)) * (x_punkt + breite -(x_pos + radius)) + (y_punkt + höhe -(y_pos + radius)) * (y_punkt + höhe -(y_pos + radius)) <= radius * radius || 
			       		(x_punkt + breite -(x_pos + radius)) * (x_punkt + breite -(x_pos + radius)) + (y_punkt + höhe -(y_pos + radius)) * (y_punkt + höhe -(y_pos + radius)) <= radius * radius ||
			       		(x_punkt  + breite -(x_pos + radius)) * (x_punkt + breite -(x_pos + radius)) + (y_punkt + höhe -(y_pos + radius)) * (y_punkt + höhe -(y_pos + radius)) <= radius * radius ||
					x_pos + radius >= x_punkt && x_pos + radius <= x_punkt + breite && y_pos >= y_punkt && y_pos <= y_punkt + breite ||
					x_pos >= x_punkt && x_pos <= x_punkt + breite && y_pos - radius >= y_punkt && y_pos - radius <= y_punkt + breite ||
					x_pos - radius >= x_punkt && x_pos - radius <= x_punkt + breite && y_pos >= y_punkt && y_pos <= y_punkt + breite ||
					x_pos >= x_punkt && x_pos <= x_punkt + breite && y_pos + radius >= y_punkt && y_pos + radius <= y_punkt + breite   )
				{
								//System.out.println("start : punkteerkennen1 if anweisung");
					//Abprallen von den Punkten
					if (x_speed != 0)
					{
						x_speed = -x_speed;
						y_speed = 0;

						if (x_speed < 0)
						{
							x_pos = x_pos -2;
						}
						if (x_speed > 0)
						{
							x_pos = x_pos +2;
						}
					}

					if (y_speed != 0)
					{
						y_speed = -y_speed;
						x_speed = 0;

						if (y_speed < 0)
						{
							y_pos = y_pos -2;
						}
						if (y_speed > 0)
						{
							y_pos = y_pos +2;
						}
					}

					//System.out.println("Dead!");	
					police();		
			
				}

			}
					//System.out.println("finish : punkteerkennen1");
				
		return x_speed;
	}
	public int Punkte_erkennen2(int x_pos, int y_pos, int radius, int x_speed, int y_speed)
	{
						//System.out.println("start : punkteerkennen2");

			// Punkte erkennen
			for (int i=0; i<=anzahl_punkte -1; i++)
			{
				x_punkt = x_p[i];
				y_punkt = y_p[i];

				if (   (x_punkt + breite -(x_pos + radius)) * (x_punkt + breite -(x_pos + radius)) + (y_punkt + höhe -(y_pos + radius)) * (y_punkt + höhe -(y_pos + radius)) <= radius * radius || 
			      		(x_punkt + breite -(x_pos + radius)) * (x_punkt + breite -(x_pos + radius)) + (y_punkt + höhe -(y_pos + radius)) * (y_punkt + höhe -(y_pos + radius)) <= radius * radius || 
			       		(x_punkt + breite -(x_pos + radius)) * (x_punkt + breite -(x_pos + radius)) + (y_punkt + höhe -(y_pos + radius)) * (y_punkt + höhe -(y_pos + radius)) <= radius * radius ||
			       		(x_punkt  + breite -(x_pos + radius)) * (x_punkt + breite -(x_pos + radius)) + (y_punkt + höhe -(y_pos + radius)) * (y_punkt + höhe -(y_pos + radius)) <= radius * radius ||
					x_pos + radius >= x_punkt && x_pos + radius <= x_punkt + breite && y_pos >= y_punkt && y_pos <= y_punkt + breite ||
					x_pos >= x_punkt && x_pos <= x_punkt + breite && y_pos - radius >= y_punkt && y_pos - radius <= y_punkt + breite ||
					x_pos - radius >= x_punkt && x_pos - radius <= x_punkt + breite && y_pos >= y_punkt && y_pos <= y_punkt + breite ||
					x_pos >= x_punkt && x_pos <= x_punkt + breite && y_pos + radius >= y_punkt && y_pos + radius <= y_punkt + breite   )
				{

					//Abprallen von den Punkten
					if (x_speed != 0)
					{
						x_speed = -x_speed;
						y_speed = 0;

						if (x_speed < 0)
						{
							x_pos = x_pos -2;
						}
						if (x_speed > 0)
						{
							x_pos = x_pos +2;
						}
					}

					if (y_speed != 0)
					{
						y_speed = -y_speed;
						x_speed = 0;

						if (y_speed < 0)
						{
							y_pos = y_pos -2;
						}
						if (y_speed > 0)
						{
							y_pos = y_pos +2;
						}
					}

					//System.out.println("Dead!");				
			
				}

			}
					//System.out.println("finish : punkteerkennen21");
		return y_speed;
	}
	public void police()
	{
		count--;

		System.out.println("Police");

		if(count == 0)
		{
			end();
		}
		setCount(count);
	}

	public void end()
	{
		System.out.println("end");
		end = 1;
		setEnd(end);
	}

}

Ich weiss, dass mein programm, abgesehen von den fehlern, auch sonst nicht sehr schön aufgebaut ist.

also die Fehlermeldung die ich jetzt habe, ist:

C:\Programme Java\Applets\Snake>javac Snake.java
Snake.java:12: '{' expected
public class Snake extends JApplet, extends Applet implements Runnable, MouseLis
tener
^
Snake.java:957: '}' expected
^
2 errors

Was ich eigentlich will, ist das wenn mann 2 mal klickt, das die variable end auf 0 gestellt wird., damit das Spiel wieder beginnt!

vielen Dank für eure Geduld und euer Posten!
 

Spin

Top Contributor
Ähm , dass hast du sicher nicht selbst programmiert?

Schonmal nen java-prog gesehen , wo man zweimal ableiten kann?

Java:
public class Snake extends JApplet, extends Applet implements Runnable, MouseListener

Was wird das denn?
Entweder oder, mein Freund ^^.

Java:
public class Snake extends JApplet implements Runnable, MouseListener

:autsch:
 

eRaaaa

Top Contributor
desweiterne wäre jetzt ganz interessant was du eig. willst :) also ich blicks noch nicht ganz. du musst wissen, welcher komponente du dne listener registrieren möchtest.
Was ich eigentlich will, ist das wenn mann 2 mal klickt
also das ist quasi die frage: wenn man 2 mal klickt <-- WO klickt? die antwort auf die frage, ruft addMouseListener auf (siehe unten)

in deinem code, hast du nun den mouselistener an den button gehängt. bzw, du hast einfach spins beispiel kopiert :) das war natürlich nur ein beispiel, auch die methode vom listener sowieso das mit dem label :)

das .addMouseListener(this); muss an deine komponente, wo auf mouse-events gehorcht werden soll.. und in
Java:
 public void mousePressed(MouseEvent e) {
        l.setText("Schaltfläche  gedrückt"); //<-- war ein beispiel
    }
musst du dann das machen, was du machen willst :)

da du ja probleme mit den englischen beispielen hattest, hier nochmal was zum NACHLESEN - Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 16.5 Es tut sich was – Ereignisse beim AWT

irgendwie drehen wir uns im kreis, hab ich das gefühl :>
 
Zuletzt bearbeitet:

Tonxxx

Bekanntes Mitglied
Also, das programm hab ich selber geschrieben, darum auch so katastrophal!!!:)

also so einen Java Prog hab ich natürlich noch nie gesehen, doch da ich ja Applet und JApplet brauche, habe ich gehofft, das man dass tun kann!

was soll ich jetzt machen, da ich ja beide brauche?

Also dass es nur ein beispiel war, war mir klar, doch da es immer schön etwas ausgegeben hat, dachte ich ich übernehme es gleich, dann seh ich auch, wo ich dann was reinschreibe!

Also wenn man irgendwo in meinem Applet einen Doppelklick macht, dann soll es die variable end auf 0 stellen!

doch damit ich dass alles mit den methoden einrichten(ausprobieren, lernen:rtfm:) kann, muss ich aber zuerst dass mit dem extends der beiden Klassen hinkriegen, da sonst mein compiler eine Fehlermeldung ausgibt, und ich gar nicht sehen kann was das Applet dann macht!

Also könnt ihr mir bitte sagen, wie ich dieses Problem löse?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben