Import Javax
Import Javax
*;
import java.awt.*;
import java.awt.geom.*;
@Override
super.paintComponent(g);
g2d.setColor(Color.RED);
g2d.setColor(Color.GRAY);
g2d.fill(new Polygon(new int[]{80, 130, 180}, new int[]{100, 50, 100}, 3)); // Hidung
g2d.setColor(Color.DARK_GRAY);
g2d.fill(new Polygon(new int[]{100, 80, 100}, new int[]{250, 300, 300}, 3)); // Sayap kiri
g2d.fill(new Polygon(new int[]{160, 180, 160}, new int[]{250, 300, 300}, 3)); // Sayap kanan
g2d.setColor(Color.CYAN);
g2d.fill(new Polygon(new int[]{100, 130, 160}, new int[]{250, 350, 250}, 3)); // Api
frame.setSize(300, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new GeometricRocket2D());
frame.setVisible(true);
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
public AnimatedRocket2D() {
timer.start();
@Override
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
// Menggambar awan
g2d.setColor(Color.WHITE);
// Menggambar roket
g2d.fill(new Polygon(new int[]{100, 150, 200}, new int[]{(int) rocketY, (int) rocketY - 60, (int)
rocketY}, 3)); // Hidung
g2d.fill(new Polygon(new int[]{110, 90, 110}, new int[]{(int) rocketY + 160, (int) rocketY + 220, (int)
rocketY + 220}, 3)); // Sayap kiri
g2d.fill(new Polygon(new int[]{190, 210, 190}, new int[]{(int) rocketY + 160, (int) rocketY + 220, (int)
rocketY + 220}, 3)); // Sayap kanan
g2d.fill(new Polygon(new int[]{110, 150, 190}, new int[]{(int) rocketY + 160, (int) rocketY + 280, (int)
rocketY + 160}, 3)); // Api
@Override
rocketY -= 5;
rocketY = getHeight(); // Mengulangi dari bawah jika sudah keluar dari layar
repaint();
SwingUtilities.invokeLater(new Runnable() {
@Override
frame.setSize(400, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new AnimatedRocket2D());
frame.setVisible(true);
}
});