Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > BlitzMax

Ответ
 
Опции темы
Старый 13.10.2016, 10:43   #1
edgemza
AnyKey`щик
 
Регистрация: 04.10.2016
Сообщений: 18
Написано 0 полезных сообщений
(для 0 пользователей)
BlitzMax- цикл с ожиданием нажатия любой клавиши

Привет!
Столкнулся с проблемой:
нужно организовать цикл, который бы "крутился" и выполнял нужные действия пока не будет нажата любая клавиша.
repeat
<необходимые действия>
until <нажата ли любая клавиша>

keydown - я так понял используется только с константами нужной клавиши
KeyDown(key_escape)

keywait - просто ждет нажатие любой клавиши

а как сделать в моём случае?
(Offline)
 
Ответить с цитированием
Старый 13.10.2016, 10:54   #2
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: BlitzMax- цикл с ожиданием нажатия любой клавиши

Примерно так (всевдокод)
repeat 
  
<необходимые действия>
  
local pressed false
  
for 0 until 255
    
if keyhit(k)
      
pressed true
      
exit
    endif
  
next
until pressed 
(Offline)
 
Ответить с цитированием
Старый 13.10.2016, 11:42   #3
edgemza
AnyKey`щик
 
Регистрация: 04.10.2016
Сообщений: 18
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: BlitzMax- цикл с ожиданием нажатия любой клавиши

Ох...ох!!!
Пока я "ковырял" инструкции и примеры в поиске решения вопроса, я встречал такой вариант решения вопроса, но и там были комментарии, что это не рационально "гонять" цикл 255 раз...
Неужели больше выходов нет? Неужели те же функции KeyDown, KeyHit не имеют возможности проверки не на конкретную клавишу, а просто на нажатие любой?
(Offline)
 
Ответить с цитированием
Старый 13.10.2016, 12:33   #4
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: BlitzMax- цикл с ожиданием нажатия любой клавиши

Ответ кроется в твоём вопросе, нужно создавать цикл.
Рациональность зависит только от реализации.
Можно написать код в котором будет крутится множество проверок. А можно написать пару проверок. Почувствуй разницу.


Сообщение от edgemza Посмотреть сообщение
Неужели те же функции KeyDown, KeyHit не имеют возможности проверки не на конкретную клавишу, а просто на нажатие любой?
WaitKey()
Это в любом случае означает «крутить цикл».
(Offline)
 
Ответить с цитированием
Старый 13.10.2016, 14:01   #5
edgemza
AnyKey`щик
 
Регистрация: 04.10.2016
Сообщений: 18
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: BlitzMax- цикл с ожиданием нажатия любой клавиши

Мда,,, последний ответ - НИ О ЧЕМ........
(Offline)
 
Ответить с цитированием
Старый 13.10.2016, 18:54   #6
mingw
ПроЭктировщик
 
Аватар для mingw
 
Регистрация: 01.01.2016
Сообщений: 138
Написано 71 полезных сообщений
(для 155 пользователей)
Ответ: BlitzMax- цикл с ожиданием нажатия любой клавиши

Можно так...
Repeat
    Что-то делаем...
Until (PollEvent() = EVENT_KEYDOWN)
Приложение должно быть оконным, ибо эвенты для того и существуют, что бы на их основе строить GUI. Эвенты в БМаксе по сути ретранслируют события окна ОС.
(Offline)
 
Ответить с цитированием
Старый 14.10.2016, 13:26   #7
edgemza
AnyKey`щик
 
Регистрация: 04.10.2016
Сообщений: 18
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: BlitzMax- цикл с ожиданием нажатия любой клавиши

Спасибо! Это как вариант для "окошек", но у меня полноэкранный... Так что не подходит.
(Offline)
 
Ответить с цитированием
Старый 14.10.2016, 15:54   #8
mingw
ПроЭктировщик
 
Аватар для mingw
 
Регистрация: 01.01.2016
Сообщений: 138
Написано 71 полезных сообщений
(для 155 пользователей)
Ответ: BlitzMax- цикл с ожиданием нажатия любой клавиши

Сообщение от edgemza Посмотреть сообщение
Спасибо! Это как вариант для "окошек", но у меня полноэкранный... Так что не подходит.
А в чем отличие оконного приложения от полноэкранного?

Этот метод не подойдет для консольных приложений.

Последний раз редактировалось mingw, 14.10.2016 в 20:07.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 18:56.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com