forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   FAQ и уроки (http://forum.boolean.name/forumdisplay.php?f=110)
-   -   MouseZSpeed и FlushMouse .. подводный камень (http://forum.boolean.name/showthread.php?t=4825)

jimon 21.10.2007 21:00

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() и не имею проблемм :super:

ps. не бойтесь изменять модули блицмакса,
марк не всегда прав :mda: :)

Randomize 27.01.2009 22:27

Ответ: MouseZSpeed и FlushMouse .. подводный камень
 
Спасибо! Очень помогло))


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot