[myLV.net 집필진 강좌 – 웅킹킹킹]
안녕하세요. 웅킹킹킹 입니다.
지난 시간에 이어서 Ladder Game 실습을 계속 진행하도록 하겠습니다.
잠깐 지금까지 진행한 내용을 되짚어보면
Ladder Game의 클래스 다이어그램으로 프로젝트에
사용할 클래스와 관계를 설계하고
Ladder Game, Runner Manager, Runner
총 3개의 Actor 클래스를 만들었습니다.
그리고 지난 시간에는 Non-Actor 클래스인
Ladder Map 클래스는 데이터 멤버와 메소드까지 모두 구현했습니다.
이번 시간에는 Ladder Game 프로그램에서 가장 중요한 클래스인
Ladder Game 클래스를 구현하도록 하겠습니다.
Ladder Game 클래스는 Root 클래스로 프로그램 내에서
뼈대 혹은 뿌리? 역할을 합니다.
그리고 프로그램 UI도 Ladder Game 클래스에서 구현합니다.
그만큼 중요하단 이야기입니다.
자 그럼 먼저 Ladder Game의 데이터 멤버부터 구현합니다.
위 그림과 같이 Ladder Game 클래스의 Ladder Game.ctl 파일에서
데이터 멤버를 구현합니다.
Stop Event 참조, MapInfo Event 참조, RunnerInfo Event 참조와 같은
이벤트 발생 참조 컨트롤을 구현하고
Runner Manager 클래스와 소통하기 위한 Runner Manager Enqueuer
그리고 UI 업데이트를 위한 불리언 참조 컨트롤을 배열타입으로
Users, Result 명으로 구현합니다.
Ladder Game 클래스에서 “AF Overrides” 라는 버츄얼 폴더를 만듭니다.
Actor 클래스로부터 덮어쓰기 할 메소드를 관리하는 버츄얼 폴더가 됩니다.
Actor 클래스로부터 Pre Launch Init 메소드를 덮어쓰기 합니다.
Pre Launch Init 메소드는
Actor 클래스를 호출할 때 “초기화” 과정을 실행하는 메소드 입니다.
해당 Actor 클래스의 초기화 부분을 프로그래밍하면 됩니다.
프로그램 종료, Map 정보 업데이트, Runner 정보 업데이트 이벤트
를 생성합니다. 아래의 그림과 같이 프로그래밍 하고 메소드를 저장합니다.
Actor 클래스로부터 Stop Core 메소드를 덮어쓰기 합니다.
Stop Core 메소드는
Actor를 종료할 때 “종료” 과정을 실행하는 메소드 입니다.
해당 Actor 클래스의 종료 부분을 프로그래밍하면 됩니다.
Pre Launch Init 메소드에서 생성한 사용자 이벤트를 종료하는 알고리즘을
구현합니다. 아래의 그림과 같이 프로그래밍 하고 메소드를 저장합니다.
Ladder Game 클래스의 “초기화, 종료” 과정에 대한 부분을 구현했습니다.
주로 사용자 이벤트를 생성하고 종료하는 구문입니다.
Ladder Game 클래스의 주요 메소드를 구현하도록 합니다.
Launch Runner Manager 라는 정적 디스패치 메소드를 생성합니다.
Launch Runner Manager 메소드는 Runner Manager 클래스를
호출하는 역할을 합니다.
생성된 메소드의 프런트 패널과 블록다이어그램을 구현합니다.
다음으로 Create Users 정적 메소드를 생성합니다.
Launch Runner Manager 메소드를 생성하는 과정과 동일하게
메소드를 생성합니다.
사다리타기 게임을 진행할 유저를 선택해서 생성하는
역할을 합니다.
프런트 패널과 블록다이어그램을 구현합니다.
유저 수에 따라서 사다리타기 유저 버튼을 해당 좌표로 이동시켜서
활성화 합니다.
Create User 메소드는 메시지 클래스를 통해서 호출할 수 있도록
메시지를 생성합니다.
생성된 Create User 메시지 클래스는 아래 그림과 같이
Ladder Game 버츄얼 폴더 하위에
Message Class라는 버츄얼 폴더를 만들어서 관리합니다.
Init Result 정적 디스패치 메소드를 생성합니다.
Launch Runner Manager 메소드를 생성하는 과정과 동일하게
메소드를 생성합니다.
사다리타기 게임 결과를 초기화 하는 역할을 합니다.
프런트 패널과 블록다이어그램을 구현합니다.
Init Result 메소드는 메시지 클래스를 통해서 호출할 수 있도록
메시지를 생성합니다.
Ladder Game 클래스의 메소드는 구현한
Create User, Init Result, Launch Runner Manager 이외에도
Update RunnerInfo, Update MapInfo, Update Result 그리고
Actor Core 가 있습니다.
프로그래밍 양이 많은 관계로
남은 메소드 구현과 메시지 클래스, UI는 다음 시간에
업데이트 하도록 하겠습니다.
감사합니다.