Не могу заставить элементы управления работать в моей игре Тетрис - PullRequest
0 голосов
/ 07 мая 2020

У меня много проблем с тем, чтобы мои элементы управления работали в моей игре. Я пробовал несколько разных способов, но, похоже, ничего не работает. Это то, что у меня есть сейчас с двумя разными слоями в Visual Studio. 1-я часть

class Moves
    {
        public bool rightKeyPressed { get; set; }
        public bool leftKeyPressed { get; set; }

        public Moves()
        {
            rightKeyPressed = false;
            leftKeyPressed = false;
        }

        public void evaluateKey(Keys key, Boolean pressed)
        {
            if (key == Keys.Left)
                leftKeyPressed = pressed;
            else if (key == Keys.Right)
                rightKeyPressed = pressed;
        }
    }

2-я часть

private void frmMain_KeyUp(object sender, KeyEventArgs e)
{
    if (playing)
    {
        if (input.leftKeyPressed)
            GameField.moveCurrentShapeLeft();
        if (input.rightKeyPressed)
            GameField.moveCurrentShapeRight();
        this.updateGameBoard();
    }
    input.evaluateKey(e.KeyCode, false);
}

    private void frmMain_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Space && playing)
            input.evaluateKey(e.KeyCode, true); e.Handled = true;
    }

1 Ответ

1 голос
/ 07 мая 2020

В вашем frmMain_KeyDown вы вызываете input.evaluateKey () только если e.KeyCode == Keys.Space. Вы никогда не будете так обращаться с левой или правой клавишей. Удалите это предложение из if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...