vamos a tener 3 clases y el sprite del avion, yo cree un pakete llamado aviones pero le pueden poner como quieran aqui imagen de la arquitectura:
la 1 clasela llmaremos avion en esta clase colocaremos el siguiente codigo:
import java.awt.Image;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
public class avion {
private int dx;
private int dy;
private int x;
private int y;
private Image image;
public avion() {
initCraft();
}
private void initCraft() {
Image ii = new ImageIcon(getClass().getResource("avion.png")).getImage();
// ImageIcon ii = new ImageIcon("craft.png");
image = ii;
x = 40;
y = 60;
}
public void move() {
x += dx;
y += dy;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public Image getImage() {
return image;
}
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
System.out.println(""+key);
if (key == KeyEvent.VK_LEFT) {
dx = -1;
}
if (key == KeyEvent.VK_RIGHT) {
dx = 1;
}
if (key == KeyEvent.VK_UP) {
dy = -1;
}
if (key == KeyEvent.VK_DOWN) {
dy = 1;
}
}
public void keyReleased(KeyEvent e) {
System.out.println("");
int key = e.getKeyCode();
if (key == KeyEvent.VK_LEFT) {
dx = 0;
}
if (key == KeyEvent.VK_RIGHT) {
dx = 0;
}
if (key == KeyEvent.VK_UP) {
dy = 0;
}
if (key == KeyEvent.VK_DOWN) {
dy = 0;
}
}
}
luego creamos una nueva clase y la llmaremos mueveimagen pondremos el siguiente codigo:
import java.awt.EventQueue;
import javax.swing.JFrame;
public class mueveimagen extends JFrame {
public mueveimagen() {
super("http://javayotros.blogspot.com/");
initUI();
}
private void initUI() {
add(new tablero());
setSize(400, 300);
setResizable(false);
setTitle("http://javayotros.blogspot.com/");
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
mueveimagen ex = new mueveimagen();
ex.setVisible(true);
}
});
}
}
agremos otra clase llamada tablero quese va a encargar de dibujar todo:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JPanel;
import javax.swing.Timer;
public class tablero extends JPanel implements ActionListener {
private Timer timer;
private avion craft;
private final int DELAY = 10;
public tablero() {
initBoard();
}
private void initBoard() {
addKeyListener(new TAdapter());
setFocusable(true);
setBackground(Color.BLACK);
craft = new avion();
timer = new Timer(DELAY, this);
timer.start();
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
doDrawing(g);
Toolkit.getDefaultToolkit().sync();
}
private void doDrawing(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(craft.getImage(), craft.getX(), craft.getY(), this);
}
@Override
public void actionPerformed(ActionEvent e) {
craft.move();
repaint();
}
private class TAdapter extends KeyAdapter {
@Override
public void keyReleased(KeyEvent e) {
craft.keyReleased(e);
}
@Override
public void keyPressed(KeyEvent e) {
craft.keyPressed(e);
}
}
}
finalmente el sprite de la imagen del avion
lo descargan y lo colocan al lado para que funcione
el mueve hacia los lados obviamente faltan los misiles y los asteroides o extraterrestres eso lo realizare en la segunda parte en otra entrada :)
0 Comments