У меня есть 3 различных класса: Entity, Control и Environment
Внутри класса Entity у меня есть переменная Control:
readonly Control m_Control
Внутри конструктора мой класс Entity, я создаю экземпляр класса Control. В классе Entity есть метод Update, который проверяет состояние перечисления в классе Control:
public class Entity
{
public float Rotate {get; private set;}
readonly Control m_Control
public Entity(float rot)
{
Rotate = rot;
m_control = new Control();
}
public void Update(float time)
{
switch (m_control.Rotating())
{
case Control.Rotator.Right:
Rotate += time * 1.5f;
break;
case Control.Rotator.Left:
Rotate -= time * 1.5f;
break;
case Control.Rotator.Still:
break;
default:
break;
}
}
}
Класс управления:
public class Control
{
private Random rnd = new Random();
private int _randomTurn;
public enum Rotator
{
Still,
Right,
Left
}
public Control()
{
TimerSetup(); // Initialize timer for Entity
}
public Rotator Rotating()
{
switch(_randomTurn)
{
case 1:
return Rotator.Right;
case 2:
return Rotator.Left;
default:
return Rotator.Still;
}
}
private void TimerSetup()
{
DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += new EventHandler(GameTickTimer_Tick);
dispatcherTimer.Interval = new TimeSpan(0, 0, 2);
dispatcherTimer.Start();
}
private void GameTickTimer_Tick(object sender, EventArgs e)
{
RandomTurn();
}
private void RandomTurn()
{
_randomTurn = rnd.Next(1, 4);
}
}
В классе Environment
я Реализую каждую сущность. Поэтому у меня будет 2 экземпляра Entity
.
public class Environment
{
readonly Entity m_entity;
readonly Entity m_entity2;
public Environment()
{
m_entity = new Entity(90.0f);
m_entity2 = new Entity(180.0f);
}
public void Update(float time)
{
m_entity.Update(time);
m_entity2.Update(time);
}
}
Моя проблема в том, что когда я создаю несколько сущностей, каждая из этих сущностей делает одно и то же.
Например, класс Control имеет функцию поворота, но каждый созданный объект перемещается точно таким же образом в одно и то же время.
Что было бы для меня лучшим способом go об этом, чтобы каждый созданный объект действовал независимо друг от друга?