34 / 34 / 10
Регистрация: 11.05.2010
Сообщений: 110
1

keyPressed()

26.06.2010, 01:13. Показов 4225. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пишу вот игру теннис-тетрис. Там вот платформой нужно водить чтобы мячик отбивать. Использую для движений платформой keyListener. Проблема в том, что когда зажимаешь стрелку вбок то движение идет после паузы - т.е. зажал - платформа двинулась разок, потом выжидается пауза и платформа движется на полной скорости. Вопрос: как сделать так, чтобы когда зажимаешь стрелку то платформа двигалась незамедлительно ? Код слушателя:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
        panel.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
                if(e.getKeyCode() == KeyEvent.VK_RIGHT) {
                    wall.move(Wall.RIGHT);
                    System.out.println("right");
                }
                if(e.getKeyCode() == KeyEvent.VK_LEFT) {
                    wall.move(Wall.LEFT);
                    System.out.println("left");
                }
                manager.checkCollision();
                panel.paint(panel.getGraphics());
            }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.06.2010, 01:13
Ответы с готовыми решениями:

Картинка (KeyPressed)
Привет,снова я,с уже всем надоевшей картинкой,ну никак она не двигается,вообще. Когда два...

Вызов метода KeyPressed(KeyEvent)
у меня есть метод keyPressed(KeyEvent e) и я хочу вызвать этот метод из какой-то части кода, и...

JAVA GUI & keyPressed
Здравствуйте, можете подсказать, где ошибка. Смысл задачи, увеличивать/уменьшать рисунок по...

KeyPressed
Помогите... У меня в программе KeyPressed встречается несколько раз... Первый раз все работает, а...

2
Эксперт С++
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
26.06.2010, 02:15 2
Попробуй так: если произошло событие KeyPressed, платформа поехала и продолжает ехать, пока не произойдет KeyReleased. Думаю, сработает.
1
34 / 34 / 10
Регистрация: 11.05.2010
Сообщений: 110
26.06.2010, 11:10  [ТС] 3
Хохол, попробовал. Нормально вроде работает. Спасибо =)
Вот код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
panel.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent e) {
                if(e.getKeyCode() == KeyEvent.VK_RIGHT) {
                    run = true;
                    Thread t = new Thread() {
                        public void run() {
                            while(run) {
                                wall.move(Wall.RIGHT);
                                try {
                                    Thread.sleep(10);
                                } catch (InterruptedException e1) {
                                    // TODO Auto-generated catch block
                                    e1.printStackTrace();
                                }
                        }
                    }
                    
                    };
                    t.start();
                    System.out.println("right");
                }
                if(e.getKeyCode() == KeyEvent.VK_LEFT) {
                    run = true;
                    Thread t = new Thread() {
                        public void run() {
                            while(run) {
                                wall.move(Wall.LEFT);
                                try {
                                    Thread.sleep(10);
                                } catch (InterruptedException e1) {
                                    // TODO Auto-generated catch block
                                    e1.printStackTrace();
                                }
                        }
                    }
                    
                    };
                    t.start();
                    System.out.println("left");
                }
                manager.checkCollision();
                panel.paint(panel.getGraphics());
            }
        });
0
26.06.2010, 11:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.06.2010, 11:10
Помогаю со студенческими работами здесь

Не работает keypressed
может можно както заменить?

Keypressed и Кэш
Добрый вечер друзья программисты! Столкнулся с проблеммой : repeat if keypressed then...

repeat until keypressed
Всем привет! По нажатию на кнопку начинается прорисовка графика - это все в цикле. Нужно чтобы по...

KeyPressed in DataGridView
Ячейка таблицы находиться в режиме редактирования, как на рисунке. Надо сделать реакцию на нажатие...

Проблема с Keypressed
Нужно передвигать изображение нажатием стрелки "вверх" на клавиатуре. При нажатии ничего не...

repeat until Keypressed
есть ли аналог в C++?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru