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