我想用鼠標左鍵單擊來創建對象,並通過右鍵單擊它們。我可以通過查看舊的問題來解決我以前關於添加,存儲和刪除對象的問題,但我希望對象恰好出現在用戶點擊的位置,而我找不到用正確座標顯示每個對象的解決方案。目前,第一個對象顯示在(0,0),我甚至無法看到其餘的對象,但是我可以從控制檯看到對象已成功創建。這裏是我的代碼:處理3 - 顯示ArrayList中的對象
ArrayList dots;
void setup() {
size(500, 500);
background(255);
dots = new ArrayList();
colorMode(HSB);
strokeWeight(2);
}
void mousePressed() {
if(mouseButton==LEFT) {
dots.add(new Dot(mouseX, mouseY));
Dot temp1 = (Dot)dots.get(dots.size()-1);
temp1.create(dotX, dotY);
}
if(mouseButton==RIGHT && dots.size()>0) {
dots.remove(dots.size()-1);
}
}
void draw() {
background(255);
for (int i = 0; i < dots.size(); i++) {
Dot temp2 = (Dot)dots.get(i);
temp2.display(coord[0], coord[1]);
}
println("Object count: " + dots.size());
}
int dotX;
int dotY;
int[] coord = {dotX, dotY};
class Dot{
int id;
Dot(int dotX, int dotY) {
id = dots.size();
dotX = mouseX;
dotY = mouseY;
}
int[] create(int dotX, int dotY) {
int[] coord = {dotX, dotY};
display(dotX, dotY);
return coord;
}
void display(int dotX, int dotY) {
float c1 = map(dotX, 0, width, 0, 255);
noStroke();
fill(c1, 255, 255);
ellipse(dotX, dotY, 20, 20);
}
}
我做創建()返回一個數組,否則好像我不能引用到每個對象的座標同時顯示,但我認爲主要的問題是什麼。建議?
謝謝!也感謝您指出我在開始時犯的愚蠢錯誤。 – ezekeel