2014-04-09 2 views
-4

저는 게임 프로그래밍 (C++, cocos2d-x)을 연습하고 있습니다 이제 다음 사이트와 같은 파이프 라인 게임을 프로그래밍하고 싶습니다. 논란의 여지가있는 점으로 파이프 라인 게임을 프로그래밍하는 방법

http://www.flashgames.jp/game/2505/Shortcut_2.html

,

(1) 나는 컴퓨터가 파이프 사이의 관절을 인식 할 수 있습니까?

(2) 파이프를 연결 한 후 시작점에서 파이프를 따라 물을 어떻게 흐르게 만드시겠습니까? 우리는 당신의 게임 보드는 2 차원 배열로 저장 Y 공간으로 X의 격자입니다 가정하면

답변

1
  1. 후 보드에 배치 각 파이프 블록은 받아 들일 것을 보여주기 위해 각 방향에 대한 플래그를 가질 수있다 그 방향에서 연결. 각 블록에 대한 이러한 플래그의 상태는 해당 블록 (예 : 벤드 또는 스트레이트)에 적절한 이미지를 그리는 데 사용될 수 있습니다.

  2. 물이 블록에서 흘러 나오려고 할 때 (아마도 한 번 트리거되거나), 물 흐름의 끝이 현재 블록에있는 플래그를 확인해야합니다 (우리는 이것을 흐름 블록이라고 부릅니다). 각 플래그에 대해, 보드에서 그 방향으로 바로 인접한 블록을 살펴보십시오 - 해당 블록에 플로우 블록을 가리키는 플래그가 있으면 연결이 있고 새 블록이 플로우 블록이 될 수 있습니다. 물이 다음 블록에 이미 존재하는 경우

    그러나, 다음 유효한 연결이 흐름에서 발견되지 않으면

    (이 그래서 우리는 자체에 다시 흐르는 물이없는 것입니다) 다른 방향을 계속 확인 (연결 가능한 가장자리에 호환 가능한 블록이 연결되어 있지 않거나 가능한 모든 연결이 물로 채워져 있기 때문에) 게임이 끝났습니다.