Форум программистов, компьютерный форум CyberForum.ru

Считывание нажатий на стрелки - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.78
piratk0
1 / 1 / 0
Регистрация: 13.03.2011
Сообщений: 17
10.08.2011, 12:36     Считывание нажатий на стрелки #1
Подскажите, что нужно написать чтобы можно было определять какая из стрелок была нажата??
То беж:
if <нажата стрелка влево> then x=x-1;
if <нажата стрелка вправо> then x=x+1;
if <нажата стрелка вниз> then y=y-1;
if <нажата стрелка вверх> then y=y+1;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2011, 12:36     Считывание нажатий на стрелки
Посмотрите здесь:

подсчет и перехват нажатий клавиш. C++
C++ Стрелки часов
движение стрелки C++
Эмуляция нажатий клавиш клавиатуры C++
C++ Отклик на стрелки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
10.08.2011, 12:49     Считывание нажатий на стрелки #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <conio.h>
 
int main(){
  for(;;){
    switch(getch()){
      case 72:
        std::cout << "\nup";
        break;
      case 80:
        std::cout << "\ndown";
        break;
      case 75:
        std::cout << "\nleft";
        break;
      case 77:
        std::cout << "\nright";
        break;
    }
  }
  return 0;
}
silentnuke
Android Programmer
137 / 138 / 5
Регистрация: 08.12.2010
Сообщений: 421
10.08.2011, 12:51     Считывание нажатий на стрелки #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int code=getch();
if(code==0||code==224)
    code=getch();
switch(code)
{
case 75://влево 
    --x;
    break;
case 77://вправо
    ++x;
    break;
case 72://вверх
    ++y;
    break;
case 80://вниз
    --y;
    break;
}
плюс не забудь подключить библиотеку conio.h
piratk0
1 / 1 / 0
Регистрация: 13.03.2011
Сообщений: 17
10.08.2011, 13:24  [ТС]     Считывание нажатий на стрелки #4
Огромное спасибо!!! =)

Добавлено через 29 минут
Блин проблема!!! У меня не видит такой библиотеки !! (( Visual studio 10
dr.curse
 Аватар для dr.curse
386 / 342 / 16
Регистрация: 11.10.2010
Сообщений: 1,907
10.08.2011, 13:26     Считывание нажатий на стрелки #5
piratk0, что выдает
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
10.08.2011, 15:30     Считывание нажатий на стрелки #6
asics, без conio.h никак??
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
10.08.2011, 15:50     Считывание нажатий на стрелки #7
Цитата Сообщение от Mayonez Посмотреть сообщение
без conio.h никак??
Что никак ?
ЛеЖиК)
 Аватар для ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 630
10.08.2011, 15:57     Считывание нажатий на стрелки #8
piratk0, ты ток написал
C++
1
#inclide <conio.h>
или так
C++
1
#include "conio.h"

Вроде надо писать как в первом варианте
silentnuke
Android Programmer
137 / 138 / 5
Регистрация: 08.12.2010
Сообщений: 421
10.08.2011, 16:13     Считывание нажатий на стрелки #9
Цитата Сообщение от ЛеЖиК) Посмотреть сообщение
piratk0, ты ток написал
C++
1
#inclide <conio.h>
или так
C++
1
#include "conio.h"

Вроде надо писать как в первом варианте
ну во первых, не #inclide, a #include.
а во вторых, при подключении при помощи кавычек(""), если файл не найден в рабочей директории, то он повторяет поиск в директории компилятор, т.к будто было заключено в угловые скобки (<>).
поэтому в этой ситуации, явно роли не играет.
ЛеЖиК)
 Аватар для ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 630
10.08.2011, 16:16     Считывание нажатий на стрелки #10
Цитата Сообщение от silentnuke Посмотреть сообщение
ну во первых, не #inclide, a #include.
извеняюсь,криворукость

Цитата Сообщение от silentnuke Посмотреть сообщение
поэтому в этой ситуации, явно роли не играет.
у меня бывали раньше случаи что из-за кавычек ошибки выдавал.
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
10.08.2011, 17:13     Считывание нажатий на стрелки #11
Цитата Сообщение от asics Посмотреть сообщение
Что никак ?
не используя conio.h определить какая кнопка нажата
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
10.08.2011, 17:38     Считывание нажатий на стрелки #12
Цитата Сообщение от Mayonez Посмотреть сообщение
не используя conio.h определить какая кнопка нажата
C++
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
#include <iostream>
#include <windows.h>
 
int main(){
  HANDLE s_in = GetStdHandle(STD_INPUT_HANDLE);
  DWORD dr;
  INPUT_RECORD  rec;
  for(;;){
    ReadConsoleInput(s_in, &rec, sizeof(INPUT_RECORD), &dr);
    FlushConsoleInputBuffer(s_in);
    if(rec.EventType == KEY_EVENT){
      if(rec.Event.KeyEvent.bKeyDown){
        switch(rec.Event.KeyEvent.wVirtualKeyCode) {
          case VK_LEFT:
            std::cout << "\nLEFT";
            break;
          case VK_RIGHT:
            std::cout << "\nRIGHT";
            break;
          case VK_UP:
            std::cout << "\nUP";
            break;
          case VK_DOWN:
            std::cout << "\nDOWN";
            break;
        }
      }
    }
  }
  return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2011, 10:44     Считывание нажатий на стрелки
Еще ссылки по теме:

Обработка нажатий клавиш с glfw C++
Заменить считывание с клавиатуры на считывание из файла C++
C++ Обработчик нажатий кнопки

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

Или воспользуйтесь поиском по форуму:
piratk0
1 / 1 / 0
Регистрация: 13.03.2011
Сообщений: 17
11.08.2011, 10:44  [ТС]     Считывание нажатий на стрелки #13
А подскажите источник, где про это можно почитать )
Yandex
Объявления
11.08.2011, 10:44     Считывание нажатий на стрелки
Ответ Создать тему
Опции темы

Текущее время: 09:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru