Java 我需要一系列的背景?

Java 我需要一系列的背景?,java,swing,side-scroller,Java,Swing,Side Scroller,在我的侧滚动,我想有3个背景,不断循环。无论何时通过一个阶段,它都会调用函数nextStage(),将您发送到下一个后台。在课堂上: package com.erikbalen.game.rpg; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.Key

在我的侧滚动,我想有3个背景,不断循环。无论何时通过一个阶段,它都会调用函数nextStage(),将您发送到下一个后台。在课堂上:

package com.erikbalen.game.rpg;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.*;
public class World extends JPanel implements ActionListener{

/**
 * 
 */
private static final long serialVersionUID = 2834816426699432121L;
Player p1;
Image background;
Timer time;

public World() {
    p1 = new Dps();
    addKeyListener(new AL());
    setFocusable(true);
    ImageIcon icon = new ImageIcon("C:\\Program Files (x86)\\EriksRPG\\Images\\Backgrounds\\background.png");
    background = icon.getImage();
    time = new Timer(5, this);
    time.start();
}

public void actionPerformed(ActionEvent e) {
    p1.move();
    repaint();
}

public void paint(Graphics g) {
    super.paint(g);
    Graphics g2d = (Graphics2D) g;

    g2d.drawImage(background, 0, 0, null);
    g2d.drawImage(p1.getImage(), p1.getX(), p1.getY(), null);

}

private class AL extends KeyAdapter {
    public void keyReleased(KeyEvent e) {
        p1.keyReleased(e);
    }

    public void keyPressed(KeyEvent e) {
        p1.keyPressed(e);
    }       
    }       
}
基本上,我想知道如何创建一个名为backgrounds的图像数组,加载这三个文件,并创建一个名为nextStage()的方法,该方法
加载background[stage],如果stage>2 stage=0
一个可能的解决方案:

将“背景”设为3个元素的数组

Image[] background = new Image[3];
将三个背景图像一次加载到背景[0]、背景[1]和背景[2]中

创建一个新的私有变量,可能称为stage,并在前进时递增:

private int stage = 0;

public void nextStage() { stage++; }
最后,在paint()中,根据stage的值绘制所需的背景:

g2d.drawImage(background[stage % 3], 0, 0, null);

谢谢!我遇到了一个小扭结,但我把它固定了,因为我在下一阶段做了一个静态的方法,这样我就可以从玩家类内部访问它。与问题无关,但是你可以考虑给玩家一个成员变量来存储游戏对象(在构造函数中传递它)。您可能不会同时进行多个阶段,因此在这种情况下这并不重要,但一般来说,“使其保持静态以增加其可见性”的做法可能会给您带来问题(例如:如果你给玩家一个盾牌变量,并将其设置为静态,以便敌人可以访问它,然后将其设置为两人游戏,你会发现两个玩家共享同一个盾牌,而不是各自拥有自己的盾牌!)