Huhu,
ich habe in der Schule ein Projekt am laufen und komme leider nicht weiter.
Ich programmiere mit BlueJ-Applets ein Schere Stein Papier Spiel, bei dem man durch einen Mausklick auswählt, ob man Schere/Stein oder Papier wählt usw.
Ich was das grafische anbelangt fertig. D.h. ich kann jede benötigte Grafik anzeigen lassen, allerdings nicht bestimmen wann -> momentan wird jede angezeigt und am Ende durch ein weißes Bild "ausgeblendet".
Ich möchte wenn man in der Auswahl z.B auf die Schere klickt, dass dann das Bild von der Schere eingeblendet wird. Das kriege ich mittlerweile schon seit 2 Wochen nicht hin.
Hier sind die 2 verwendeten Klassen:
Spiel:
Kreis: (fürs anklicken)
Hier sind noch die Bilder, die zum Applet gehören (Pfad ist der package Ordner des Programms)
images.rar
Wie krieg ich das hin?
Danke im Vorraus für eure Hilfe
ich habe in der Schule ein Projekt am laufen und komme leider nicht weiter.
Ich programmiere mit BlueJ-Applets ein Schere Stein Papier Spiel, bei dem man durch einen Mausklick auswählt, ob man Schere/Stein oder Papier wählt usw.
Ich was das grafische anbelangt fertig. D.h. ich kann jede benötigte Grafik anzeigen lassen, allerdings nicht bestimmen wann -> momentan wird jede angezeigt und am Ende durch ein weißes Bild "ausgeblendet".
Ich möchte wenn man in der Auswahl z.B auf die Schere klickt, dass dann das Bild von der Schere eingeblendet wird. Das kriege ich mittlerweile schon seit 2 Wochen nicht hin.
Hier sind die 2 verwendeten Klassen:
Spiel:
Java:
import java.awt.*;import javax.swing.*;
import java.awt.event.*;
public class Spiel extends JApplet
{
// instance variables - replace the example below with your own
private int x;
private Kreis meinKreis;
Image hintergrund;
Image scherel;
Image blattl;
Image steinl;
Image scherer;
Image blattr;
Image steinr;
Image auswahl;
Image weiß;
public void init()
{
hintergrund = getImage(getDocumentBase(),
"http://www.java-forum.org/images/hintergrund.gif");
auswahl = getImage(getDocumentBase(),
"http://www.java-forum.org/images/auswahl.png");
weiß = getImage(getDocumentBase(),
"http://www.java-forum.org/images/weiß.png");
scherel = getImage(getDocumentBase(),
"http://www.java-forum.org/images/scherel.png");
steinl = getImage(getDocumentBase(),
"http://www.java-forum.org/images/steinl.png");
blattl = getImage(getDocumentBase(),
"http://www.java-forum.org/images/blattl.png");
scherer = getImage(getDocumentBase(),
"http://www.java-forum.org/images/scherer.png");
steinr = getImage(getDocumentBase(),
"http://www.java-forum.org/images/steinr.png");
blattr = getImage(getDocumentBase(),
"http://www.java-forum.org/images/blattr.png");
// Workaround für ...
JRootPane rootPane = this.getRootPane();
rootPane.putClientProperty(
"defeatSystemEventQueueCheck",true);
//Kreis erzeugen: Mitte (40|40), Radius 35
meinKreis = new Kreis(161, 426, 18);
addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
int mausX = e.getX();
int mausY = e.getY();
if (meinKreis.istdrin (mausX, mausY)) {
}
}
});
}
public void paint(Graphics g)
{
g.drawString(" ", 20, 20);
g.drawImage(hintergrund,0,0,500,500,this);
g.drawString(" ", 20, 20);
g.drawImage(auswahl,120,413,85,82,this);
g.drawString(" ", 20, 20);
g.drawImage(scherel,3,150,180,180,this);
g.drawString(" ", 20, 20);
g.drawImage(steinl,3,150,180,180,this);
g.drawString(" ", 20, 20);
g.drawImage(blattl,3,150,180,180,this);
g.drawString(" ", 20, 20);
g.drawImage(scherer,317,150,180,180,this);
g.drawString(" ", 20, 20);
g.drawImage(steinr,317,150,180,180,this);
g.drawString(" ", 20, 20);
g.drawImage(blattr,317,150,180,180,this);
g.drawString(" ", 20, 20); //links
g.drawImage(weiß,3,150,180,180,this);
g.drawString(" ", 20, 20); //rechts
g.drawImage(weiß,317,150,180,180,this);
}
}
Kreis: (fürs anklicken)
Java:
import java.awt.*;/** Klasse Kreis:
* Eine Fläche mit Farbe
*
* @author Spier
* @version Feb.2010
*/
public class Kreis
{
private int r;
private int x, y;
private Color farbe;
/** Konstruktor für Kreis
* @param x,y,r: Mitte, Radius
*/
public Kreis(int x, int y, int r)
{
this.x = x;
this.y = y;
this.r = r;
farbe = Color.red;
}
/** Diese Methode zeichnet die Kreisfläche.
* @param grafikObjekt: Objekt, mit dem auf
* die Appletfläche gezeichnet wird.
*/
public void zeichnen(Graphics grafikObjekt)
{
grafikObjekt.setColor(farbe);
grafikObjekt.fillOval(x-r, y-r, 2*r, 2*r);
}
/** Diese Methode wechselt die Farbe
* rot <--> blau und zeichnet neu.
*/
public void farbWechsel(Graphics gr)
{
if (farbe == Color.red)
farbe = Color.blue;
else
farbe = Color.red;
zeichnen(gr); // mit neuer Farbe zeichnen
}
/**
* Diese Methode prüft, ob der durch (u|v) beschriebene Punkt
* im Innern des Kreises liegt.
* @return true, falls Punkt im Innern
*/
public boolean istdrin(int u, int v)
{ // Anwendung des Satzes von Pythagoras:
return ((u-x)*(u-x) + (v-y)*(v-y) <= r*r);
}
}
Hier sind noch die Bilder, die zum Applet gehören (Pfad ist der package Ordner des Programms)
images.rar
Wie krieg ich das hin?
Danke im Vorraus für eure Hilfe
Zuletzt bearbeitet von einem Moderator: