U E D R , A S I H C RSS

ProjectAR/Design

생각

  • DX의 CMyAppView가 될테고, Doc가 될 클래스를 하나 추가해주자.
  • CArObject 에서 상속받은 CARHeroCARMonster가 있다.
  • CArHero에서 상속받은 검사, 창사 이런게 있을테다.
  • CARMonster를 상속받는 CARColdMon, CARFireMon등등이 있다.
    DeleteMe) 그런데 안그래도 될거 같다. --인수
  • 보스는 각각의 CAR~~~Monr를 상속받으면 될거같다.
  • 정령을 상속받는 어쩌구 저쩌구 정령
  • 아이템을 상속받는 착용가능한 아이템, 소모성 아이템 등등
  • 착용가능한 아이템은 정령을 가지고 있다.
  • 맵도 있다. 맵은 데이터를 읽어와서 맵의 정보를 저장한다.

Thread

그런데 왜 저렇게 복잡하게 상속을 받아야 하는걸까, CARMonster클래스가 모든걸 갖고 있어도 충분히 처리가 가능할 것같은데 --선호
확장 가능성 때문이 아닐까. 몬스터 행동 패턴이 있다고 했을때 CARMonster가 모든걸 갖고 있다면 if(슬라임) ~ else if(박쥐) ~ 이런 코드가 나올거 아니냐. 저런 코드는 제거 대상 1호중의 하나랜다.
그런건가.. -_-생각보다 꽤나 복잡하군... 에헤~
그러면 늘어나는 클래스의 관리는 어떻게 하면 쉽게 할 수 있을까..??
나중에 DLL로 바꾸면 가시적인 클래스 수는 많이 줄어들겠지

Behavior

CARObject

  • CARObject는 각자의 패턴에 맞게 움직일수 있어야 한다.
  • CARObject는 각자의 리치, 공격 타입 등에 맞게 공격할 수 있어야 한다.
  • CARObject가 공격을 하려면, 각자의 시야안에 들어오는 또 다른 CARObject를 볼 수 있어야 한다. CARMap을 파라메터로 넘겨주면 될까? 아니면 CARObject를 저장하고 있는 리스트 같은것을 넘겨주면 될까?
    CARMap에서 getState(좌표); 라는 메소드를 가지면 될꺼 같습니다. 이렇게 하면 주인공이나 몬스터나 맵이 어떠한 상태인지 알 수 있게 될 것이고 또한 이동 가능한지 등을 이 메소드 하나로 판별이 가능할 거라 생각합니다. -상욱
    무슨 말인지 잘 모르겠다. --인수
  • CARObject는 파라메터(체력, 스킬포인트, 힘 등등)을 가지고 있어야 한다.

CARHero

  • CARHeroCARObject를 상속받는다.
  • CARHero는 아이템을 장착할수 있다. 장착한 아이템에 따라 CARHero의 상태가 변한다.
  • CARHero는 성장해야 한다. CARHeroCARMonster를 죽이면 CARMonster의 경험치를 받아온다.
  • CARHero는 장착한 아이템에 스킬이 달려 있다면(정령에 의한) 그 스킬을 사용할 수 있다.
  • 인벤토리가 있어야 한다. 아이템을 주워서 둘 곳이 있어야 되기 때문이다.

CARMonster

  • 이동 페턴을 가져야 한다. 예를 들어 주인공을 향해 이동을 하게끔 만들거나 이동을 하되, 맞으면 도망가는 형식, 또 보면 무조건 도망가는 방식 등이 있겠다. 여기서 많은 문제가 생길꺼라 생각한다.
  • 떨어뜨리는 아이템 종류가 있어야 한다. 어떠한 확률로 어떤 아이템을 떨어뜨릴 것인지, 그리고 죽은 후 떨어뜨리는 것을 구현해야 한다.
  • 주인공에게 능력치를 얼만큼 줄지 생각을 해야 한다. 이를 계산하여 넘겨주기 위해 몬스터도 경험치를 가져 그것을 계산하는 방법도 있다. 이런 방법을 구현할려면 오브젝트에서 경험치를 처리하는 수도 있다.
  • CARMonster는 죽으면서 자신의 레벌과 경험치를 CARHero에게 넘겨준다. 그러면 CARHero는 자신의 레벨과 비교해서 경험치를 공식에 따라 올린다.

CARItem

  • CARItemCARHero가 가지고 있을수 있다.
    몬스터는 죽어서 아이템을 떨어뜨릴 수 있어야 하기 때문에 몬스터도 가져야 할꺼 같습니다. -상욱
    음.. 난 이렇게 생각했는데.. 몬스터가 아이템을 갖고 있는게 아니라, 죽으면서 자신의 레벨에 맞는 아이템을 랜덤하게 생성해서 떨구는 방식으로.. -인수

CAREquipment

  • CAREquipmentCARHero가 장착할수 있다.
  • CAREquipment는 정령을 잡아 놓을 수 있다.(정령을 장착? 좀 이상하군)
  • CAREquipment는 잡아 놓은 정령에 따라 상태가 변한다.
  • CAREquipment는 잡아 놓은 정령에 따라 스킬이 생길수도 있다.

CARInstanceItem

  • CARItem을 상속은 받지만 장착은 불가능한 아이템이다.
  • CARItem은 그것을 사용한 CARHero의 상태를 변화시켜 줄수 있다.
    생각을 해 보니까요. 이스처럼 전투가 이루어진다면 물약이 있다면 굉장히 게임이 쉬워지고 또 재미가 반감될꺼 같아요. 실제 요즘에 나오는 게임들 중에서 물약이 없는 게임들이 많이 나왔거든요. 물약 노가다가 게임을 반감시킨다는 이유에서요 -상욱
    그래서 이스에서는 물약을 하나로 제한해놨거든. 우리도 물약을 안 넣고, 그냥 정령으로 때워도 될거 같기도 하다. 또 컨트롤을 강요해서, 컨트롤만 잘하면 안 맞고도 플레이가 가능한 식으로 가도 될테고.. 그러면 이건 없애도 되는건가?

CARElemental

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-05-27 07:09:19
Processing time 0.2083 sec