두 개의 직사각형을 만들었으므로 그 중 하나를 사용하여 이동하고 점프 할 수 있으며 다른 하나는 장애물로 계속 Form에 나타납니다. 장애물을 장애물 (또는 벽이라면)으로 사용하려면 기본적으로 이동식 사각형이 장애물의 왼쪽 측면과 충돌 할 때 정지되도록하고 싶습니다. 충돌시 2D 사각형이 움직이지 않아야합니다.
나는 기사에서 두 개의 사각형 사이 (가 충돌을 감지하지 분명히 쉽기 때문) 충돌을 감지 할 방법 이 코드 발견 :OutsideBottom = Rect1.Bottom < Rect2.Top
OutsideTop = Rect1.Top > Rect2.Bottom
OutsideLeft = Rect1.Left > Rect2.Right
OutsideRight = Rect1.Right < Rect2.Left
//or
return NOT (
(Rect1.Bottom < Rect2.Top) OR
(Rect1.Top > Rect2.Bottom) OR
(Rect1.Left > Rect2.Right) OR
(Rect1.Right < Rect2.Left))
을하지만 그것을 구현하는 방법을 모르겠어요. 나는 키보드에서 'A'를 누를 때 ('D'는 오른쪽으로, 'W'는 점프로) 실제로 true가 될 때 "button1.lft"라는 부울이 있습니다. left (Timer_Tick 이벤트에서).
는편집 :
"rect1.IntersectsWith (rect2)은"충돌을 감지하기 위해 노력하고 있습니다. 그런데 오른쪽 구석이 장애물 왼쪽에 충돌하면 움직일 수있는 사각형이 오른쪽으로 움직이지 않기를 원하지만 (왼쪽으로 도약하고 계속 움직일 수 있어야 함) 나는 이것을 어떻게 사용할 것인가? 측면 (등)?
'Rectangle' 구현에'Rectangle.Intersects()'메소드가 있습니까? 그렇다면'bool collided = rect1.Intersects (rect2); ' – itsme86
'충돌을 감지하지 못하기 때문에 분명합니다. 더 쉽지만 빠릅니다. 나머지 값을 검사하는 것을 중지합니다. 업데이트가 발생할 때마다 매번 업데이트 조건을 한 번씩 빠르게 확인하십시오. 12. – TyCobb