[英]Drawing multiple pixels/rectangles
我正在尝试制作Java沙盘游戏,无法超越。 我已经制定了在mouseX和mouseY处绘制一个矩形的方法,并且已经对其进行设置,以便它更新每一帧,以便它始终跟随鼠标。
我所假设的是,我将使用数组创建每个矩形,然后从那里使用预定义的算法来浮动到地面上,我对此非常满意,我只是不知道如何“钩住我的方法”到一个数组。
这是我用来绘制矩形的方法(在它自己的名为Methods的类中)
import org.newdawn.slick.Graphics;
public class Methods {
public Graphics g = new Graphics();
public int sizeX = 4;
public int sizeY = 4;
public void drawParticle(float x, float y){
g.drawRect(x, y, sizeX, sizeY);
}
}
这是我的主班
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();
int mouseX;
int mouseY;
public void init(GameContainer container, StateBasedGame game) throws SlickException{
}
public void render(GameContainer container, StateBasedGame game, Graphics g) throws SlickException {
m.drawParticle(mouseX, mouseY);
}
public void update(GameContainer container, StateBasedGame game, int delta) {
}
public void mouseReleased(int button, int x, int y){
mouseX = 0;
mouseY = 0;
}
public void mouseDragged(int oldx, int oldy, int newx, int newy) {
mouseX = newx;
mouseY = newy;
}
public int getID() {
return ID;
}
}
但是当我单击鼠标时,只有一个矩形跟随鼠标,而不是在鼠标处创建许多矩形:L
公共变量:
Rectangle boxes[] = new Rectangle[maxnum];
int boxnum = 0;
鼠标移动时:
boxes[boxnum] = new Rectangle[e.getX(), e.getY(), sizeX, sizeY);
boxnum = boxnum + 1;
绘制粒子时:
counter = 0;
do
{
g.drawRect(boxes[counter].x, boxes[counter].y, sizeX, sizeY);
counter = counter + 1;
} while (counter < maxnum);
其中maxnum是您将拥有的最大盒子数。 这样,您可以在数组中存储多个矩形,并在更新屏幕时遍历数组并绘制它们。 希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.