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