示例#1
0
    private void OnTriggerEnter2D(Collider2D collider)
    {
        if (collider.tag == "Player")
        {
            controller = collider.GetComponent <PlayerController>();
            move       = collider.GetComponent <MoveXCommand>();
            controller.CanInputHandle = false;
            enterDistance             = transform.position - controller.transform.position;
            enterDistance.x           = Mathf.Sign(enterDistance.x);
            enterDistance.y           = Mathf.Sign(enterDistance.y);

            move.speed = enterDistance.x * controller.maxSpeed;
        }
    }
    // Start is called before the first frame update
    void Start()
    {
        attackCommand = GetComponent <PlayerAttack>();

        rb   = GetComponent <Rigidbody2D>();
        anim = GetComponent <Animator>();

        groundCheck = GetComponent <GroundCheck>();


        //jumpCommand = new JumpCommand(rb, jumpHeight);
        jumpCommand = GetComponent <JumpCommand>();
        //lampCommand = GetComponent<LampCommand>();
        //используем Input.GetAxis для оси Х. метод возвращает значение оси в пределах от -1 до 1.
        //при стандартных настройках проекта
        //-1 возвращается при нажатии на клавиатуре стрелки влево (или клавиши А),
        //1 возвращается при нажатии на клавиатуре стрелки вправо (или клавиши D)
        motion      = GetComponent <MoveXCommand>();
        lampCommand = GetComponent <LampCommand>();


        //lampButtonIsPressed = () => Input.GetKeyDown(lampButton);
        lampButtonIsPressed = () => false;


        PickUpEvent.Action += (s) =>
        {
            switch (s)
            {
            case "lamp":
                lampButtonIsPressed = () => Input.GetKeyDown(lampButton);
                break;
            }
        };

        transform.GetComponent <PlayerAttack>().attacker.AttackTrigger = () => Input.GetKeyUp(KeyCode.Z);
    }
示例#3
0
        public IOsbSpriteCommand ParseCommandLine(string line, int lineNumber, CommandPosition initialPosition)
        {
            var values = line.Trim().Split(',');

            if (string.IsNullOrEmpty(values[3]))
            {
                values[3] = values[2];
            }

            var commandType = values[0];
            var easing      = (OsbEasing)int.Parse(values[1]);
            var startTime   = double.Parse(values[2], CultureInfo.InvariantCulture);
            var endTime     = double.Parse(values[3], CultureInfo.InvariantCulture);

            switch (commandType)
            {
            case "F":
            {
                var startValue = double.Parse(values[4], CultureInfo.InvariantCulture);
                var endValue   = values.Length > 5 ? double.Parse(values[5], CultureInfo.InvariantCulture) : startValue;
                return(new FadeCommand()
                    {
                        Easing = easing,
                        StartTime = startTime,
                        EndTime = endTime,
                        StartValue = startValue,
                        EndValue = endValue,
                        Line = lineNumber,
                    });
            }

            case "S":
            {
                var startValue = double.Parse(values[4], CultureInfo.InvariantCulture);
                var endValue   = values.Length > 5 ? double.Parse(values[5], CultureInfo.InvariantCulture) : startValue;
                return(new ScaleCommand()
                    {
                        Easing = easing,
                        StartTime = startTime,
                        EndTime = endTime,
                        StartValue = startValue,
                        EndValue = endValue,
                        Line = lineNumber,
                    });
            }

            case "V":
            {
                var startX = double.Parse(values[4], CultureInfo.InvariantCulture);
                var startY = double.Parse(values[5], CultureInfo.InvariantCulture);
                var endX   = values.Length > 6 ? double.Parse(values[6], CultureInfo.InvariantCulture) : startX;
                var endY   = values.Length > 7 ? double.Parse(values[7], CultureInfo.InvariantCulture) : startY;
                return(new VectorScaleCommand()
                    {
                        Easing = easing,
                        StartTime = startTime,
                        EndTime = endTime,
                        StartValue = new CommandScale()
                        {
                            X = startX, Y = startY
                        },
                        EndValue = new CommandScale()
                        {
                            X = endX, Y = endY
                        },
                        Line = lineNumber,
                    });
            }

            case "R":
            {
                var startValue = double.Parse(values[4], CultureInfo.InvariantCulture);
                var endValue   = values.Length > 5 ? double.Parse(values[5], CultureInfo.InvariantCulture) : startValue;
                return(new RotateCommand()
                    {
                        Easing = easing,
                        StartTime = startTime,
                        EndTime = endTime,
                        StartValue = startValue,
                        EndValue = endValue,
                        Line = lineNumber,
                    });
            }

            case "M":
            {
                var startX = double.Parse(values[4], CultureInfo.InvariantCulture);
                var startY = double.Parse(values[5], CultureInfo.InvariantCulture);
                var endX   = values.Length > 6 ? double.Parse(values[6], CultureInfo.InvariantCulture) : startX;
                var endY   = values.Length > 7 ? double.Parse(values[7], CultureInfo.InvariantCulture) : startY;

                var m = new MoveCommand()
                {
                    Easing     = easing,
                    StartTime  = startTime,
                    EndTime    = endTime,
                    StartValue = new CommandPosition()
                    {
                        X = startX, Y = startY
                    },
                    EndValue = new CommandPosition()
                    {
                        X = endX, Y = endY
                    },
                    Line = lineNumber,
                };
                m.SetDefaultValue(initialPosition);
                return(m);
            }

            case "MX":
            {
                var startValue = double.Parse(values[4], CultureInfo.InvariantCulture);
                var endValue   = values.Length > 5 ? double.Parse(values[5], CultureInfo.InvariantCulture) : startValue;
                var mx         = new MoveXCommand()
                {
                    Easing     = easing,
                    StartTime  = startTime,
                    EndTime    = endTime,
                    StartValue = startValue,
                    EndValue   = endValue,
                    Line       = lineNumber,
                };
                mx.SetDefaultValue(initialPosition);
                return(mx);
            }

            case "MY":
            {
                var startValue = double.Parse(values[4], CultureInfo.InvariantCulture);
                var endValue   = values.Length > 5 ? double.Parse(values[5], CultureInfo.InvariantCulture) : startValue;
                var my         = new MoveYCommand()
                {
                    Easing     = easing,
                    StartTime  = startTime,
                    EndTime    = endTime,
                    StartValue = startValue,
                    EndValue   = endValue,
                    Line       = lineNumber,
                };
                my.SetDefaultValue(initialPosition);
                return(my);
            }

            case "C":
            {
                var startR = byte.Parse(values[4], CultureInfo.InvariantCulture);
                var startG = byte.Parse(values[5], CultureInfo.InvariantCulture);
                var startB = byte.Parse(values[6], CultureInfo.InvariantCulture);
                var endR   = values.Length > 7 ? byte.Parse(values[7], CultureInfo.InvariantCulture) : startR;
                var endG   = values.Length > 8 ? byte.Parse(values[8], CultureInfo.InvariantCulture) : startG;
                var endB   = values.Length > 9 ? byte.Parse(values[9], CultureInfo.InvariantCulture) : startB;
                return(new ColorCommand()
                    {
                        Easing = easing,
                        StartTime = startTime,
                        EndTime = endTime,
                        StartValue = new CommandColor()
                        {
                            R = startR, G = startG, B = startB
                        },
                        EndValue = new CommandColor()
                        {
                            R = endR, G = endG, B = endB
                        },
                        Line = lineNumber,
                    });
            }

            case "P":
            {
                var type = GetParameterType(values[4]);
                return(new ParameterCommand()
                    {
                        Easing = easing,
                        StartTime = startTime,
                        EndTime = endTime,
                        StartValue = type,
                        EndValue = type,
                        Line = lineNumber,
                    });
            }

            default:
                throw new FormatException($"Invalid Commandtype {commandType} detected");
            }
        }