JAVA 상속을위한 학습 과정으로서 스케쥴러 클래스와 액터 클래스를 조합했습니다. 스케줄러 클래스는 액터 객체 목록을 생성하고 actor 객체를 호출하여 act() 객체를 호출합니다.스케쥴러와 액터 용 Java Roguelike 클래스와 서브 클래스 구조
이제 배우 클래스의 첫 번째 본능은 플레이어가 자신의 차례가 도착했을 때 플레이어가 스케줄러를 일시 중지 할 수 있도록 플레이어 액터에 스케줄러에 대한 참조를 전달하는 것입니다.
그래서 스케줄러 내에서, 나는 현재 배우에 대한 참조가이 스케줄러되는actor.act(this);
.. 다음을 수행 할 수 있습니다. 다음과 같이 내가 행동을 선언 할 수 있습니다 플레이어 클래스 내의 이제
...@Override
public int act(Scheduler queue)
{
//need to pause scheduler here and wait for player to act
queue.lock();
//wait for action from player
if (this.playerActionComplete)
{
queue.unlock();
}
}
이 올바른 OOP 접근 방식인가? 벌써 이상한 일들이 생겼고이 접근법에 인내해야하는지 궁금합니다.
건배!
* 내 첫 번째 본능은 배우가 "스케줄러 일시 중지"(그 의미가 무엇이든)가 주어지면 배우가 시스템의 다른 모든 것을 멈추게 할 수 있다는 것입니다. –
Hi Dave, 스케줄러는 턴베이스 시스템을 시행하므로 다른 스레드가 실행 중일 때 플레이어가 돌아 왔을 때 시스템이 타이어 점화 정지 상태가되어 플레이어 입력을 기다려야합니다. 그러나 이것은 배우들이 스케줄러를 참조하는 방법에 관한 질문에 관한 것입니다. 이것을 생각한 후에 Act() 메소드에서 schedule 매개 변수를 제거하고 객체 유형이 스케줄러 클래스 내의 플레이어인지 확인합니다. 그렇다면 스케줄러가 스스로를 쉽게 잠글 수 있습니다. –