C#/수업내용
03/22 델리게이트 연습 7
박준희
2021. 3. 22. 17:00
Program.cs
using System;
namespace Study07
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Program");
new App();
}
}
}
App.cs
using System;
namespace Study07
{
public class App
{
//생성자
public App()
{
Goblin goblin = new Goblin();
goblin.onIdle = OnIdle;
goblin.Attack();
}
public void OnIdle(Goblin goblin)
{
goblin.ChangeState(eState.Idle);
Console.WriteLine("Idle");
}
}
}
Goblin.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Study07
{
public delegate void OnIdle(Goblin goblin);
public enum eState
{
Idle, Attack
}
public class Goblin
{
private eState state;
public OnIdle onIdle;
public Goblin()
{
Console.WriteLine("Idle");
}
public void ChangeState(eState state)
{
this.state = state;
}
public void Attack()
{
ChangeState(eState.Attack);
for (int i = 0; i <= 5; i++)
{
Thread.Sleep(500);
Console.WriteLine("goblin_attack_{0: 00}", i);
}
this.onIdle(this);
}
}
}