μμκ³Ό ꡬμ±μ μ½κ° λ€λ₯΄μ§λ§ λΉμ·ν μν μ νλ€κ³ 보면 λ¨.
λλ€ μΆμνλ₯Ό νλ©΄μ μκΈ΄ κ°λ μ΄κ³ , κ²μ λ§λ€λ μ€μνκ² μ΄μ©λ¨.
μμλ§ μ¨λΌ, ꡬμ±λ§ μ¨λΌ μ΄λ°κ±΄ μλμ§λ§ μ μ νκ² μ΄μ©νλκ² μ€μνλ€κ³ μκ°ν¨.
μλ μλ λ΄κ° μ²μμΌλ‘ C++ λ°°μ μλ λ³Έ μμμ κ΄ν μμ μ.
struct point2
{Β
Β float x;
Β float y;
}
stuct point3
{
Β float x;
Β float y;
Β float z;
}
μ΄λ κ² 2μ°¨μμ λν μ ν΄λμ€μ, 3μ°¨μμ λν μ ν΄λμ€μμ.Β
λ λ€λ₯΄κ² ꡬννλ λ°©λ²μΒ
struct point3_composite
{
Β point2 xy;
Β float z;
}
μ΄λ κ² κ΅¬νν¨.
첫λ²μ§Έ λ°©μμ μλ‘ μ°κ΄μ΄ νλλ μλ λ³κ°μ ν΄λμ€ 2κ°κ³ ,Β
2λ²μ§Έ λ°©μμ μ»΄ν¬μ§μ μΌλ‘ ꡬνν 3μ°¨μ μ ν΄λμ€μ.
μ¬κΈ°μ μ겨λ κ°λ μ΄ μμμ΄λ κ°λ μ.Β
μμμ μ¨μ ꡬνμ νλ€λ©΄Β μ΄λ κ² κ΅¬νμ΄ λ μ μμ.
struct point3_inherit : public point 2
{
Β float z;
}
C++ λ΄λΆμμ λμκ°λ κ°λ μ΄ μ€μνκ² μλλ νλ± λμ΄κ°κ³
μμκ³Ό μ»΄ν¬μ§μ μ κ°λ¨ν μ°¨μ΄λ νλμ.
μ»΄ν¬μ§μ μ λ΄κ° κ°μ§ μ·, μκ³, ν΄λν° κ°μ κ°μ§μ μλκ²μ΄κ³ ,
μμμ λ΄κ° μ¬λμ΄λ€, λλ¬Όμ΄λ€, λΌλ XX μ΄λ€μ κ°λ μ.
κ·Έλμ UMLμ 보면 μμμ is a λΌλ κ°ν λ¬Άμμ΄κ³ , μ»΄ν¬μ§μ μ has a λΌλ μ½ν λ¬Άμμ.
κΈ°λ³Έμ μΈ κ°λ μ μ΄λ κ³ , κ²μμμ§μΌλ‘ λλμκ°λ©΄ μμκ³Ό μ»΄ν¬μ§μ μ μ΄λ°μμΌλ‘ ꡬνλ¨.
κ²μμμ μ λ§μ κ°μ²΄λ€μ΄ μλλ°, ꡬνν΄μΌν κ°μ²΄μ€μ
μ’λΉλΌλ κ°μ²΄μ λ±νμ΄λ¬λΌλ κ°μ²΄, μΈκ°μ΄λΌλ κ°μ²΄ μ΄λ°μμΌλ‘ μλ€κ³ νλ©΄
μ’λΉμ λ±νμ΄μ΄λ λͺ¬μ€ν°λκΉ λͺ¬μ€ν°λ ν΄λμ€λ₯Ό μμνκ³ , μΈκ°μ κ·Έλ₯ μΈκ° ν΄λμ€λ₯Ό μμνλ©΄ λ¨.
κ°λ¨νκ² κ·Έ κ°λ μ κ·Έλ €λ³΄λ©΄ μ΄λ κ² λ¨.
γ γ μ΄λ κ² μΈκ°κ³Ό λͺ¬μ€ν°λ λͺ¨λ μμ§μ΄λκΉ μμ§μ΄λκ±Έ μμλ°κ³ ,Β
μ’λΉλ λͺ¬μ€ν°λ₯Ό μμ λ°κ³ , λ±νμ΄μ΄λ λͺ¬μ€ν°λ₯Ό μμλ°μμ.
μ΄μ μκ°ν΄λ³΄λ μΈκ°μ΄ ν μ’ λ₯λ§ μλκ² μλκ³ , νλ μ΄μ΄λ μκ³ , κ·Έλ₯ AIκ° μμ§μ΄λ NPCλ μλκ±°μ.
κ°λ¨νκ² μΆκ°ν΄μ, μΈκ°μ μμλ°λ νλ μ΄μ΄, NPC ν΄λμ€λ₯Ό λ§λ€λ©΄ λλκ±°μ.
κ·Έλ°λ° μ¬κΈ°μ λμμ΄λ(κΈ°νμ)κ° μ°λ¦¬ λ무 μμ§μ΄λ λͺ¬μ€ν°λ§ μλλ°, κ±°λκ±°λ―ΈλΌλμ§,Β
μλ λ―Έλ―Ήκ°μ λͺ¬μ€ν°λ₯Ό μΆκ°ν΄λ³ΌκΉ? λΌκ³ νλκ±°μ.
??? μ΄κ² 무μ¨μ리 ??? μ΄λ―Έ λͺ¬μ€ν°λΌλ κ°μ²΄λ μμ§μ΄λ μ μ νμ μ€κ³λ ν΄λμ€μΈλ°,
μμ§μ΄μ§ μλ λͺ¬μ€ν°λ₯Ό λ£μκ³ ?Β
κ·ΈλΌ λ μμ§ κΉμ§λ OK νκ³ λμ΄κ°μ μμ΄. μλλ©΄, μμ§μ ν΄λμ€μμ κ·Έ κ²½μ°μ 쑰건문μ κ±Έκ³
μμμ§μ΄κ² νλ©΄ μ€κ³μμΌλ‘ κΊΌλ¦Όμ§ν΄λ, κ·Έλ₯ λ³μΌ μμ΄ λμ΄κ°μ μμΌλκΉ.
μ΄μ μΌμΆ νλ‘ν νμ λ μμ±μ΄ λμκ³ , κ²μμ λλ €λ³΄λ μ¬λ°λκ²μ΄ κ°λ°μ μ§νν΄λ λ¬΄λ¦¬κ° μκ² λ€ μΆμ΄μ
νλ‘κ·Έλλ¨Έμ μν°μ€νΈ, λμμ΄λ λͺ¨λκ° μ΄μ¬ν μμ μ νμ΄.
κ·Έλ¦¬κ³ μ΄μ μνλ₯Ό μ§λ κ²μμ μ’λ νμ₯ νκ³ μ νλ μνμ λλ¬νλ€κ³ 보μ.
NPC μ€μ μκ΅°μ νν΄μ£Όλ μ¬μ , ν±νΉν΄μ£Όλ μ±κΈ°μ¬ λ±λ±μ΄ μΆκ° λμκ³ λ κΈ°νλ±λ± μ¬λ¬κ°μ§κ° μκ²Όμ΄.
κ·Έλμ μ΄λ°μμΌλ‘ ν΄λμ€ μμμ΄ μ 리 λμ΄ μμ.
κΈ°μ‘΄ μν λ²μ Ό κΉμ§λ μ΄λ°μμΌλ‘ κ²μμ ꡬννκ³ ,Β
μ΄μ νμμμ μΆκ°μ μΈ κΈ°νμ ꡬμμ€μΈ λ¨κ³μΈκ±°μ.
νμλ€Β λͺ¨λκ° μ λμ, μμ΄λμ΄λ₯Ό μμλ΄μ μ΄λ° μ΄λ° μμ΄λμ΄κ° λμμ΄.
리μΉλΌλμ§, λλμΈκ° μ΄λΌλμ§ λ¦¬μΉλ μ¬μ μ²λΌ λͺ¬μ€ν° μ μ₯μμ νμ ν΄μ£Όκ³ ,
λλμΈκ° μκ΅°μΈλ°, μΈκ°μ΄ μλ λλ λͺ¨μ΅μΌλ‘ λ€λμ μλκ±°κ³
κ°μκΈ° ν΄λμ€μμ λΉ¨κ°λΆμ΄ μκΈ΄κ±°μ.
μ¬μ μ νλ§μ΄λ κΈ°λ₯μ μμ§μμΌλ‘ μ¬λ¦°λ€λ©΄, νμ¬μ μμ 체κ³λ‘λ
λͺ¬μ€ν° μ€μ ꡬνμ΄ κ°λ₯ν¨.
λλμΈκ°λ λͺ¬μ€ν°λ ν΄λμ€λ₯Ό μμ§μμΌλ‘ μ¬λ¦¬κ³ , μλμ μλ‘μ΄
μκ΅° ν΄λμ€μ μ κ΅° ν΄λμ€λ₯Ό λ£λλ€λ©΄ ꡬνμ΄ κ°λ₯ν΄μ§κ±°μ§.
λ¬Όλ‘ μ΄λ κ² ν΄λμ€λ₯Ό λ°κΎΈλ©΄ νλ‘κ·Έλλ¨Έλ λ°€μμ μμ μ ν΄μΌνκ³ ,
νΉμλ μ΄λ¦μ΄ κ²Ήμ³λ²λ¦¬λ©΄ μμνμ§ λͺ»ν λ²κ·Έκ° νμ΄λμ¬μλ μλκ² μ΄λ° μνμ.
μλλ©΄ λ€μ€μμμ ν΅ν΄ μΈκ°μ€μ μκ΅° ν΄λμ€λ₯Ό μΆκ°λ‘ μμλ°κ³ ,
Β λͺ¬μ€ν°μ€μ μκ΅° ν΄λμ€λ₯Ό λ°μ λͺ¬μ€ν°, μ κ΅° ν΄λμ€λ₯Ό λ°μ λͺ¬μ€ν° κΈ°ν λ±λ±μ΄ λκ³ ,
νλ§ κΈ°λ₯λ μλ‘μ΄ ν΄λμ€λ₯Ό λ§λ νμ μ¬μ ν΄λμ€μ λ¦¬μΉ ν΄λμ€μ κ°κ° λ€μ€μμμ ν΄μ£Όλκ±°μ§.
???
λκ° λ§μ΄ κΌ¬μ΄κΈ° μμνλ€λκ±Έ λλμμλλ°,Β μμμ κ°μ₯ ν° λ¨μ μ΄ λ°λ‘ μ΄κ±°μ.
μμμ λ§μ΄ λ°κ±°λ, 볡μ‘νκ² λ°λ κ²½μ°μ ν΄λμ€ UMLμ κ·Έλ €κ°λ©΄μ νμΈν΄μΌν μ λλ‘ λ³΅μ‘ν΄μ§κ³ ,
λ μκΈ°μΉ λͺ»ν λ²κ·Έλ, μΆνμ κΈ°νμ΄ λ°λμμλ μμ νκΈ° κ³€λνλ€λ λ¨μ μ΄ μμ.
μ΄λ€ λμμΈλ μΆκ°λκ³ , μ¬λΌμ§κ³ , μμ λλ€ λ³΄λ©΄μ μ²μμ μκ°νλ κ²κ³Όλ λ¬λΌμ§λκ² νμ€μΈκ±°μ§;;
κ·Έλμ λ€μ λμ보λκ² μ»΄ν¬μ§μ μ κ°λ μ.
μ’λΉλΌλ ν΄λμ€ λμ μ, μ’λΉλΌλ μ€λΈμ νΈλ,
μμ§μ μ»΄ν¬λνΈλ₯Ό κ°μ§κ³ μκ³ ,
μ’λΉ κΈ°λ₯ μ»΄ν¬λνΈλ₯Ό κ°μ§κ³ μμΌλ©΄Β
μ’λΉκ° λλκ±°μ§.
λ±νμ΄μ΄λ μμ§μμ κ°μ§κ³ μκ³ , λ±νμ΄μ΄ κΈ°λ₯μ κ°μ§κ³ μμΌλ©΄Β
λ±νμ΄μ΄ μΈκ±°κ³ ,Β
...
λͺ¨λ μμ 체κ³μμ λ§λ¨μ μνλ κ²°κ³Όλ¬Όλ€μ ꡬμ±μμλ€μ λΆν΄ννμ
νλνλ 쑰립νλ―μ΄, μΆκ°ν΄μ£Όλ©΄ κ²°κ³Όλ¬Όλ€μ΄ νμ΄ λμ€λκ±°μ.
μ΄κ² κΈ°μ‘΄μ μλ μ»΄ν¬μ§μ κ°λ μ΄κ³ , μμ¦ λμ€λ κ²μμμ§λ€μ μ£λ€ μ»΄ν¬λνΈ λ² μ΄μ€ κ²μμμ§μΈ μ΄μ κ° μ¬κΈ°μ μλκ±°μ.
μ΄μ λ λ μ΄μ κΈ°ννλλ° μμμ κ³ λ €ν νμκ° μκ³ , κ·Έλ₯ κ΅¬μ± μμλ€μ 쑰립νλ©΄ λλκΉ.
κ·ΈλΌ μ΄λ κ² κ΅¬νμ΄ κ°λ₯ν¨.
ν¨μ¬ λ 보기 νΈνκ³ , μλ‘μ΄ κ°λ μ μΆκ°νκΈ° νΈν΄μ§κ² μ»΄ν¬μ§μ μΌλ‘ ꡬνν κ²μμμ§μ.
κ·Έλ¦¬κ³ κ²°λ‘ μ μΌλ‘ μ΄λ κ² κ΅¬νμ ν΄λλ©΄ ν΄λμ€λ₯Ό μμλ°μ λ§λλ κ²½μ°μΒ
μΆκ°λ‘ μ½λ©ν΄μ μ»΄νμΌμ μλ‘ ν΄μΌνλ κ²½μ°κ° λλΆλΆ μ΄μ§λ§,
μ΄λ°μμΌλ‘ μ λ ¬λμ΄μλ κ²½μ°λΌλ©΄ μ μ₯λμ΄μλ μ 보λ₯Ό λ‘λ νκΈ°λ§ ν΄λ
κ°κ°μ μ»΄ν¬λνΈλ₯Ό μ‘°ν©νλ건 μμ§μ΄ μμμ ν μ μκ² λλκ±°μ.
κ°μκΈ° μμ μ΄μΌκΈ°κ° λμμ νλ§λ ν΄λ΄€μ.
κ°μΆ
μ κ±Έ μ»΄ν¬μ§μ μ΄λΌ λΆλ₯΄λκ΅°
λ λ μ¬μ λΆλ¦°λ€
μ μκ³ κ³μλ€μ. μ΄λ°μμΌλ‘ μμ νλκ² μ λν°μμ μ§ν₯νλ κ°μ²΄μ§ν₯ λ°©μμ λλ€. ν λ² μ»΄ν¬λνΈλ€μ λ§λ€μ΄ λμΌλ©΄, κΈ°νμκ° νλ‘κ·Έλλ°μ λͺ°λΌλ κ°κ°μ μ»΄ν¬λνΈλ₯Ό μ‘°ν©ν΄μ μλ‘μ΄ μΊλ¦ν°λ λͺ¬μ€ν°λ€μ λ§λ€μ΄ λΌ μ μλκ±°μ£ .
μμμ κ²½μ°μλ μ μΊμ€ν κ°λ μ μ λͺ¨λ₯΄μ λ€λ©΄, μ¬λ¬λͺ¨λ‘ μλ£κ΅¬μ‘°λ‘ λ€λ£° λ, μλ¬μ¬νμ΄ λ§μ΄ λ°μνκ² λλ, μ΄λ³΄ νλ‘κ·Έλλ¨ΈλΆλ€μκ² μμμ μ¬μ©νμ§ λ§λΌκ³ μ‘°μΈνλ κ²λ μ ν¨ν μ‘°μΈμ΄λΌκ³ λ μκ°λλ€μ :)
μ λν°λ μΈλ¦¬μΌμ΄λ λλΆλΆμ μμ©μμ§μ μ»΄ν¬μ§μ μΌλ‘ λ§λλ κ²½μ°κ° λ§μ. μλ μμ¦μ λνμ νλ‘μ νΈλ λ€ μ»΄ν¬μ§μ μΌλ‘ λ§λλ κ²½μ°κ° λ§μλ°, μμ°μ±μμ μλ±ν μ¬λΌκ°κΈ° λλ¬Έμ.
μ΄κ±° μ΄ν΄νλ©΄ μ λν° λ§μ§κΈ° μ‘΄λμ¬μμ§ λλ μ΄κ±Έ νκ΅μμ μ λλ‘ μλ°°μμ μ΄ν΄νκΈ°νλ€μμμ
κ·Έλ μ§λ§, μ΄λ³΄λΆλ€μ κ²½μ°, upcasting/virtual/abstract κ°λ μ μ λλ‘ μ΄ν΄νμ§ λͺ»ν΄μ μ€νλ € λμ€λλ κ²½μ°λ μ’ μ’ λ΄μμ μ¬λ ₯μ΄ μλλλ° μ’λ€κ³ μ΅μ§λ‘ μ¬μ©νμ€ νμλ μμΌλ, μ λ¬Έμ λΆλ€μ μκΈ° μλκ» νλ¨νμλ©΄ μ’μκΊΌκ°λ€μ.
ν¨κ»λ³΄λ©΄ μ’μ μ°Έκ³ λ¬Έμ : λμμΈν¨ν΄,μ»΄ν¬μ§νΈν¨ν΄,μ€νΈλν°μ§ν¨ν΄
λκΈ μΈμ μ§μ λ° γ γ·γ γ·
μ μ΄κ±° νμ νκ°λ Έλλ° κ³ λ§μ΅λλ€
μ λ° κΈμνμ§ λ§μμ€ λκ³ λκ³ λ΄μΌν κ±° κ°μ
μ΄κ±° λ¬Όμ΄λ³΄λμ λ€ μ΄ λ§ν¬ μ€μΌκ² λ€ μ΄μ γ γ
μ»΄ν¬λνΈ μ»΄ν¬μ§μ¨
μ λν°λ c#μ΄λ Actionμ μ°λ©΄ νΈν΄μ. Actionμ μ»΄ν¬μ§μ λ³΄λ€ μ’λ μΈλΆνλμ λ©μλ λ¨μλ‘ λͺ¨μμ€ μ μκΈ° λλ¬Έμ λ리μ μμ΄ λ©μλλ₯Ό νΈμΆν μ μλ κ²λλ€. λ¬Όλ‘ μ΄λ¬λ©΄ κ΅¬μ‘°κ° κΈ°μ‘΄κ³Ό λ§μ΄ λ¬λΌμ§λλ°, μ λμ΄λ©΄ μ λ, 건물μ΄λ©΄ 건물μμ μ¬μ©λλ λ©μλλ₯Ό λ€ λ°λ‘ μ¬μ μ λͺ¨μλκ³ μ λμ΄ μμ±λ λμ κΈ°λ³Έμ μΈ λ©μλλ₯Ό μ¬μ μμ μ§μ λ λ²νΈλ‘ λΆλ¬μμ λ°λ λ°©μμ΄μμ.
μλ₯Ό λ€μ΄ μΈκ°μ λ§μ°μ€ ν΄λ¦νλ©΄ μλ νκ³ μΈμ¬νμ§λ§ λ Έμμ ν΄λ¦νλ©΄ λλ§κ°λ€κ³ ν΄λ³΄μ£ . μμͺ½λ€ Action clickedλ‘ μ€μ ν΄λλ©΄ λμ. κ·Έλ¦¬κ³ μΈκ°μκ²λ μλ λ©μλλ₯Ό clickedμ λ£μ΄μ£Όκ³ λ Έμμ λλ§ λ©μλλ₯Ό clickedμ λ£μ΄μ£Όλ©΄ ꡬνμ΄ λμ. μ λν°λ μ»΄ν¬λνΈλ§λ€ μ΄λ¦μ΄ λ€ λ€λ₯΄κ² λμ΄μμ΄μ μλ λ©μλμ λλ§ λ©μλλ₯Ό νλ μ½λ©μμ νλλ‘ λΆλ¬μ€κΈ° νλ λ°, Actionμ μ¨μ£Όλ©΄ κ·Έλ₯ κ·Έλ΄ κ³ λ―Ό μμ΄ μ½μ΅λγ γ·.
κ·Όλ° Actionμ λ°μμ£Όλ건 νλ μ‘°μ¬ν΄μΌ νλκ², μ΄λκΉμ§λ κ·Έ λ©μλλ λ£μ΄μ£Όλ ν΄λμ€μ λ©μλλΌλ μ¬μ€μ λλ€. μ¦, λΉλ €μ£Όλ κ²λ μλκ³ μ λ§ μλ ν΄λμ€μ λ©μλλ₯Ό νΈμΆνλ κ²μ΄κΈ° λλ¬Έμ μ λν°μμμ²λΌ transform.posion = new Vector(x,y,z)κ³Ό κ°μ΄ λ£μ΄μ£Όλ©΄ μλ μ¬μ ν΄λμ€μ μμΉκ° λ³νλμ. μ΄κ±΄ μ‘°μ¬νμ μΌ ν©λλ€. κ·Έλ¦¬κ³ λ©μλλ₯Ό λ°λ‘ μΈμ€ν΄μ€ν΄μ£Όλκ² μλλΌ μλ μλκ±Έ νΈμΆλ§ ν΄μ£Όλ κ²μ΄κΈ° λλ¬Έμ λ©ν° μ€λ λμμλ μ₯μ½μ΄μ£ .
λ¬λ€ λ¬μ
κ·Όλ° μ»΄ν¬μ§μ μκΈ° λ£κ³ μμΌλ μΈν°νμ΄μ€λ λΉμ·ν λλμΈλ―. IMove, IZombie μ΄λ°...