重複の可能性:
インデックス付き配列に対するチェック
マウスが押されるたびに、mouseX と mouseY に新しいパーティクルを描画し、その位置を配列に格納して、画面の下部に到達したときに停止するように指示されるまで更新できるようにします。私がやりたいことは、現在の位置を既に「作成された」粒子の位置と照合し、同じ座標を持っている場合はすぐに停止させて、スタック効果を与えることです。誰かが私を助けてくれますか?
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;
String Build = "1.1";
public void init(GameContainer container, StateBasedGame game) throws SlickException{
}
public void render(GameContainer container, StateBasedGame game, Graphics g) throws SlickException {
for (int index = 0; index < point.length; index++) {
Point p = point[index];
if (p != null) {
if (p.y >= 598) {
m.drawParticle(point[index].x,(point[index].y));
} else {
m.drawParticle(p.x, p.y);
p.y++;
}
}
}
g.drawString("Particle Test", 680, 0);
g.drawString("Build: " + Build, 680, 15);
g.drawString("Pixels: " + num, 10, 25);
}
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] = new Point(pressedX, pressedY);
}
public int getID() {
return ID;
}
}