μλ£κ΅¬μ‘° κ·Έκ±° κ± λΌμ΄λΈλ¬λ¦¬ μ°λ©΄ λλκ±° μλλ
Β -> λλΆλΆμ κ²½μ°μλ μ λ΅μ΄μ§λ§, μ€μ€λ‘ μ€κ³ν μ€ μμμΌ λ°μ ν μ μμ΅λλ€...
λͺ¨λ κ²½μ°μ λν΄ μΈμ£Ό λ§‘κΈΈμμλκ²λ μλκ³ , μμ μ€ν μ΄μ λ΄ λ§μμ λλ μμ μ΄ μλ€λ©΄,Β
μ§μ λ§λλ μ λ°μ μκ² μ£ ?
λ³Έλ‘ μΌλ‘ λ€μ΄κ°μ λ²μ¨ λ₯κΈ μ리μ¦λ 4νΈμ΄λ λμλ€μΌ....
μ½λ€κ° γ κ°μΌλ©΄ μμ½€νκ² λ€λ‘κ°κΈ° λλ¬μ£Όμλ©΄ λ©λλ€.
μλ£κ΅¬μ‘° μλ£κ΅¬μ‘° λ§μ λ§μ΄ λ€μ΄λ³΄λλ° μ΄κ² λμ§ λͺ¨λ₯΄λ μ¬λλ€λ μμ κ±°μ.Β
μμ΄λ‘λ Data Structure λΌκ³ ν¨.
맨 μ²μμ μ½λ©μ λ°°μΈλ λ³μλ₯Ό μ μΈν΄ λλλ°, μλ€λ€λ‘ μ½λ©μ νλ €λ©΄ νλ€λ€λκ±Έ λλμ μμ.
μ΄κ² λ§ μ μΈ ν΄λλ©΄ μ΄λ¦μ΄ λ§λ건μ§, νμ μ΄ λ§λ건μ§, μ λλ‘ μ΄κΈ°νλ λ건μ§, λ€λ₯Έ κ³³μμ μ¬μ©μ€μΈκ±΄ μλμ§...
κ·Έλ κ² λ€μ λ¨κ³κ° λλ©΄ λ°°μ°λκ² arrayμ. λ°λ‘ μ μλ int 10κ°λ₯Ό μ μΈνλ €λ©΄ int a1, a2, a3 ... a10; μ΄λ κ² μ μΈ νλλ°
μ΄μ λ int a[10]; μ΄λ κ² νλ©΄ λλ€ ? κ°κΏ νλκ² μ΄κ±°κ³ , μ΄λ κ² κΈ°λ³Έμ μΈ μλ£κ΅¬μ‘°λ₯Ό λ°°μ°κΈ° μμ νκ±°μ.
μλ§ νκ΅ μμ λ°°μ°λ©΄ λ³μ λ³ μλ£κ΅¬μ‘°λ₯Ό λ°°μ°λλ°, λ΄κ° λ©μ²νκ±΄μ§ λ§λ§ λ£κ³ ꡬννλΌκ³ νλ©΄ λ€μλ λͺ»ν κ±° κ°μ...
2-3-4 νΈλ¦¬ λΌλμ§... μ΄μ§ νΈλ¦¬ λ°°μ΄μ΄λΌλμ§... μ΄λ°κ±΄ νκ΅μμ λ°°μ°λ, μ± μΌλ‘ λ°°μ°λ νλ²μ―€μ λ³΄κ³ κ°λκ²λ μ’μλ―.
C++ μμλ STL μ΄λΌλ κ°μ©λ μλ£κ΅¬μ‘°κ° μκΈ° λλ¬Έμ λ§μ΄λ€ μ΄λ€κ³ νμ§. (κ·Όλ° μμΈλ‘ νμ μμ μμ΄λ€κ³ νλλΌ...)
κ·ΈλΌ λ³Έλ‘ μΌλ‘ λμ΄κ°μ μ‘μ 리μ€νΈμ λν΄ μ΄μΌκΈ° ν΄λλ¦Ό.
μ κ² λνλ 리μ€νΈλΒ νμλ λΆλ€λ μμν λ°, STLμ 리μ€νΈλ λ ννλ€ λ§νλ linked listλ μλ.
μ΄λ¦μ μ‘μ 리μ€νΈμ§λ§ ꡬνμ νμ κ°κΉκΈ° λλ¬Έ. κ·ΈλΌ μ‘μ νλΌκ³ νλ©΄ λμ§ μλ? λΌκ³ ν μ μμ§λ§
λ€λ€ μ‘μ 리μ€νΈλΌ λΆλ₯΄λλ° μ΄μ©κ±°...
skip listλ λλλΌ hash table μ²λΌ ꡬννλ 리μ€νΈλ μμ§λ§ κ·Έλ° μ λ€μ μμν μλ£κ΅¬μ‘°μ κ°κΉλ€λ©΄,
μ‘μ 리μ€νΈλ AI ꡬνμ μν κ°λ¨ν μλ£ κ΅¬μ‘°μ.
FSMμ λ°μ λ λ²μ ΌμΌλ‘ λ³Όμ μλλ°, FSMμΌλ‘ ꡬνκ°λ₯νλ©΄ Action Listλ‘λ ꡬνμ΄ κ°λ₯νλ€κ³ 보면 λ¨.
λ¬Όλ‘ μ§λ λ°©μλ°λΌ λͺ»ν μλ μμ§λ§ μλλ©΄ λκ²νλκ² νλ‘κ·Έλλ¨Έμ μλ¬΄λΌ λ³Όμ μμΌλ... (κ·Έλλ μλ°λ‘ Cλ³΄λ€ λΉ λ₯Έκ±° μ§κΈ° μ΄λ°κ±΄ μλ¨;)
μ‘μ 리μ€νΈμ μ‘μ μ΄λΌλ κ²λ€μ λ£μ΄μ£Όκ³ λμ,
λ§€ κ²μ 루νλ§λ€Β μμμ λ§κ² 리μ€νΈ μμ μλ μ‘μ μ μ λ°μ΄νΈν΄ μ£Όλκ² μ‘μ 리μ€νΈλΌ 보면 λ¨.
λμΆ© μμ μ±μμ νλ μ΄ λ¦¬μ€νΈ κ°μκ±°λ‘ μ΄ν΄νλ©΄ λ λ―.
κ·Έλμ μ£Όλ‘ μ°λ κ³³μΒ UI, AI, Behavior, Animation, Audio λ±λ±μ μΈμ μμ.
μ°κΈ°μ λΆνΈν건 κ³μ°μ΄ λ§μ΄ νμν ν¨μ€νμΈλ©κ°μ μκ³ λ¦¬μ¦λ€μ΄ μμ.
μ‘μ 리μ€νΈ μΈν°νμ΄μ€
void Update(float dt); // Β κ²μ 루νμμ λΆλ₯΄λ ν¨μ.
void PushBack(Action* action);
void PushFront(Action* action)Β
void Insert(Action* action);
void Remove(Action* action);
Action* Begin();
Action* End();
bool Size() const;
float TimeLeft() const;
λ°μ΄ν°
float duration;
float time;
Action** actions. //벑ν°, 리μ€νΈ λ±λ± μ°κ³ μΆμ μλ£κ΅¬μ‘°λ‘ λ°κΏλ λ¨. μλλ©΄ κ± μ΄λ κ² λμ ν λΉν΄λ λκ³ .
μ‘μ μΈν°νμ΄μ€
Update(float dt); //μ‘μ 리μ€νΈ μ λ°μ΄νΈμμ μ½ νλ ν¨μ
OnStart(); //μμν λ νλ² λΆλ₯΄λ ν¨μ
OnEnd(); //λλ λ νλ² λΆλ¦.
bool IsFin(); //λλμ§ μ²΄ν¬
float Elapsed(); //κ²½κ³Ό μκ°
float Duration();//μ‘μ μκ°
ActionList* Owner; //리μ€νΈ
λμΆ© μ΄λ° ꡬ쑰λ₯Ό νκ³ μλ μλ£κ΅¬μ‘°μ. μ‘μ μ μμλ°λ 컀μ€ν μ‘μ λ€μ λ§λ€μ΄λκ³ ,
κ±λ€λ€μ μ‘μ 리μ€νΈμ λ£μΌλ©΄ λ©λλ€.
μΈλΆ ꡬνμ κ°λ¨ν μλ£κ΅¬μ‘°λ μμμ νμ€μ μμλ― μν¬μ...
μ¬κΈ°μ laneμ΄λ blocking, loopΒ λ±λ±μ μΆκ°μ μΈ λ©μλλ₯Ό λ£μ΄μ λ λ€μνκ² μ¬μ©ν μ μμ.
μΆκ°μ μΌλ‘ μμ§μ μλ λ©μΈμ§ μμ€ν μ΄λ μ°λμν€λ©΄ λλ¨ν ν¨μ¨μ μΌλ‘ μ¬μ©ν μ μμ.
Q. μ ν¬μΈν°μ°λ κ±°μ§κ°μ μΈμ΄ μ°μ£ ?
A. γ γ ν©λλ€. λ°°μμ΄ μ§§μμ C/C++ λ¬Έλ² μ‘°κΈ λ°μ λͺ°λΌμ...
Q. μ μ€λ§νΈ ν¬μΈν° μμ°μ£ ?
A. γ γ ν©λλ€ 22. κ± λμΆ© μΈν°νμ΄μ€λ§ μ°κ³ μΆμ΄μ κ·Έλ¬μλλ€...
λκΈ 0