Der user sollte mit der maus die fliege anklicken,danach sollten neue X,Y cordinate generiert werden und das Bild sollte am neuen platz erscheinen. Alles klappt ausser Das verschieben des bildes(denke ich). Und ja, das Score teil ist nochnicht eingebaut
Java:
package ch.shooter;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.io.IOException;
import java.net.URL;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class GamePanel extends JPanel implements Runnable{
JFrame frame;
long delta= 0;
long last= 0;
long fps= 0;
int randomX=0;
int randomY=0;
int randomX1=randomX+26;
int randomY1=randomY+20;
int kills=0;
Random generator = new Random();
private final Image background = getImage("http://img210.imageshack.us/img210/1575/hintergrung.jpg");
private final Image toKill = getImage("http://img824.imageshack.us/img824/2509/fliege.gif");
public int getX(){
return randomX;
}
public int getY(){
return randomY;
}
public int getX1(){
return randomX1;
}
public int getY1(){
return randomY1;
}
public boolean dead= false;
public static void main(String[]args){
new GamePanel(600,376);
}
private static final long serialVersionUID = 1L;
private Image getImage(String url) {
try {
return ImageIO.read(new URL(url));
} catch(IOException e) {
return null;
}
}
public GamePanel(int w, int h){
this.setPreferredSize(new Dimension(w,h));
frame = new JFrame("Shooter");
frame.setLocation(100,100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(this);
frame.pack();
frame.setVisible(true);
//Cursor
Cursor hourglassCursor = new Cursor(Cursor.CROSSHAIR_CURSOR);
setCursor(hourglassCursor);
doInit();
Thread th = new Thread(this);
th.start();
}
private void doInit(){
last = System.nanoTime();
}
private void computeDelta() {
delta = System.nanoTime() - last;
last = System.nanoTime();
fps = ((long)1e9)/delta;
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.red);
//g.drawString("FPS:"+ Long.toString(fps),20,10 );
g.drawImage(background,1,1,null);
g.drawImage(toKill, randomX, randomY,null);
g.drawString("Score: "+kills,90,10);
}
@Override
public void run(){
while(frame.isVisible()){
computeDelta();
try{
Thread.sleep(10);
}catch (InterruptedException e) {}
repaint();
if(dead==true){
newCords();
dead=false;
}
}
}
private void newCords(){
randomX = generator.nextInt(500) + 1;
randomY = generator.nextInt(350) + 1;
}
public void mouseClicked(MouseEvent e) {
if (e.getX()>= randomX || e.getX() <= randomX1){
if(e.getY()>= randomY || e.getY() <= randomY1){
dead=true;
}else{
}
}
}
}
Zuletzt bearbeitet von einem Moderator: