es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo animar con java awt

Estoy tratando de hacer una animación de un óvalo rojo que se moverá hacia la derecha de la pantalla. Pero solo dibuja el óvalo. No sé qué estoy haciendo mal y literalmente no puedo encontrar nada sobre cómo hacer esto. Cualquier ayuda sería genial, gracias.

import java.awt.*;  

public class mainClass  
{    
    public mainClass()    
    {    

        Frame f = new Frame("Ejemplo de lienzo");   
        f.add(new MyCanvas());    

        f.setLayout(null);    
        f.setSize(400, 400);   
        f.setVisible(true);    
    }    

    public static void main(String args[])    
    {    
        new mainClass();
    }    
}    


class MyCanvas extends Canvas    
{    
    int x = 75;
    public MyCanvas() {    
        setBackground (Color.BLACK);    
        setSize(400, 400);    
    }    

    public void paint(Graphics g)    
    {     
        g.setColor(Color.red);    
        g.fillOval(x, 75, 150, 75);
    }
    public void update(Graphics g)    
    {     
        x++;
    }  
}     
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para hacer que el óvalo rojo se mueva hacia la derecha, se debe modificar el método update() en la clase MyCanvas para actualizar la coordenada x del óvalo y repintar el lienzo. Aquí te mostramos cómo hacerlo:

    class MyCanvas extends Canvas {
        int x = 75;
    
        public MyCanvas() {
            setBackground(Color.BLACK);
            setSize(400, 400);
        }
    
        public void paint(Graphics g) {
            g.setColor(Color.red);
            g.fillOval(x, 75, 150, 75);
        }
    
        public void update(Graphics g) {
            x++;
            repaint(); // repintar el lienzo para mostrar la posición actualizada del óvalo
        }
    }
    

    Al llamar a repaint() en el método update(), el lienzo se vuelve a dibujar con la posición actualizada del óvalo. Ahora, cada vez que se llama al método update() (lo cual ocurre automáticamente cuando el administrador de repintado decide que el lienzo debe actualizarse), el óvalo se mueve un píxel hacia la derecha.

Comments are closed.