Как мне запрограммировать ввод с помощью мыши / ключа в продвинутой Java-игре? - PullRequest
1 голос
/ 24 марта 2011

Я программист-самоучка, поэтому я не знаю правильных способов сделать что-то.Я сделал простые игры, такие как астероиды и змеи, но в этих играх вы можете легко изменять переменные в функциях keyevent.Вот как я это сделал в своей простой игре «Астероиды»:

/*
 * key listener events
 */
public void keyReleased(KeyEvent k){
    int keyCode = k.getKeyCode();

    switch(keyCode){

        case KeyEvent.VK_LEFT:
            turnLeft = false;
            break;

        case KeyEvent.VK_RIGHT:
            turnRight = false;
            break;

        case KeyEvent.VK_UP:
            accel = false;
            break;

        case KeyEvent.VK_1:
            cls = true;
            break;
        case KeyEvent.VK_ENTER:
            break;
        case KeyEvent.VK_SPACE:
            fire = false;
    }
}
public void keyTyped(KeyEvent K){}
public void keyPressed(KeyEvent k){
    int keyCode = k.getKeyCode();

    switch(keyCode){

        case KeyEvent.VK_LEFT:
            turnLeft = true;
            break;

        case KeyEvent.VK_RIGHT:
            turnRight = true;
            break;

        case KeyEvent.VK_UP:
            accel = true;
            break;

        case KeyEvent.VK_1:
            cls = false;
            break;
        case KeyEvent.VK_ENTER:
            clearAllBullets();
            break;
        case KeyEvent.VK_SPACE:
            fire = true;
    }
}

Если бы мне пришлось сделать более сложную игру (с главным меню, опциями, основной игрой и т. Д.) Как мне сделать клавишу/ mouse input?

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

Спасибо за ваше время!

PS Любые ссылки или источникочень ценится.: D

1 Ответ

0 голосов
/ 24 марта 2011

"Есть ли способ поместить однопользовательский код в отдельный класс и каким-то образом заставить клавишный ввод все еще изменять переменные и тому подобное?"

Да, есть способ инкапсулировать все события, основанные на событиях - http://en.wikipedia.org/wiki/Mediator_pattern, но это может сделать ваш код очень сложным, поэтому сначала попробуйте реализовать свою игру более "нормальным" способом.

В любом случае - вам понадобятся другие классы, чтобы представить доменную модель вашей игры (Player, Gameboard, UserInterfaces и т.д ...)

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