2011-04-01 7 views

답변

0

이것을하는 일반적인 방법은 Observer 디자인 패턴과 유사한 시스템을 사용하는 많은 게임들이 사용하는 "성과 시스템"과 비슷합니다. 일종의 데이터 패킷을 수신하는 기능과 함께 전체적으로 액세스 가능한 수신기 개체를 설정할 수 있습니다.

그러면 자습서 정보가 표시되어야하는 모든 기능이이 수신자 객체에 메시지를 보내고 조치를 수행했음을 알립니다.

예를 들어, 플레이어에게 "10 개의 나무를 잘라내십시오"라고 알리는 메시지 상자가 있다고 가정 해보십시오. 그런 다음 그들은 "나무를 잘라"작업을 수행 할 때 다음 TutorialMessage(var Action:String, var Parameter:object):void

같은 기능으로 리시버 개체가 기능은 수신기 객체의 메시징 기능 Receiver.TutorialMessage("TreeChoppedDown", 1)에 대한 호출을 포함 할 것)합니다 (chopDownTree의 끝낼 수 있습니다 (즉, 1 나무 아래로 잘게).

그러면 리시버는 행동의 본질을 결정하기 위해 대대적 인 스위치 케이스를 실행하고 논리를 기반으로 해석 할 것입니다. 이 경우 매개 변수의 값을 일부 카운터 변수에 추가하고 10에 도달하면 다음 자습서 메시지를 표시합니다.

+0

감사합니다. Jordaan Mylonas. 강제 행동은 어때? 클릭 만 허용하는 방법이 있습니까? 예상대로 사용자가 자습서를 끝내기 위해 시퀀스를 따르도록하고 싶습니다. 누구나 단서가 있습니까? – user686866

+0

너무 희한하지 않습니다. 작업 권한을 처리하는 전역 적으로 액세스 가능한 개체를 설정합니다. 일반적인 경기 상황 하에서는 게임의 규칙 내에서 모든 행동을 허용합니다. 튜토리얼에서는 훨씬 더 엄격합니다. 'CanPerform (Action : String) : bool' 함수를 제공하고, 게임 상태에 영향을주는 액션이 ​​발생할 때마다 블록인지 여부를 검사합니다. 즉, if (Ruleset.CanPerform ("KillSomeDude")) {KillADude();}' –

관련 문제