Анимация в java качели - PullRequest
       1

Анимация в java качели

0 голосов
/ 04 апреля 2020

Я хочу создать анимацию, которая выглядит так, как показано по этой ссылке: Ссылка .

Точнее, я хочу, чтобы мои деревья вели себя как облако в ссылке. Я сделал анимацию с деревьями, но она не работает так, как я хочу. Ниже я разместил свой код. Подскажите пожалуйста, как его создать?

package project;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;

public class Trees extends JPanel implements ActionListener {
    Timer timer = new Timer(10, this);
    BufferedImage img1;
    BufferedImage img2;
    int x = 0, velX = 2;
    int y = 0, velY = 2;

    public Trees(BufferedImage[] images) {
        img1 = images[0];
        img2 = images[1];
    }

    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(img1, x, 100, this);
        g.drawImage(img2, 300, y, this);

        timer.start();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if(x < 0 || x > 450)
            velX = -velX;

        if(y < 0 || y > 450)
            velY = -velY;

        x = x + velX;
        y = y + velY;
        repaint();
    }

    public static void main(String[] args) throws IOException {
        String[] ids = {"mt1", "mt2"};
        BufferedImage[] images = new BufferedImage[ids.length];
        for(int j = 0; j < images.length; j++) {
            String path = "images\\" + ids[j] + ".png";
            images[j] = ImageIO.read(new File(path));
        }
        Trees test = new Trees(images);
        JFrame f = new JFrame();
        JPanel panel = new JPanel();
        panel.setBackground(Color.BLUE);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(test);
        f.setSize(600,600);
        f.setVisible(true);
    }   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...