-1

您好,我正在尝试制作视频游戏,因此需要进行缩放,但不知道如何搜索或使用 java 的什么库来执行此操作。这是我想要的图片:

在此处输入图像描述

所以我的窗口看起来像这样:

在此处输入图像描述

我想要的是当我移动 leftKey 或 RightKey 时,wnidow 会移动到另一个位置,如下所示:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

好吧,我发布了一个图像描述,因为我不知道使用什么样的背景,我需要知道我是否需要特殊的背景或图形组件?

好吧,我希望能理解我的想法

谢谢你的回答!

我试试这个:

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.HeadlessException;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

/**
 *
 * @author usuario
 */
public class JavaApplication10 extends JFrame {

         int offsetx, offsety; // the upper left corner of your viewport
         Image imagenInterna ;

    public JavaApplication10() throws HeadlessException {

        imagenInterna = new ImageIcon(getClass().getResource("/N/Firefox_wallpaper.png")).getImage();
        setSize(300, 300);
        setLocationRelativeTo(null);
        setVisible(true);
        fr();
    }






    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {

            JavaApplication10 sd=new JavaApplication10();
        }
    }); 
    }



    public void drawBackground(Graphics g) {
    Dimension size = getSize();
    g.drawImage(imagenInterna, 10, 10, size.width, size.height, 
                offsetx, offsety, offsetx + size.width, offsety + size.height, null);
}

    private void fr() {


        JLabel ff=new JLabel(new ImageIcon(getClass().getResource("/N/Firefox_wallpaper.png")));
        ff.setBounds(0, 0, ff.getIcon().getIconWidth(), ff.getIcon().getIconHeight());
        add(ff);
    }
}
4

1 回答 1

2

在绘制背景的组件中,使用允许指定视口的drawImage方法,即您要绘制的完整图像的子区域(在您的问题中称为“窗口”):

int offsetx, offsety; // the upper left corner of your viewport

public void drawBackground(Graphics g) {
    Dimension size = getSize();
    g.drawImage(fullBackgroundImage, 0, 0, size.width, size.height, 
                offsetx, offsety, offsetx + size.width, offsety + size.height, null);
}
于 2013-08-28T16:17:58.147 回答