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

Rispondi quotando