2014-10-13 1 views
-1

"처리 중"이라는 프로그램을 사용하여이 코드를 작성하고 있습니다. 이 코드는 마우스를 드래그 할 때 마우스 좌표를 배열에 기록한 다음 마우스를 놓으면 배열에 저장된 좌표 경로를 따라 원을 표시하지만 현재는 드래그를 시작한 곳으로 마우스를 드래그하는 것을 멈췄습니다. 이것은 다른 방법으로 생각되었지만 많은 것을 시도해 보았지만 그 반대의 결과를 얻었습니다. 그러나 나는 작동하지 않는 것으로 보입니다 :/내 프로그램이 배열을 거꾸로 저장하고 있습니다.

나를 보여줄 수 있다면 정말 도움이 될 것입니다! 나는 정말 명백한 것을 놓쳤을 것이라고 확신한다.

int num = 100; 
int[] x = new int[num]; 
int[] y = new int[num]; 
boolean released = false; 
int arrayIndex; 
boolean drag = false; 

void setup() { 
    size(600, 600); 
    noStroke(); 
    smooth(); 
    fill(255, 102); 
} 

void draw() { 
    background(0); 
    if (released==true){ 
     arrayIndex= (arrayIndex+1)%100; 
     ellipse(x[arrayIndex],y[arrayIndex],20,20); 

    } 

} 


void mouseDragged(){ 
    drag=true; 
    x[0] = mouseX; 
    y[0] = mouseY; 
    for (int i = num - 1; i > 0; i--) { 
    x[i] = x[i-1]; 
    y[i] = y[i-1]; 
    } 



} 

void mouseReleased(){ 
released=true; 
} 
+0

당신이 사용하는 언어. 배열의 상단에서 시작하여 작업을하는 것처럼 값을 추가하는 것처럼 보이지만 배열을 읽어 패스를 그리는 코드는 맨 아래에서 시작하여 작동합니다. –

+0

@MikeW'Processing'은 언어의 이름이고 자바 프레임 워크입니다. – kevinsa5

답변

0

지적한대로 끝에서 시작하여 양식을 읽는 시작부터 끝까지 좌표를 추가하십시오. 다른 VAR를 사용

int num = 100; 
int[] x = new int[num]; 
int[] y = new int[num]; 
boolean released = false; 
int arrayIndex; 
boolean drag = false; 

void setup() { 
    size(600, 600); 
    noStroke(); 
    smooth(); 
    fill(255, 102); 
} 

void draw() { 
    background(0); 
    if (released==true){ 
     arrayIndex= (num-1) - (frameCount+1)%100; 
     ellipse(x[arrayIndex],y[arrayIndex],20,20); 

    } 

} 


void mouseDragged(){ 
    drag=true; 
    x[0] = mouseX; 
    y[0] = mouseY; 
    for (int i = num - 1; i > 0; i--) { 
    x[i] = x[i-1]; 
    y[i] = y[i-1]; 
    } 



} 

void mouseReleased(){ 
released=true; 
} 

: 그래서

는 frameCount를 사용하여 ... eithr frameCount, 또는 중간 VAR를 사용하여 디스플레이 반복 역

int num = 100; 
int[] x = new int[num]; 
int[] y = new int[num]; 
boolean released = false; 
int arrayIndex; 
boolean drag = false; 

void setup() { 
    size(600, 600); 
    noStroke(); 
    smooth(); 
    fill(255, 102); 
} 

void draw() { 
    background(0); 
    if (released==true){ 
     arrayIndex= (arrayIndex+1)%100; 
     int reversed = (num-1) - arrayIndex; 
     ellipse(x[reversed],y[reversed],20,20); 

    } 

} 


void mouseDragged(){ 
    drag=true; 
    x[0] = mouseX; 
    y[0] = mouseY; 
    for (int i = num - 1; i > 0; i--) { 
    x[i] = x[i-1]; 
    y[i] = y[i-1]; 
    } 



} 

void mouseReleased(){ 
released=true; 
} 
당신이이 태그 경우 도움이 될
+0

고마워! 나는 그것을 지금 본다 :) –