public override void Process(ISimulator simulator, double tick) { foreach (var handle in simulator.GetHandlesForProcessor(Aspect)) { if(Console.KeyAvailable) { var key = Console.ReadKey(true); switch(key.Key) { case ConsoleKey.UpArrow: VelocityComponent.MoveByX[handle.Index] = 1; break; case ConsoleKey.DownArrow: VelocityComponent.MoveByX[handle.Index] = -1; break; case ConsoleKey.LeftArrow: VelocityComponent.MoveByY[handle.Index] = -1; break; case ConsoleKey.RightArrow: VelocityComponent.MoveByY[handle.Index] = 1; break; } } } }
public override void Process(ISimulator simulator, double tick) { 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) { foreach(var handle in simulator.GetHandlesForProcessor(Aspect)) { if(VelocityComponent.MoveByX[handle.Index] != 0) { TransformComponent.X[handle.Index] += VelocityComponent.MoveByX[handle.Index]; VelocityComponent.MoveByX[handle.Index] = 0; } if (VelocityComponent.MoveByY[handle.Index] != 0) { TransformComponent.Y[handle.Index] += VelocityComponent.MoveByY[handle.Index]; VelocityComponent.MoveByY[handle.Index] = 0; } } }
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; } } }