Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

ProjectAR/Design

From ZeroWiki

생각

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

Thread

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

Behavior

CARObject

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

CARHero

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

CARMonster

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

CARItem

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

CAREquipment

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

CARInstanceItem

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

CARElemental


ProjectAR