Keresés

Új hozzászólás Aktív témák

  • Fenyo12

    tag

    Sziasztok!

    Alap Java programozásban kérnék segítséget. (most tanulom)
    Ez volt az alap, amiből indultam. (a SunAndCloud)
    Az alapképernyőt megnövetlem és még egy képet betettem a nap mellé, ami előtűnik a felhő mögül.
    A beszúrt objektumot meg szeretném forgatni a középpontja körül úgy, hogy a nap ne mozduljon meg.
    Egy FOR ciklussal próbáltam, de szerintem eleve szintaktikai bajai is vannak.
    Tudna valaki ebben segíteni?
    A forgatást akkor kéne elkezdeni, amikor az 'alpha' változóm elérte a nullát, mert ez jelzi, hogy az áttűnés befejeződött.
    Eddig működik jól, innen kéne valahogy beletenni a forgatást:

    package com.zetcode;
    import java.awt.AlphaComposite;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.Image;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.image.BufferedImage;
    import javax.swing.ImageIcon;
    import javax.swing.JPanel;
    import javax.swing.Timer;
    class Surface extends JPanel implements ActionListener {

    private Image sun;
    private Image cloud;
    private Image bee;
    private Timer timer;
    private float alpha;

    public Surface() {

    loadImages();
    initTimer();
    }

    private void loadImages() {

    sun = new ImageIcon("sun.png").getImage();
    cloud = new ImageIcon("cloud2.png").getImage();
    bee = new ImageIcon("bee_3m.png").getImage();

    }

    private void initTimer() {

    timer = new Timer(300, this);
    timer.start();
    alpha = 1f;
    }
    private void doDrawing(Graphics g) {

    Graphics2D g2d = (Graphics2D) g;
    BufferedImage buffImg = new BufferedImage(640, 480,
    BufferedImage.TYPE_INT_ARGB);
    Graphics2D gbi = buffImg.createGraphics();
    AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha);
    gbi.drawImage(sun, 40, 30, null);
    gbi.drawImage(bee, 350, 180, null);
    gbi.setComposite(ac);
    gbi.drawImage(cloud, 25, 50, 576, 301, this);
    g2d.drawImage(buffImg, 20, 20, null);


    }
    @Override
    public void paintComponent(Graphics g) {
    super.paintComponent(g);
    doDrawing(g);
    }
    @Override
    public void actionPerformed(ActionEvent e) {

    alpha -= 0.05;

    if (alpha <= 0) {

    alpha = 0;
    timer.stop();
    System.out.println("Jelenet vége.");
    }

    repaint();

    }
    }

Új hozzászólás Aktív témák