2017-03-09 13 views
0

3 점 (삼각형으로 표시)이있는 CircularShape라는 차량과 원형의 Circular shape 필드를 정의했습니다. 필드가 자동차의 끝 부분에 머물고 싶습니다. 자동차의 팁과 함께 움직지만 문제는 내가 프로그램을 실행할 때, 그들은 함께 움직이지 않는다. 모호한 행동이있다. 두 가지 모양과 위치의 문제가 있다고 생각한다. 미래의 일부 목적을 위해 변경 될 수 없습니다. 또한 누군가가 내가 내 차 + 필드 창 경계 여기 밖으로 이동하지 않도록 할 수있는 방법 저를 제안 할 수 있습니다 것은 codepad.org에서 실행되지 것입니다 당연히 난 그냥 링크를 게시 한 코드SFML에서 두 개의 CirclarShape 객체를 함께 이동하거나 회전 할 수 없습니다.

http://codepad.org/CJ0JR6Qc

에게 있습니다 편의 목적으로

답변

0

현재 게임 루프가 누락되어 있으므로 컴퓨터의 처리 속도에 따라 움직임이 예측할 수 없게됩니다.

추가로 평가하려면 코드가 호출 될 때마다 자동차가 10 픽셀 씩 움직이는 것으로 가정합니다. 프로세서가 빠르며 초당 100 번 코드를 실행할 수 있으면 차가 100 * 10 픽셀 = 초당 1000 픽셀 이동합니다. 컴퓨터가 코드를 초당 10 회만 실행할 수있는 경우 자동차가 10 * 10 픽셀 = 100 픽셀 이동합니다.

게임 루프의 원리를 읽어야합니다. 이미 sfml 포럼에 많은 질문이 있으며 사이트에 시간을 측정하는 방법에 대한 자습서가 있습니다 (http://www.sfml-dev.org/tutorials/2.4/system-time.php 참조).

도형/엔티티 등을 확인하려면 특정 지역을 벗어나지 말고 먼저 게임 루프의 모든 위치를 업데이트 한 다음 새 위치가 허용되는지 확인해야합니다. 귀하의 예제에서 모양의 위치가 0보다 작거나 창 크기보다 큰지 확인합니다. 이 질문은 이미 sfml 포럼에서 여러 번 평가되어 포럼에서 '경계 상자'를 검색하는 데 훨씬 도움이 될 것입니다.

희망이 도움이됩니다. 최선의 희망,

essi