브라우저에서 일부 이미지를 표시하려고하는데 이미지를 클릭하면 마우스 위치에서 눌려진 이미지가 표시되지만 배열의 첫 번째 요소를 누르면 아무 일도 일어나지 않았지만 두 번째 요소를 누르면 표시되지만 두 번째를 다시 누르면 두 번째 요소가 다시 표시됩니다. 배열의 가치에 문제가 있다는 사실을 단지 한 번만 변경하고 더 이상은 아닙니다. 다음은 내 코드입니다 :processing.js에서 다른 이미지 객체 만들기
ArrayList<Object> objects = new ArrayList();
String pic ;
PImage images [];
PImage image;
int x;
int y;
int pad = 10;
int bs = 70;
String val ="index.jpg images.jpg";
String[] list;
void setup() {
size(500, 500);
change(val);
}
void draw() {
background(150);
for (int i = 0; i < images.length; i++) {
x = pad + (bs+pad)*i;
y = pad;
image(images[i], x, y, bs, bs);
over();
}
for (Object o : objects) {
o.show();
}
}
void over() {
for (int i = 0; i < images.length; i++) {
if (mouseX >= x && mouseX <= x+width/x+bs*i &&
mouseY > y && mouseY <= pad+bs) {
fill(255);
println(images[i]);
image = images[i];
rect(x, y, bs, bs);
}
}
}
void mousePressed() {
for (int i = 0; i < images.length; i++) {
if (mouseX >= x && mouseX <= x+width/x+bs*i &&
mouseY > y && mouseY <= pad+bs) {
float xpos = mouseX;
float ypos = mouseY;
objects.add(new Object(xpos, ypos, image));
}
}
}
void mouseDragged() {
for (Object o : objects) {
o.moove();
}
}
/* ---------------------------------------------*/
void change(String val) {
list = split(val, " ");
images = new PImage[list.length];
for (int i = 0; i < list.length; i++) {
images[i] = loadImage(list[i]);
}
}
그리고 목적은 여기에 있습니다 : 코드를 디버깅 할 수
class Object{
float x;
float y;
PImage img;
int block = 50;
Object(float tmpx, float tmpy, PImage tmpimg){
x = tmpx;
y = tmpy;
img = tmpimg;
}
void show(){
image(img,x,y,block,block);
}
void moove() {
x = mouseX - block/2;
y = mouseY - block/2;
}
}
'over()'메서드에서'if (mouseX> = x && mouseX <= x + width/x + bs * i && mouseY> y && mouseY <= pad + bs) if (mouseX> = x && mouseX = y && mouseY
Nolo