Ecco tutto il Programma...


Questo è il main...

codice:
package javaapplication4;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.KeyListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.awt.event.MouseMotionAdapter;
import java.util.LinkedList;
import javax.swing.*;
import java.awt.Event.*;


public class Main extends Frame implements ActionListener, KeyListener, MouseListener, MouseMotionListener {
    public static int pos=50;
    public int tim=0;
    public int q=0;
    public int w=0;
    public int prec=0;
    
    Astro m1=new Astro(pos);
    
    
    
    public Main() {
     
        Panel comandi=new Panel();
       pos=50;
       
        setBackground(Color.BLUE);
        setLayout(new BorderLayout());
        setSize(500, 500);
        setLocation(500,500);
        add(m1,"Center");     
        ChiudiFinestra Cf = new ChiudiFinestra();
        Timer tempo = new Timer(3000,this);
        tempo.start();
        addWindowListener(Cf);
        addKeyListener(this);
        addMouseMotionListener(this);
        addMouseListener(this);
        setVisible(true);
       
    }
       
    public static void main(String[] args) {
        new Main();
        
    }
    public void keyPressed(KeyEvent e){
        int keycod=e.getKeyCode();
        if (keycod==KeyEvent.VK_UP){
            m1.spostasu();
            m1.ridisegna();
            }
        if (keycod==KeyEvent.VK_DOWN){
            m1.spostagiu();
            m1.ridisegna();
        }
        if (keycod==KeyEvent.VK_LEFT){          //Tastiera
            m1.spostasinistra();
            m1.ridisegna();
        }
        if (keycod==KeyEvent.VK_RIGHT){
            m1.spostadestra();
            m1.ridisegna();
        }
        if (keycod==KeyEvent.VK_SPACE){
           m1.spara();
           m1.ridisegna();
        }
    }
    public void keyReleased(KeyEvent e){}
    public void keyTyped(KeyEvent 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 mouseMoved(MouseEvent e){
     int x2;
        int y2;
        x2=e.getX();                      // Comandi x il mouse
        y2=e.getY();
        m1.passacordx(x2);
        m1.passacordy(y2);   
        
    }
    public void mouseDragged(MouseEvent e){}
    
    
    public void actionPerformed(ActionEvent e)
    {
        
            q=(int)((Math.random()*7)+1);
            if(q!=prec){
               
            m1.compari(q); 
            }
            else{
                q=(int)((Math.random()*7)+1);
                
                m1.compari(q);
            }
            prec=q;
            
                m1.ridisegna();
        
       
    }
    
}

E questa è l'altra classe...

codice:
package javaapplication4;
import java.awt.*;
import javax.swing.*;
import java.awt.Event.*;


public class Astro extends Canvas{
    Astro mv;
    int x;
    int y;
    int bers;
    int x1=30;
    int y1=30;
    int zoomstella=5;
    int vai=0;
    int colpito=0;
    int cartuccie=1;
    int volte=0;
    int xorso;
    int yorso;
    int xmir;
    int ymir;
    Image bv;
    Graphics of;
   
    
    public Astro(int p){
    x=p;
    y=p;
    x1=p-20;
    y1=p-20;
    }
    
    
        
        
   public void compari(int q){
       bers=q;
       if(bers==1){
           xorso=80;
           yorso=250;
           
       }
       if(bers==2){
           xorso=180;
           yorso=260;
           
       }
       if(bers==3){
           xorso=300;
           yorso=230;
           
       }
       if(bers==4){
           xorso=230;
           yorso=400;
           
       }
       if(bers==5){
           xorso=350;
           yorso=360;
           
       }
       if(bers==6){
           xorso=280;
           yorso=320;
           
       }
       if(bers==7){
           xorso=50;
           yorso=400;
           
       }
    
       cartuccie=1;
       colpito=0;
       
   }
   
   public void spara(){
       if(cartuccie==1){
       if((x+10 >= xorso)&(x+10 <= xorso+50)){
           if((y+10 >= yorso)&(y+10 <= yorso+45)){
               colpito=1;
               cartuccie=0;
               volte=volte+1;
           }
       }
       }
           
   }
   
   public void passacordx(int x2){
       xmir=x2;
       
   }                                       // Procedure che prendono coordinate dal main del MuoseMoved
   public void passacordy(int y2){
       ymir=y2;
   }
        
    
    public void spostadestra(){
        x=x+10;
        
    }
    public void spostasinistra(){
        x=x-10;
    }
    public void spostagiu(){
        y=y+10;
    }
    public void spostasu(){
        y=y-10;
    }
    public void ridisegna(){
        repaint();
    }
    public void paint(Graphics g)
    {
       
        int grandezza=20;
        Graphics2D g2=(Graphics2D) g;
        Dimension dim_buffer = getSize();
        //bv= createImage(dim_buffer.width, dim_buffer.height);
        bv= createImage(500,500);
        of=bv.getGraphics();
        Graphics2D off=(Graphics2D) of;
        off.setStroke(new BasicStroke(2));
        Font fo=new Font("Arial", Font.BOLD,15);
        off.setPaint(new GradientPaint(0,0,Color.BLACK,500,500,Color.MAGENTA));
        //ImageIcon ico=new ImageIcon ("spazio1.jpg");
        //Image astronave = ico.getImage();
        //off.drawImage(astronave,0,0,500,500,this);
        //Button b1=new Button("Chiudi");
        off.setFont(fo);
        off.drawString("Hai colpito pippo "+ volte+" volte!!!",5,450);
        
        if(colpito==0){
        off.setColor(Color.RED);
        }
        else{
            off.setColor(Color.GREEN);
            
        }
        off.fillRect(xorso, yorso, 50, 45);
        
        
        off.setColor(Color.YELLOW);
        off.fillRect(0, 100, 500, 10);
        //off.drawOval(x, y, 20,20);
        off.drawLine(xmir, ymir-10, xmir, ymir+10);    // Mirino da fare muovere con il muose
        off.drawLine(xmir-10, ymir, xmir+10, ymir);
        
        
        g2.drawImage(bv,0,0,this);
        off.dispose();
    }
    
    /** Creates a new instance of Astro */
    public Astro() {
    }
    
    public void update(Graphics g){
        paint(g);
        
        
    }
    
}

Questo è tutto il programma... spero che qualcuno mi possa dare una mano..


Grazie