簡體   English   中英

如何顯示動畫GIF?

[英]How to show animated GIFs?

首先,我用《玩具熊的五夜后宮》的圖像和跳躍恐懼來制作一個迷你游戲。 我已經知道如何導入和繪制圖片(png等)。 我唯一不知道如何導入的是gif。

這是我的代碼:

import java.awt.*; 
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;

public class Minigame extends JPanel
{   
/**
 * 
 */
private static final long serialVersionUID = 1L;

GameEvents gameEvents = new GameEvents();
Timer gameTimer = new Timer(1, gameEvents);
int i = 0; 
int horizontalposition = 500;
int verticalposition = 500;

BufferedImage Picture;
BufferedImage Picture2;
BufferedImage Picture3;
BufferedImage Picture4;
BufferedImage Picture5;
BufferedImage Picture6;

//Don't forget to declare your variables!


Minigame()
{
    gameTimer.start();
    this.addKeyListener(gameEvents);

    try 
    {
        Picture = ImageIO.read(getClass().getResource("Child.gif"));
        Picture2 = ImageIO.read(getClass().getResource("Freddycake_Gif.gif"));
        Picture3 = ImageIO.read(getClass().getResource("Purple_man.png"));
        Picture4 = ImageIO.read(getClass().getResource("Cake_Child_Idle.png"));
        Picture5 = ImageIO.read(getClass().getResource("Cake_Child.gif"));
        //The format for this is Picture = ImageIO.read(getClass().getResource("NameOfFile.typeoffile"));
    }
    catch (IOException e)
    {
        System.out.println("Pictures failed to load");
    }
}

@Override
protected void paintComponent(Graphics g)
{
    g.setColor(Color.black);
    g.fillRect(0,0,this.getWidth(), this.getHeight());

    ///g.drawImage(Picture, horizontalposition, verticalposition, 100, 150, null);

    g.drawImage(Picture, 200, 10, 70, 100, null);
    g.drawImage(Picture, 200, 100, 70, 100, null);
    g.drawImage(Picture, 200, 200, 70, 100, null);
    g.drawImage(Picture, 200, 300, 70, 100, null);
    g.drawImage(Picture, 200, 400, 70, 100, null);
    g.drawImage(Picture, 200, 500, 70, 100, null);
    g.drawImage(Picture2, horizontalposition, verticalposition, 100, 150, null);
    g.drawImage(Picture3, 1100, 50, 100, 150, null);
    g.drawImage(Picture4, 900, 50, 100, 150, null);
    //g.drawImage(Picture5, 900, 50, 100, 150, null);
}

public class GameEvents implements ActionListener, KeyListener
{
    @Override
    public void actionPerformed(ActionEvent arg0) 
    {
        repaint();
    }

    @Override
    public void keyPressed(KeyEvent key) //stuff inside here happens when a key is pressed
    {
        if(key.getKeyChar()=='d')
        {
            horizontalposition=horizontalposition+50;
        }
        if(key.getKeyChar()=='s')
        {
            verticalposition=verticalposition+50;
        }
        if(key.getKeyChar()=='w')
        {
            verticalposition=verticalposition-50;
        }
        if(key.getKeyChar()=='a')
        {
            horizontalposition=horizontalposition-50;
        }
        if(horizontalposition<0)
        {
            horizontalposition=0;
        }
        System.out.println(key.getKeyChar());
        System.out.println('d');
    }

    @Override
    public void keyReleased(KeyEvent arg0) {

    }

    @Override
    public void keyTyped(KeyEvent arg0) {
    }

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

    JFrame f = new JFrame("Java Graphics Example Project");
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Minigame p = new Minigame();
    f.setSize(1500,700);
    f.add(p);
    f.setVisible(true);
    p.requestFocusInWindow();
    }

}

是的,我已經知道該怎么辦g.drawImage();

查找此答案: 顯示GIF動畫如果您不喜歡它,我將在此處輸入答復者的代碼。 但是,他們在那里進行了解釋,並進行了詳細介紹。 這是來自堆棧的代碼,我在給您鏈接時對其進行了說明

 public static void main(String[] args) throws MalformedURLException {

    URL url = new URL("<URL to your Animated GIF>");
    Icon icon = new ImageIcon(url);
    JLabel label = new JLabel(icon);

    JFrame f = new JFrame("Animation");
    f.getContentPane().add(label);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.pack();
    f.setLocationRelativeTo(null);
    f.setVisible(true);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM