2011-08-17 3 views
0

나는 팩맨을 C에서 만들고 현재 각각의 유령에 대해 하나의 스레드를 사용하고 있으며 각각의 유령은 '#'을 나타냅니다.하지만 실행하면 모든 화면에 유령이 가득 찼습니다. 모든 유령은 단지 하나 또는 두 개의 이동합니다.c, 유령 운동에 팩맨을 구현

임 각 고스트는 X, Y 위치를 포함

고스트 5의 구조체를 생성 로직을 사용하여이. 5 개의 스레드 배열을 만들고 각 스레드는 하나의 고스트를 구현합니다 각 고스트가 화면에서 무작위로 움직입니다. 이동하는 각 공간에 대해 공백을 인쇄 한 다음 새 위치에 '#'을 인쇄합니다.

귀신의 움직임을 구현하는 방법을 알려주십시오. 또는 구현 Im이 올바른 방법입니까?

는 여러 스레드에서 동시에 화면을 업데이트하려고

+0

tis는 과제물인가요? 스레딩을 사용하는 이상한 장소처럼 보입니다 ... –

+0

예, 이것이 최종 시험입니다 – gustavo

+0

두 귀신이 같은 위치를 차지한다면 어떨까요? –

답변

3

에이전트 당 하나의 스레드는 게임을 만드는 매우 일반적인 방법이 아닙니다. 큰 장면에서는 빠르게 작동하지 않습니다. 종래의 해결책은 유령을 나타내는 상태 머신을 정의하는 것이고, 어떤 종류의 "진보적 인"방법으로 내부 상태를 다음 퀀텀으로 조정할 기회를 제공합니다. 이 상태 기계의 여러 인스턴스를 작성하고 게임 루프의 각 반복에서 모든 "고급"메소드를 호출하십시오. 이 모든 일은 단일 스레드에서 발생할 수 있습니다.

이보다 더 많은 것이 있지만 시작하면됩니다.

2

화면 갱신 코드 주위에 뮤텍스를 필요로 감사드립니다.