Выпуск № 1357 от 15.07.2009, 21:35
Администратор рассылки: Dr_Andrew, Модератор
В рассылке: подписчиков - 631, экспертов - 152
В номере: вопросов - 1, ответов - 2
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
Вопрос № 170341: Уважаемые эксперты , помогите , пожалуйста, разобратся-есть код (http://pmg.org.ru/nehe/nehe07.htm) , обьявляется массив и потом он используется в логической операции Вопрос, массив не инициализируется , значит автор просто пропустил эту процед...
Вопрос № 170341:
Уважаемые эксперты , помогите , пожалуйста, разобратся-есть код (http://pmg.org.ru/nehe/nehe07.htm) , обьявляется массив и потом он используется в логической операции Вопрос, массив не инициализируется , значит автор просто пропустил эту процедуру или действительно можно так объявить массив , а потом подставлять в него значение VK_UP ?
Из приведённого вами фрагмента не ясно, в каком контексте объявлен массив, но если он глобальный (объявлен вне какой-либо функции), то во-первых, он инициализируется false-ами (в общем случае - нолями), а во-вторых, доступен из любых мест программы, которые его могут и заполнить
Посмотрел по ссылке - действительно глобальный. Значит, инициализирован нолями.
Ответ отправил: Хватов Сергей, Практикант
Ответ отправлен: 10.07.2009, 19:12
Оценка ответа: 4 Комментарий к оценке: Хмм.. Я специально помотрел у Дейтела, массив автоматически не инициализируется, нужно указать , хотя бы одно значение
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 252056
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Отвечает UnReal, 3-й класс :
Здравствуйте, sergion-aa. Уроки идут по порядку, и автор объясняет только новые строки кода. Объяснение приводится в первом уроке (http://pmg.org.ru/nehe/nehe01.htm):
Если произошло нажатие кнопки (на клавиатуре) мы можем узнать какая клавиша это была считав wParam. Тогда я делаю, чтобы эта ячейка в массиве keys[ ] содержала true. Таким образом, я могу считать этот массив позже и найти какая клавиша была нажата. Это позволяет отследить нажатия сразу несколько клавиш одновременно.
case WM_KEYDOWN:
// Была ли нажата кнопка? { keys[wParam] = true; // Если так, мы присваиваем этой ячейке true return 0; // Возвращаемся }
Если кнопка была отпущена мы можем узнать какая клавиша это была считав wParam. Тогда мы делаем, чтобы эта ячейка в массиве keys[ ] была равна false. Таким образом, когда Вы считываете эту ячейку, Вы будете знать нажата ли она до сих пор или была отпущена. Другие кнопки на клавиатуре могут быть представлены в диапазоне 0-255
. Когда мы нажимаем кнопку со скан-кодом 40, например, keys[40] вернёт true. Когда я её отпущу, она вернёт false. Вот так мы используем ячейки для хранения нажатых клавиш.
case WM_KEYUP: // Была ли отпущена клавиша? { keys[wParam] = false; // Если так, мы присваиваем этой ячейке false return 0; // Возвращаемся
Также следует смотреть оригинал, поскольку переводы некоторых уроков от него несколько отличаются, кроме того, там можно скачать полный исходник каждого урока в конце страницы
(http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=01). Или можете реализовать по-своему (http://vsokovikov.narod.ru/New_MSDN_API/Keyb_input/notify_wm_keydown.htm), например, как-то так:
... case WM_KEYDOWN: { KeyPress(wParam, lParam); return 0; } ... void KeyPress(WPARAM wParam, LPARAM lParam) { if(wParam == VK_LEFT) { // ... } }
----- Cogito, ergo sum (c) R. Descartes (1596-1650)
Ответ отправил: UnReal, 3-й класс
Ответ отправлен: 10.07.2009, 19:35
Оценка ответа: 5
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 252057
на номер 1151 (Россия) |
Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке: оценить выпуск >>
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.