이런 경우 데이터를 어디에다가 빼는게 좋을까요?
글쓴이: ikpil / 작성시간: 수, 2008/05/07 - 8:17오후
적 유닛 클래스가 따로 있고, 아군 유닛 클래스가 따로 있습니다.
1. 아군이 몇마리 살아 있고, 적 유닛이 몇마리 살아있는지 체크를 해야 합니다.
2. 두종류는 각각 다른 리스트에 담겨져 있습니다.
방법
1. 아군을 유닛 클래스에서 생성자에서 정적 변수 count를 count 1 증가, 소멸자에서 1 감소(적군도 마찬가지)
2. 게임 진행 클래스에 두개의 변수 설정, 아군을 리스트에 담을때 1증가, 리스트에서 지울때 1 감소
.. 이렇게 두가지 방법이 떠오릅니다.
실제 모델을 생각한다면, 아군 클래스나 적군 클래스나 클래스에서 자신의 수들을 알아야 한다고 생각되지 않아
게임 진행 클래스에 넣어서 관리했었습니다.
그러던중 EffectTive C++ 을 공부하는 중에..
적군 클래스에서 적개체수를 카운팅하는 변수를 정적변수로 넣어서 사용하고 있는것 입니다.
아직 배우는 입장이라, 무엇이 더 효율적 관리인지 모르겠습니다.
어디에 이 변수를 빼는것이 더 효율적으로 관리를 할수 있을까요?
Forums:
생성자, 소멸자에
생성자, 소멸자에 넣는 다면 유닛 추가, 제거가 있을 때마다
클래스를 new, delete 해야 하는데 이건 좀 아닌것 같네요.
굉장히 자주 일어날텐데..
제 생각엔 유닛 관리자 클래스를 둬서, 이곳에서 수를 관리하는게 좋을 것 같습니다.
유닛은 unit pool을 둬서 필요할 때 꺼내 쓰는 방식으로 하면
new, delete 부하를 줄일 수 있겠죠.
유닛을 new, delete 를
유닛을 new, delete 를 반복하는 상황이라면 static 변수를 두고 생성/소멸자에서 +/- 를 해주는 것이 코드 상으로는 유리할 것 같네요.
생성/소멸자에서 관리를 하게 된다면, new unit u; 과 delete u; 만으로 유닛 수를 셀 수 있게 될테지만 게임 진행클래스에서 관리하게 될 경우 new unit u; unit_count++; 혹은 delete u; unit_count--; 식으로 유닛 수를 업데이트 해줘야 할테니...
단 static 변수로 관리할 지 게임 진행 클래스에서 관리할 지는 변수의 위치의 차이 외에 큰 의미를 두기는 힘들 것 같네요.
--
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
댓글 달기