int x = 50;  // 초기 공의 X위치
int y = 0;   // 초기 공의 Y위치
int x_move_speed = 3;  //공의속도
int y_move_speed = 3;

void setup()
{
 size(500, 500); 
 smooth();
}

void draw()
{
  background(255);
  
  fill(0); 
  rect(0,0, 100, 100);    // for 문 사용하기 귀찮아서 노가다 ㅡㅡ;;
  rect(100,100, 100, 100);
  rect(200,200, 100, 100);
  rect(300,300, 100, 100);
  rect(400,400, 100, 100);
  
  
  if( color(255,255,255) == get(x,y))   // 추출한 값이 흰색이면 빨간색으로 아니면 흰색으로
  {
    fill(255,0,0, 100);    //빨간색
  }
  else
  {
    fill(255, 100);       //흰색
  }
  ellipse(x, y, 20, 20);                          // 추출한위치에 공을 위치 시킨다.
  
  x = x + x_move_speed;                     // 공움직이기
  y = y + y_move_speed;
  
  if(x > width || x < 0)                          // 공이 화면상에서 벋어날려고 하면 위치 변경하기
  {
    x_move_speed *= -1;
  }
  if(y > height || y < 0)
  {
    y_move_speed *= -1;
  }
  
}


screenshot_01.jpg


 get  함수의 활용도는 프로세싱에서 중요한 역할을 한다. 간단하게 색상을 추출 할뿐 아니라 이미지 크랍까지 가능하다.

활용 방법에 따라 그 가치는 이로 말할수 없다. ^^;;


이번에는 get 함수를 이용해 충돌 감지를 구현해 보자.

기본 원리는 간단하다.


1. 기본 배경의 색상을 get 으로 추출해서 해당값을 추출한다.

2. color(255, 255, 255)  = > 이것은 프로세싱에서 흰색을 의미한다. #ffffff  이런식으로 16진수로 표현해도 무방하다.

3. if 문으로 배경색이 흰색이면 빨간색공으로 검은 색이면 흰색공으로 변화시킨다.


오랜만에 몰아서  올립니다.~ 즐거운 프로세싱 라이프~



Share