Processando.js matriz de imagens que não estão sendo exibidas corretamente

Estou tentando tirar dados do caminho da imagem do meu database e mostrá-lo no esboço do processamento, então este é o arquivo do Javascript:

 function send() { function setPath(d) { var s = d; var processingInstance; if (!processingInstance) { processingInstance = Processing.getInstanceById('canvas'); } processingInstance.change(s); } var variable = 2; $.ajax({ method: "POST", tupe: "POST", url: "take.php", data: ({val: variable}), success: function (data) { $('#msg').html(data); setPath(data); }, }); } 

Este é o arquivo PHP:

  $value) { echo " $value"; } // echo $im; } ?> 

e este é o meu código Processing.js aqui:

 String pic ; PImage img; int x; int y; int pad = 10; int bs = 50; String[] list = new String[0]; void setup(){ size(500,500); background(150); //img = loadImage(pic); } void draw(){ for (int i = 0; i < list.length ; i++){ x = pad + (bs+pad)*i; y = pad; image(img,x,y,bs,bs); } } void change(String val){ list = split(val," "); for(int i = 0; i <list.length; i++){ pic = list[i]; img = loadImage(pic); println(pic); } } 

O problema é que, quando eu executo o esboço, me mostra uma imagem mais e apenas o último elemento da matriz. Se eu tiver 5 elementos, na área do skatch, eu tenho 6 mesmas imagens com o quinto elemento da matriz. Como posso corrigir isso e ver 5 imagens diferentes?

Pense nisso desta forma: você só tem uma variável img , então você só está mostrando uma única imagem!

Dê uma olhada em seu loop:

  for(int i = 0; i  

Você está passando pela list e obtendo as imagens dele, mas você está constantemente configurando a variável img uma e outra vez. No final deste loop, o img igualará a última imagem na lista.

Em vez de usar uma única variável img , você provavelmente deseja usar uma matriz ou uma ArrayList . Aqui está um começo básico:

 PImage[] images; void draw(){ for (int i = 0; i < images.length ; i++){ x = pad + (bs+pad)*i; y = pad; image(images[i],x,y,bs,bs); } } 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]); } }