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

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

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

Ответ
 
Опции темы
Старый 21.10.2007, 21:00   #1
jimon
 
Сообщений: n/a
MouseZSpeed и FlushMouse .. подводный камень

функции MouseZSpeed как таковой в BlitzMax нету,
есть только функция MouseZ() ... собсно написать MouseZSpeed
не состовляет труда ..

у меня она выглядит так
	Field OldMouseZ%
	Field MouseZSpeed#
	Method UpdateMouseZSpeed#()
		MouseZSpeed = MouseZ() - OldMouseZ
		OldMouseZ = MouseZ()
	End Method
и обновляется раз в игровой цикл ... чтобы не парить мозги

есть функция FlushMouse ... по описанию она просто очищает состояние
кнопок, но есть одна проблемка

в меню у меня постоянно вызывается FlushMouse для того чтобы
обнулять кнопки, а то один раз не провериш кнопку - и усе

тут мне надо зделать прокрутку списка, и я юзаю MouseZSpeed
.... прошло около часа .... в общем жутко напуганый
зделал дебаг того что возращает MouseZSpeed ... и так
1 (тут я крутил колесико)
-1 (тут не крутил)
0 (тут тож не трогал)
0
0
-1 (вот еще крутил)
1 (а тут нет)
0
0
0
WTF ?! .... так
чтобы не парить теперь вам мозги как я парил .. идем сразу :
/mod/brl.mod/polledinput.mod/polledinput.bmx

там смотрим ету функцию (FlushMouse)
Function FlushMouse()
	PollSystem
	For Local i=0 Until 4
		mouseStates[i]=0
		mouseHits[i]=0
	Next
	mouseLocation[2]=0
End Function
я вот что-то не понимаю ... значит позицию по X,Y они не обнуляют
а Z чем-то им приелся и решили обнулять,
я не хочу разбиратся почему и как ... решил поступить по другому

тупо пишем в тот же файл :
Rem
bbdoc: Flush only mouse button states
about:
#FlushMouseKeys resets the state of all mouse buttons to 'off'.
but doesnt change the position of Z ! :)
End Rem
Function FlushMouseKeys()
	PollSystem
	For Local i=0 Until 4
		mouseStates[i]=0
		mouseHits[i]=0
	Next
End Function
билдим модули и документацию ....
теперь в меню я вызываю FlushMouseKeys() и не имею проблемм

ps. не бойтесь изменять модули блицмакса,
марк не всегда прав
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо за это полезное сообщение:
Nex (07.05.2009), NitE (28.01.2009), Randomize (27.01.2009)
Старый 27.01.2009, 22:27   #2
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,354
Написано 2,470 полезных сообщений
(для 6,850 пользователей)
Ответ: MouseZSpeed и FlushMouse .. подводный камень

Спасибо! Очень помогло))
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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