Planetalia - Cursos

Cursos y Másters

Inicio    Profesores    Aulas    Testimonios    Cursos    Masters    Tecnologías    Cursos Gratuitos    Galería de Proyectos    Solicitar Información   

Curso - Programación de un Space Invaders en Java

  Página Anterior - Cierre debido Página Actual - 03 - Primeros pegotes sobre la ventana   Página Siguiente - Primeras imágenes
  Índice de cursos Java gratuitos  

Primeros pegotes sobre la ventana

(c) Alexander Hristov

El siguiente paso que necesitamos de forma imprescindible es poder pintar cosas encima de la ventana.
Esto nos genera un problema. Para pintar, según lo que conocemos hasta ahora, necesitamos sobreescribir el método paint de "alguien" - de alguna ventana, o de algún panel.. Sin embargo, ni la clase Invaders es una ventana ni tampoco podríamos hacer nada si lo fuese, ya que la ventana que se muestra es otra que creamos dentro del constructor de Invaders.

Una posible solución es hacer descender nuestra clase Invaders de la clase Canvas - la clase ancestro por excelencia para los componentes visuales. Siendo un Canvas, heredamos el método paint() que podemos sobreescribir. ¿Y cómo hacer la asociación entre nuestra clase y la ventana que estamos manejando? Sencillo : siendo Canvas un descendiente de Component , podemos añadirnos al panel de la ventana como un componente más:


1     package version03;
2     /**
3      * Curso B?sico de desarrollo de Juegos en Java - Invaders
4      * 
5      * (c) 2004 Planetalia S.L. - Todos los derechos reservados. Prohibida su reproducci?n
6      * 
7      * http://www.planetalia.com
8      * 
9      */
10    
11    
12    import java.awt.Canvas;
13    import java.awt.Color;
14    import java.awt.Dimension;
15    import java.awt.Graphics;
16    import java.awt.event.WindowAdapter;
17    import java.awt.event.WindowEvent;
18    
19    import javax.swing.JFrame;
20    import javax.swing.JPanel;
21    
22    public class Invaders extends Canvas {
23      public static final int WIDTH = 800;
24      public static final int HEIGHT = 600;
25      
26      public Invaders() {
27        JFrame ventana = new JFrame("Invaders");
28 JPanel panel = (JPanel)ventana.getContentPane(); 29 setBounds(0,0,WIDTH,HEIGHT); 30 panel.setPreferredSize(new Dimension(WIDTH,HEIGHT)); 31 panel.setLayout(null); 32 panel.add(this);
33 ventana.setBounds(0,0,WIDTH,HEIGHT); 34 ventana.setVisible(true); 35 ventana.addWindowListener( new WindowAdapter() { 36 public void windowClosing(WindowEvent e) { 37 System.exit(0); 38 } 39 }); 40 } 41
42 public void paint(Graphics g) { 43 g.setColor(Color.red); 44 g.fillOval( WIDTH/2-10, HEIGHT/2-10,20,20); 45 } 46
47 public static void main(String[] args) { 48 Invaders inv = new Invaders(); 49 } 50 } 51


¿Quieres ser notificado cuando salan nuevos tutoriales y cursos?. Pulsa aquí


Lista de archivos Java del programa en este paso

Invaders.java      

Lista de recursos

bicho.gif bicho0.gif bicho1.gif bicho2.gif
bombD.gif bombDL.gif bombDR.gif bombL.gif
bombR.gif bombU.gif bombUL.gif bombUR.gif
disparo.gif disparo0.gif disparo1.gif disparo2.gif
explosion.wav misil.gif missile.wav musica.wav
nave.gif oceano.gif photon.wav test.gif
Thumbs.db      

  Página Anterior - Cierre debido Página Actual - 03 - Primeros pegotes sobre la ventana   Página Siguiente - Primeras imágenes
  Índice de cursos Java gratuitos  

(c) 2004 Planetalia S.L. Todos los derechos reservados. Prohibida su reproducción