A
Adi43
Gast
also mich hab folgendes problem:
möchte moorhuhn programieren und bin jz mittlerweil soweit, dass sich das moorhuhn bildchen bewegt und sowas und dass ich wenn ich klicke das moorhuhn verschwindet! Nun wollte ich genau das ändern, also das man das bildchen treffen muss damit es verschwindet. die koordinaten des mouseklicky bekomme ich ja mit xpos=e.getX();
und ypos=e.getY(); ! wenn ich die jetzt aber in einer Bedingung gleichsetze also xpos=die koordinate des bildes, muss man ja genau den punkt treffen. Nun meine frage wie schaffe ich es das der ganz bereich als gültig gilt ? dazu als info das bild ist 30 hoch und 30 breit ! hoffe das ist plausibel erklärt
hier mein programm:
Außerdem funktioniert es noch nicht, dass das label anzeige seine ausgabe ändert wenn die maus geklickt wird. wenn jemandem dazu was einfällt auch bitte melden
möchte moorhuhn programieren und bin jz mittlerweil soweit, dass sich das moorhuhn bildchen bewegt und sowas und dass ich wenn ich klicke das moorhuhn verschwindet! Nun wollte ich genau das ändern, also das man das bildchen treffen muss damit es verschwindet. die koordinaten des mouseklicky bekomme ich ja mit xpos=e.getX();
und ypos=e.getY(); ! wenn ich die jetzt aber in einer Bedingung gleichsetze also xpos=die koordinate des bildes, muss man ja genau den punkt treffen. Nun meine frage wie schaffe ich es das der ganz bereich als gültig gilt ? dazu als info das bild ist 30 hoch und 30 breit ! hoffe das ist plausibel erklärt
hier mein programm:
Code:
import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Event;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Random;
import javax.swing.BorderFactory;
import javax.swing.Timer;
import javax.swing.border.Border;
public class moorhuhn extends Applet implements MouseListener
{
public int Y=47,X=294,zeit=60,punkte=0,xpos,ypos;
Timer sek,sek1;
public Label uhr,anzeige;
Button starte,stoppe;
Image bild1,bild2,dbImage;
Graphics dbg;
boolean MouseClicked;
public void init ()
{
setLayout(null);
setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));
final Label uhr = new Label(""+zeit);
uhr.setBounds(900,50,40,25);
add(uhr);
Label anzeige = new Label(""+punkte);
anzeige.setBounds(900,80,40,25);
add(anzeige);
sek = new Timer(1000,new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
zeit=zeit-1;
uhr.setText(""+zeit);
if(zeit<=0)
{
uhr.setText("ENDE");
sek1.stop();
X=1000000;
Y=1000000;
repaint();
}
}
});
sek.start();
sek1=new Timer(2000,new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
Random r =new Random();
X=Math.abs(r.nextInt()%995);
Y=Math.abs(r.nextInt()%670);
repaint();
}
});
sek1.start();
bild2=getImage(getCodeBase(),"hintergrund.jpg");
bild1=getImage(getCodeBase(),"moorhuhn.gif");
}
public void paint(Graphics g)
{
g.drawImage(bild2,0,0,1050,700,this);
g.drawImage(bild1, X,Y,30,30,this);
addMouseListener(this);
}
public void update (Graphics h)
{
dbImage = createImage (this.getSize().width, this.getSize().height);
dbg = dbImage.getGraphics ();
dbg.setColor (getBackground ());
dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);
dbg.setColor (getForeground());
paint (dbg);
h.drawImage (dbImage, 0, 0, this);
}
public void mouseClicked(MouseEvent e)
{
xpos=e.getX();
ypos=e.getY();
if (xpos==X && ypos==Y)
{
sek1.stop();
Random r =new Random();
X=Math.abs(r.nextInt()%995);
Y=Math.abs(r.nextInt()%670);
sek1.start();
punkte=punkte+5;
anzeige.setText(punkte+"");
repaint();
}
}
public void mouseEntered(MouseEvent arg0)
{
}
public void mouseExited(MouseEvent arg0)
{
}
public void mousePressed(MouseEvent arg0)
{
}
public void mouseReleased(MouseEvent arg0)
{
}
}
Außerdem funktioniert es noch nicht, dass das label anzeige seine ausgabe ändert wenn die maus geklickt wird. wenn jemandem dazu was einfällt auch bitte melden