0
私のサイド・スクローラーでは、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);
}
}
}
は基本的に私は、私はこれらの3つのファイルをロードし、背景と呼ばれる画像の配列を作成し、ネクストステージ(と呼ばれる方法)ことを作ることができる方法を知りたいloads background[stage] and if stage > 2 stage = 0
ありがとうございます!私はちょっとキンクしていましたが、nextStageを静的メソッドにしてプレイヤークラスの内側からアクセスできるようにしたので修正しました。 –
問題には関係ありませんが、ゲームオブジェクトを格納するメンバ変数をプレーヤに与えることを考えてください(コンストラクタに渡してください)。一度に複数の段階を経ることはないでしょうから、この場合はそれほど重要ではありませんが、一般的には、「可視性を高めるためには静的にする」という練習で問題が発生します(例:ifプレイヤーにシールド変数を与え、敵がそれにアクセスできるように静的にした後、2人のゲームにした場合、2人のプレイヤーがそれぞれ自分のものではなく同じシールドを共有していることがわかります) – Ben