static T地形()
    {
        T地形 T地形 = new T地形();

        T地形.ID      = default(ushort);
        T地形.Texture = default(string);
        T地形.Hit     = null;
        T地形.Flip    = default(EFlip);
    }
Beispiel #2
0
    protected override void InternalEvent(Entry e)
    {
        base.InternalEvent(e);

        // 双击冲刺
        ComboClick combo = e.INPUT.Keyboard.GetComboClick((int)PCKeys.A);

        if (combo != null && combo.IsDoubleClick)
        {
            running = true;
        }
        else
        {
            combo = e.INPUT.Keyboard.GetComboClick((int)PCKeys.D);
            if (combo != null && combo.IsDoubleClick)
            {
                running = true;
            }
        }
        // 按照最后按下的方向键移动
        int[]       keys      = e.INPUT.Keyboard.Current.GetPressedKey();
        bool        doMove    = false;
        EDirection4 direction = EDirection4.Up;

        for (int i = keys.Length - 1; i >= 0; i--)
        {
            if (keys[i] == (int)PCKeys.A)
            {
                flip = EFlip.FlipHorizontally;
                if (jumpSpeed.Y == 0)
                {
                    CheckMoveX(-SPEED * (running ? RUNNING : 1));
                    //Action(T动作.ET动作Action.蒲公英_移动);
                }
                else
                {
                    jumpSpeed.X -= FLY;
                }
                doMove    = true;
                direction = EDirection4.Left;
                break;
            }
            else if (keys[i] == (int)PCKeys.D)
            {
                flip = EFlip.None;
                if (jumpSpeed.Y == 0)
                {
                    CheckMoveX(SPEED * (running ? RUNNING : 1));
                    //Action(T动作.ET动作Action.蒲公英_移动);
                }
                else
                {
                    jumpSpeed.X += FLY;
                }
                doMove    = true;
                direction = EDirection4.Right;
                break;
            }
        }

        // 单击跳跃
        if (jumpSpeed.Y == 0 && e.INPUT.Keyboard.IsPressed(PCKeys.W))
        {
            Action(T动作.ET动作Action.蒲公英_起跳);
            jumpSpeed.Y = JUMP;
            if (doMove)
            {
                jumpSpeed.X = SPEED;
                if (running)
                {
                    jumpSpeed.X *= RUNNING;
                }
                if (direction == EDirection4.Left)
                {
                    jumpSpeed.X = -jumpSpeed.X;
                }
            }
            else
            {
                jumpSpeed.X = 0;
            }
        }
        if (!doMove)
        {
            running = false;
            //if (jumpSpeed.Y == 0 && anime.Sequence.Name == T动作.ET动作Action.蒲公英_移动.ToString())
            //    Action(T动作.ET动作Action.蒲公英_待机);
        }
    }