플레이어가 위로 올라가고 있습니까?


11

사다리가있는 2D 물리 기반 플랫 포머 게임에서, 올라가는 플레이어가 점프로 인해 발생하는지 또는 사다리를 등반하여 발생 하는지를 어떻게 판단하여 어떤 애니메이션을 재생할지 알고 있습니까?

그리고 일반적으로, 방향 벡터는 재생할 애니메이션을 결정하기에 충분하지 않습니다. 움직임의 원인을 어떻게 결정합니까? (올바른 스프라이트를 알고 있습니까?)


1
플레이어가 사다리 위에 있다면 실제로 공중에 있습니까?
데릭

답변:


15

나는 당신이 여기에 표현하고있는 것처럼 개인 논리 문제를 정기적으로 가지고 있습니다. 때로는 논리와 프로그래밍을 잘못된 방향에서 완전히 바라 보는 경우가 있습니다. 이 경우, 논리 코드로 인해 처음부터 어떤 일이 일어나고 있는지 알지 못하는 것 같습니다. 그가 사다리에 있는지 여부에 관계없이 프로그래밍 방식으로 말하면 이미 알고 있어야합니다.

그것에 대해 생각해보십시오 (내가 말했듯이 종종이 문제가 있습니다). 게임 로직은 당신이 똑똑한 프로그래머라고 가정하고 당신이 사다리에 있다는 것을 알아야합니다. 더 나은 설명을 위해 파일 아카이브 유형이 있으며 데이터 크기를 얻는 방법을 알아 내려고 하루 약 한 시간을 낭비했으며 파일을로드 할 때 결코 멈추지 않았습니다. 그 크기를 알고 : P.

이것이 독점적으로 관련되는 이유는, "지금 공중에있다, 내가 사다리에 있는지 점프 하는지를 어떻게 알 수 있을까?" "공중에 들어 가려고하지만, 애니메이션 사용에 사용할 수 있도록 먼저 어떤 방법을 사용해야합니까?"


간단한 예 : 부울을 true로 OnJump()변경 jumping한 다음, 공중에 있고 jumping거짓 인 경우 넘어 지거나 사다리 등이됩니다.
Joshua Hedges

6

물리 시스템은 플레이어가 왜 특정 방향으로 움직이고 있는지 알거나 신경 쓰지 않습니다. 물리 시스템이 플레이어를 그런 식으로 움직이게 한 것은 귀하의 게임이므로,이를 추적하는 것은 게임의 책임입니다. 플레이어 엔티티에는 점프, 등산, 달리기 등을 알려주는 상태가 있어야합니다. 물리 시스템에서 발생한 일을 기반으로이를 파악하려고하지 않아야합니다.


2

플레이어의 수직 속도를 설정하는 충돌에서 트리거되는 이벤트를 사용하여 사용할 애니메이션을 지정하는 플래그를 설정할 수도 있습니다.

제공하는 정보가 너무 제한적인 타사 라이브러리를 사용하는 경우 사다리를 사각형으로 둘러 쌀 수 있으며 플레이어가 해당 사각형에 올라가서 포함되어 있으면 등반 애니메이션을 수행 할 수 있습니다.


이것은 실제로 내 게임 개발에서 나중에 다루려고하는 좋은 점을 제시합니다. 이것이 물리에 따라 애니메이션의 속도를 변경하는 방법입니다. 팔이 얼마나 빨리 떨어지는 지에 따라 팔을 절차 적으로 더 빨리 벗기고 싶은 캐릭터가 있습니다. 그리고 시간이 지남에 따라 깊이 생각할 수있는 좋은 방법을 생각하지 못했지만 속도 아이디어가 훨씬 좋습니다. 일반적인 사용 가능한 답변은 +1이며 자신의 경우에만 국한되지는 않습니다.
Joshua Hedges

1

점프 속도를 설정할 때 문자 상태를 STATE_JUMPING으로 설정하십시오. 이렇게하면 플레이어의 상태를 항상 알 수 있으며 플레이어 상태를 확인하여 그에 따라 행동 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.