オブジェクトのx座標を交換したい。
processing言語の質問です。
オブジェクトの情報を交換するループがうまく行きません。教えてください。
以下はプログラムです。全体のプログラムの一部を抜粋しています。
void setX() {
int j=0;
int []data=new int[member2-clickedIndex+1];
if (clickedIndex!=-1) {
if (clickedIndex < member2 && clickedIndex >= 0) {
if (staff[clickedIndex].isTimerOn && clickingTimer) {
while (j<member2) {
if (staff[j].position==member2) {
int tmp=staff[j].x;
for (int k=clickedIndex;
k<=member2-1; k++) {
for (int i =clickedIndex+1; i <=member2; i++) {
if (staff[i].position==k) {
data[k]=staff[i].x;
}
}
for (int i=0; i<=member2; i++) {
if (staff[i].position==k+1) {
data[k]=staff[i].x;
}
}
print(data[k]);
}
staff[clickedIndex].x=tmp;
}
j++;
}
clickingTimer=false;
}
}
}
}
以上です。
clickedIndexはキーボードから入力された要素数です。
staff.xには情報とx座標がはいっています。staff.positionはwindowをmember2でわったx座標が、格納されています。
staff.xは移動する情報でstaff.positionはその情報をしまう箱のような役割をしています。この情報を箱にしまるループがうまくいきません。
forループでは、配列であらわすと、例えばint data【5】={1,2,3,4,5}があったとして、キーボードで要素数の1を入力した
3,4,5,1,2,というようにループでずれ、次にキーボードで2を入力したら、3,4,1,2,5となるプログラムをつくりたいのですが、この動きがうまくいきません。
このとき
int []data=new int[member2-clickedIndex+1];のmember2-clickedIndex+1というのは先程例に上げた配列の要素数がmember2にあたり、キーボードで入力したものがclickedIndexにあたるので、clickedIndex以降の数字をループで動かすために
int []data=new int[member2-clickedIndex+1];となっております。
プログラムではstaff.position[j]に入ってるstaff.xを見つけ出して、別の箱に移動させらるように準備をしています。
この箱の移し替えの作業が例に上げた配列のループのように動かすにはどうしたらいいでしょうか?
プログラム初心者で言葉足らずなとこもありますがよろしくお願いいたします。
ここに解決したい内容を記載してください。