0

だから私は一日中ボックスの位置を配列に保存することに取り組んできましたが、最終的に何かを思いついたと思いました(皆さんからの多くの助けを借りて)そしてそれはうまくいきません...誰かお願いします理由を教えて?

制御クラス:

import java.awt.Point;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.state.BasicGameState;
import org.newdawn.slick.state.StateBasedGame;

public class Control extends BasicGameState {
    public static final int ID = 1;

    public Methods m = new Methods();
    public Point[] point = new Point[(800 * 600)];

    int pressedX;
    int pressedY;
    int num = 0;

    public void init(GameContainer container, StateBasedGame game) throws SlickException{
    }

    public void render(GameContainer container, StateBasedGame game, Graphics g) throws SlickException {
        m.drawParticle(pressedX, pressedY);
    }

    public void update(GameContainer container, StateBasedGame game, int delta) {
    }

    public void mousePressed(int button, int x, int y) {
        pressedX = x;
        pressedY = y;
        num = num + 1;
        point[num].x = pressedX;
        point[num].y = pressedY;
        }

    public int getID() {
        return ID;
    }


}

メソッド クラス:

    import org.newdawn.slick.Graphics;

public class Methods {

    public Graphics g = new Graphics();

    public int sizeX = 1;
    public int sizeY = 1;

    public void drawParticle(float x, float y){
        g.drawRect(x, y, sizeX, sizeY);
    }

}
4

1 に答える 1

0

ポイント配列のサイズを初期化しましたが、内容を初期化していません。

public void mousePressed(int button, int x, int y) {
    pressedX = x;
    pressedY = y;
    num++;
    point[num] = new Point(pressedX, pressedY);
}

また、あなたのrender方法では、グラフィックを再レンダリングする必要があると考えてください(私は間違っている可能性があります。以前にSlick2Dを使用したことがありません)...

のようなもので...

public void render(GameContainer container, StateBasedGame game, Graphics g) throws SlickException {
    for (Point p : point) {
        if (p != null) {
            m.drawParticle(p.x, p.y);
        }
    }
    m.drawParticle(pressedX, pressedY);
}

また、あなたが独自の を作成していることにも興味があります。Graphics特に、renderメソッドがあなたに渡す場合は、それをさらにチェックして、これが受け入れられることを確認することをお勧めします...

于 2012-10-08T04:04:20.313 に答える