public override void Process(ISimulator simulator, double tick) { var velocity = simulator.GetComponent<VelocityComponent>(); foreach (var handle in simulator.GetHandlesForProcessor(Aspect)) { if (Console.KeyAvailable) { var key = Console.ReadKey(true); switch (key.Key) { case ConsoleKey.UpArrow: velocity.MoveByX[handle.Index] = 1; break; case ConsoleKey.DownArrow: velocity.MoveByX[handle.Index] = -1; break; case ConsoleKey.LeftArrow: velocity.MoveByY[handle.Index] = -1; break; case ConsoleKey.RightArrow: velocity.MoveByY[handle.Index] = 1; break; } } } }
public override void Process(ISimulator simulator, double tick) { var transformComponent = simulator.GetComponent<TransformComponent>(); var renderComponent = simulator.GetComponent<RenderComponent>(); foreach (var handle in simulator.GetHandlesForProcessor(Aspect)) { Console.BackgroundColor = renderComponent.Color[handle.Index]; Console.Clear(); var x = transformComponent.X[handle.Index]; var y = transformComponent.Y[handle.Index]; Console.SetCursorPosition(x, y); Console.Write(renderComponent.Text[handle.Index]); } }
public override void Process(ISimulator simulator, double tick) { var transform = simulator.GetComponent<TransformComponent>(); var velocity = simulator.GetComponent<VelocityComponent>(); foreach (var handle in simulator.GetHandlesForProcessor(Aspect)) { if (velocity.MoveByX[handle.Index] != 0) { transform.X[handle.Index] += velocity.MoveByX[handle.Index]; velocity.MoveByX[handle.Index] = 0; } if (velocity.MoveByY[handle.Index] != 0) { transform.Y[handle.Index] += velocity.MoveByY[handle.Index]; velocity.MoveByY[handle.Index] = 0; } } }