예제 #1
0
        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;
              }
            }
              }
        }
예제 #2
0
        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]);
            }
        }
예제 #3
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;
            }
              }
        }