최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

Camera 클래스에서는 threshold 라는 메서드를 사용하여 임계값을 통과한 픽셀을 새 색상 값으로 설정하고


설정된 색상을 보통 getColorBoundsRect 라는 메서드로 사각형을 그려내서 증강현실과 같은 멋진 기능을 구현할 수 있는데


이 getColorBoundsRect에서 그려낸 영역과 파티클(객체)과의 충돌이 있을경우 반대 방향으로 파티클이 이동해야 하는데


이때 Rect안에 파티클이 완전히 겹친다거나 하는 상황이 생기면 파티클은 계속 왔다 갔다 하는 오작동이 생길 수 있다.


(계속 반대 부호가 반복되므로)


그래서 hitTestObject 메서드가 동작할 때 "최초의 _touchBool이 false일 경우에만 로직을 처리하고 true로 바꾸어 준다" 


이렇게 되면 돌아오는 다음 인터벌에서 _touchBool이 true이 되기 때문에 로직을 처리 하지 못한다.


hitTestObject를 빠져나가게 되면 _touchBool을 false로 바꾸어준다.


코드)


private var _touchBool:Boolean = false;


private function loop(e:Event):void
{
	if( rectangle.hitTestObject(star_mc) )
	{
		if( _touchBool == false ){
			
			_touchBool = true;
			
			_vx = - _vx; //x
			_vy = - _vy; //y
			_rot = - _rot; //rotate
			
		}
	}else{
		_touchBool = false;
	}
}
댓글