Java 停止图像移动
好的,所以每当我点击鼠标时,我的图像都会沿着y轴向下移动,我唯一的问题是我不知道如何让它在点击屏幕底部时停止,有人能帮忙吗Java 停止图像移动,java,image,slick2d,particles,Java,Image,Slick2d,Particles,好的,所以每当我点击鼠标时,我的图像都会沿着y轴向下移动,我唯一的问题是我不知道如何让它在点击屏幕底部时停止,有人能帮忙吗 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 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 (Point p : point) {
if (p != null) {
m.drawParticle(p.x, p.y += 1);
}
}
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;
}
}
我可以想象,在渲染粒子之前,你会想在某个地方检查粒子的x/y位置,并在粒子超出边界时将其从阵列中删除
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) {
p.y++;
if (p.y > height) { // You'll need to define height...
point[index] = null; // Or do something else with it??
} else {
m.drawParticle(p.x, p.y);
}
}
}
g.drawString("Particle Test", 680, 0);
g.drawString("Build: " + Build, 680, 15);
g.drawString("Pixels: " + num, 10, 25);
}
谢谢,现在你知道我如何让它停止向下移动了吗?在第二个例子中,如果
p.y
等于或大于可用高度,它的y位置就不应该再更新了……显然,如果你从数组中删除它(将数组位置设为null),它不仅不会再移动,而且不会被绘制;)但我能让它静止不动吗?是的。一旦p.y>=可用高度,第二个示例将停止更新y位置。。。
if (p != null) {
if (p.y >= height) { // You'll need to define height...
// Do something here
} else {
p.y++;
m.drawParticle(p.x, p.y);
}
}