2013-11-21 5 views
0

많은 int 값을 만들고 빈 int 배열에 추가하려고하지만 작동하지 않습니다. 나는 asm 코드를 추가했다. 만약 당신이 플러그를 꽂으면 작동 할 것입니다. 모든 문제가있는 부분은 주석 처리되어 있습니다.처리에서 빈 int 배열을 만드는 방법?

저는 정말로 사용하려고하는 완벽한 색상을 사용하려고 노력하고 있습니다. 그래서 색상을 나타내는 숫자의 목록이 만들어졌고 fill으로 초기화 할 수 있도록 그 색상을 배열에 추가해야합니다. 그래서 질문은 어떻게 빈 int 배열에 모든 값을 추가 할 것입니다.

int rotationCount = 0; 
int translateX ; 
int translateY ; 
int currentTime = 0; 
int circlesOrLines ; 
int timeLimit ; 
int r; 
int g; 
int b; 
//int[] values = new values []; 
int maxValue = 226; 
int minValue = 75; 
int timeIndex = 0; 

void setup() { 
    size(500, 700); 
    r = 226; 
    g = 226; 
    b = 75; 

    smooth(); 
    background(0); 
    rectMode(CENTER); 
    frameRate (10); 
    noStroke(); 
    fill(r, g, b, 30); 
    translateX = width/2; 
    translateY = height/2; 
    timeLimit = 10000; 
    circlesOrLines = 0; 
    currentTime = millis(); 
    //generateColor(); 

} 

void draw() { 
    background(80); 
/* 
    timeIndex++; 
    if (timeIndex >= values.length){ 
    timeIndex = 0; 
    } 
    fill(values [timeIndex] , values [timeIndex + 1], values [timeIndex + 2], 30); 

    */ 
    fill(r, g, b, 30); 
    int passedTime = millis() - currentTime; 
    println (" the passed time is " + passedTime); 

    translate(translateX % width, translateY % height); 


    translateX += 3 % width; 
    translateY += 3 % height; 

    rotationCount += (PI/2008); 
    if (passedTime < timeLimit) { 
    makeCircles(); 
    } 
    else { 
    if (passedTime >=20000) 
    { 
     passedTime = 0; 
     currentTime = millis(); 
    } 
    makeLines(); 

} 
} 
void makeCircles() { 

    for (int i = 0; i < 25; i++) { 
    rotate (rotationCount); 
    ellipse(i+7, i % width, 100, height/2); 
    } 
} 

void makeLines() { 
    for (int i = 0; i < 25; i++) { 
    rotate (rotationCount); 
    rect(i+7, i % width, 100, height/2); 
    } 
} 
/* 
void generateColor() { 

         for (g=g; g>minValue; g--) 
         { 
           values.push (r,g,b); 
         } 
         for (r=r; r>minValue; r--) 
         { 
           values.push (r,g,b); 
         } 
         for (b=b; b<maxValue; b++) 
         { 
           values.push (r,g,b); 
         } 
         for (g=g; g<maxValue; g++) 
         { 
           values.push (r,g,b); 
         } 
         for (r=r; r<maxValue; r++) 
         { 
           values.push (r,g,b); 
         } 
         for (b=b; b>minValue; b--) 
         { 
           values.push (r,g,b); 
         } 


       } 

*/ 

편집 --------

자바 스크립트 MODE : 나는 작업 솔루션을 붙여 넣은

enter image description here

+0

이 코드 중 아무 것도 자바 스크립트에서 작동하지 않아야합니다. 당신이 정말로 자바를 의미하지 않았습니까? – Chandranshu

+0

음 내가 처리 중입니다 >> 자바 스크립트 모드가 잘 작동합니다. – tailedmouse

+0

어떤 모드입니까? IDE에 대해 이야기하고 있습니까? 일반 자바를 작성하고 Java 코드로 실행중인 모든 것을 작성한다는 사실을 알려 드려서 죄송합니다. 사용중인 소프트웨어에서 해당 모드의 의미에 대해 읽어야합니다. – Chandranshu

답변

1

. 코드에 몇 가지 오류가있었습니다.

먼저 사용하는 것을 선언하십시오. 코드에서 values을 사용하지만 선언문을 넘어 섰습니다. Javascript는 null 객체에 대한 호출을 허용하므로 객체에 .push()을 호출하고 컴파일 중이지만 작동하지 않는 이유는 무엇입니까?

두 번째로 색을 color 개체로 유지하고 ArrayList를 사용하여 개체를 저장합니다. 관리가 더 쉬우 며 Java 및 Java 버전의 Processing간에 문제없이 쉽게 이동할 수 있습니다. Java의 배열에는 .push() 메서드가 없습니다.

마지막으로 fill()을 호출 할 때 색상을 찾으면 색상 배열과 길이가 같지 않은 timeIndex를 사용하므로 예외가 발생합니다. 프레임 카운트와 ArrayList 길이의 모듈러스를 사용하여 조회를 변경하여 색상을 통해 진동을 유지하면서 경계 오류를 방지했습니다.

결과가 매우 좋게 보입니다. 잘 했어.

int rotationCount = 0; 
int translateX ; 
int translateY ; 
int currentTime = 0; 
int circlesOrLines ; 
int timeLimit ; 
int r; 
int g; 
int b; 
ArrayList values; 
int maxValue = 226; 
int minValue = 75; 
int timeIndex = 0; 

void setup() { 
    size(500, 700); 
    r = 226; 
    g = 226; 
    b = 75; 

    smooth(); 
    background(0); 
    rectMode(CENTER); 
    frameRate (10); 
    noStroke(); 
    fill(r, g, b, 30); 
    translateX = width/2; 
    translateY = height/2; 
    timeLimit = 10000; 
    circlesOrLines = 0; 
    currentTime = millis(); 


    values = new ArrayList(); 
    generateColor(); 

} 

void draw() { 
    background(80); 

    fill(values.get(frameCount % values.size())); 
    int passedTime = millis() - currentTime; 

    translate(translateX % width, translateY % height); 

    translateX += 3 % width; 
    translateY += 3 % height; 

    rotationCount += (PI/2008); 
    if (passedTime < timeLimit) { 
     makeCircles(); 
    } 
    else { 
     if (passedTime >=20000) 
     { 
      passedTime = 0; 
      currentTime = millis(); 
     } 
     makeLines(); 

    } 
} 
void makeCircles() { 

    for (int i = 0; i < 25; i++) { 
     rotate (rotationCount); 
     ellipse(i+7, i % width, 100, height/2); 
    } 
} 

void makeLines() { 
    for (int i = 0; i < 25; i++) { 
     rotate (rotationCount); 
     rect(i+7, i % width, 100, height/2); 
    } 
} 


void generateColor() 
{ 

    for (g=g; g>minValue; g--) 
    { 
     values.add (color(r,g,b,30)); 
    } 
    for (r=r; r>minValue; r--) 
    { 
     values.add (color(r,g,b,30)); 
    } 
    for (b=b; b<maxValue; b++) 
    { 
     values.add (color(r,g,b,30)); 
    } 
    for (g=g; g<maxValue; g++) 
    { 
     values.add (color(r,g,b,30)); 
    } 
    for (r=r; r<maxValue; r++) 
    { 
     values.add (color(r,g,b,30)); 
    } 
    for (b=b; b>minValue; b--) 
    { 
     values.add (color(r,g,b,30)); 
    } 
} 
+0

우OOOOOOOOO !! 안녕하세요 ~ 5 ADAM !!!! 고마워 sooo 많이 loooool – tailedmouse

관련 문제