Блюз событий щелчка мыши в игре на основе Windows Forms / C # - PullRequest
1 голос
/ 26 декабря 2010

Я пытаюсь закодировать шахматное приложение с помощью C # . И я пытаюсь изменить положение шахматных фигур. Когда я впервые щелкаю, он должен получить первую информацию о координатах. И второй щелчок должен взять вторую информацию о координате. И поменяй эти кусочки.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 26 декабря 2010

Пользователь может щелкнуть в любом месте окна - поэтому в функции события щелчка мышью вы должны получить координаты и выяснить, произошел ли щелчок, когда указатель мыши находился над полем в таблице.Если это было - вы должны найти поле.Когда щелчок мыши происходит снова, вы должны сделать ту же работу.Если это произошло над допустимым полем, переместите фигуру.Если второй щелчок был не над полем, вам нужно выполнить какое-то другое действие или просто проигнорировать его.

0 голосов
/ 26 декабря 2010

Когда вы получаете первый клик, вам нужно обновить состояние в вашей форме, чтобы зарегистрировать этот клик и сохранить координаты клика. При нажатии вы можете проверить текущее состояние приложения. Когда вы видите, что это второй щелчок, вы можете переместить кусок.

Это очень грубое представление о том, как вы могли бы это сделать, при этом пропало много деталей:

private bool hasClick;
private int xCoordinate;
private int yCoordinate;

private void Board_Click(object sender, EventArgs args)
{
    if (this.hasClick)
    {
        // Move the pieces.

        this.hasClick = false;
    }
    else
    {
        this.xCoordinate = ...;
        this.yCoordinate = ...;
        this.hasClick = true;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...