マウスを左クリックしてオブジェクトを作成し、右クリックしてオブジェクトを1つずつ削除します。以前の質問を見てオブジェクトの追加、保存、削除に関する以前の問題を解決できましたが、ユーザーがクリックした場所にオブジェクトを正確に表示し、正しい座標で各オブジェクトを表示するソリューションを見つけることができませんでした。現在、最初のオブジェクトは(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