Ragazzi, aiuto... stò facendo un misero giochino in java (tipo space invaders) ma mi sono fermato perchè non riesco a fare un metodo che permetta al missile di avanzare verso l'alto della finestra. Per semplificare vi metto tutto il codice:
Codice PHP:import java.awt.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
public class Astro3
{
public static void main(String[]args)
{
Frame1 frame = new Frame1();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
class Frame1 extends JFrame
{
public Frame1()
{
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension d = kit.getScreenSize();
larghezzaSchermo = d.width;
altezzaSchermo = d.height;
setResizable(false);
setSize(LARGHEZZA, ALTEZZA);
setLocation((larghezzaSchermo-LARGHEZZA)/2,(altezzaSchermo-ALTEZZA)/2);
Container contenitore = this.getContentPane();
Pannello1 pannello = new Pannello1();
pannello.setBackground(Color.BLACK);
contenitore.add(pannello);
}
private int larghezzaSchermo;
private int altezzaSchermo;
public static final int LARGHEZZA = 800;
public static final int ALTEZZA = 600;
}
class Pannello1 extends JPanel
{
public Pannello1()
{
Movimenti mov_nav = new Movimenti();
this.addKeyListener(mov_nav);
astronave = new Astronave();
xx = 400;
yy = 500;
navicella = astronave.getNavicella();
spari = new ArrayList();
}
public boolean isFocusable()
{
return true;
}
public void add(int x, int y)
{
xx = xx + x;
yy = yy + y;
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g2 = (Graphics2D)g;
g2.drawImage(navicella,xx,yy,null);
for(int i = 0; i < spari.size(); i++)
{
Missile m = (Missile)spari.get(i);
Image M = m.getMissile();
int xM = m.getMissileX();
int yM = m.getMissileY();
int vM = m.getMissileV();
g2.drawImage(M,xM,yM,null);
repaint();
}
repaint();
}
private class Movimenti implements KeyListener
{
public Movimenti()
{
avanzamento = 4;
}
public void keyPressed(KeyEvent event)
{
int keyCode = event.getKeyCode();
if (keyCode == KeyEvent.VK_LEFT)
{
add(-avanzamento,0);
}
else if (keyCode == KeyEvent.VK_RIGHT)
{
add(avanzamento,0);
}
else if (keyCode == KeyEvent.VK_Z)
{
Missile missile = new Missile(xx,yy);
spari.add(missile);
}
}
public void keyReleased(KeyEvent event)
{
}
public void keyTyped(KeyEvent event)
{
}
private int avanzamento;
}
private Astronave astronave;
private Image navicella;
private Graphics2D g2;
private int xx;
private int yy;
private ArrayList spari;
}
class Astronave
{
public Astronave()
{
Toolkit kit = Toolkit.getDefaultToolkit();
navicella = kit.getImage("navicella.gif");
}
public Image getNavicella()
{
return navicella;
}
private Image navicella;
}
class Missile
{
public Missile(int ax, int ay)
{
coordinateMissileX = ax;
coordinateMissileY = ay;
Toolkit kit = Toolkit.getDefaultToolkit();
missile = kit.getImage("missile1.gif");
velocitàMissile = 2;
}
public Image getMissile()
{
return missile;
}
public int getMissileX()
{
return coordinateMissileX;
}
public int getMissileY()
{
return coordinateMissileY;
}
public int getMissileV()
{
return velocitàMissile;
}
private Image missile;
private int coordinateMissileX;
private int coordinateMissileY;
private int velocitàMissile;
}


Rispondi quotando