forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=13)
-   -   Как уменьшить скорость перемещения курсора в 2Д? (http://forum.boolean.name/showthread.php?t=12153)

ArtemkA 09.03.2010 00:13

Как уменьшить скорость перемещения курсора в 2Д?
 
Доброго времени суток.

можно ли как нибуть уменьшить скорость перемещения курсора в 2Д пространстве?

.Squid 09.03.2010 01:29

Ответ: Как уменьшить скорость перемещения курсора в 2Д?
 
Ээ..
Ну можно попробовать через ВинАПИ уменьшить скорость виндового курсора, если нужен именно он.
Или делай свой курсор и двигай его с помощью MouseXSpeed() / speed.

Dream 09.03.2010 01:34

Ответ: Как уменьшить скорость перемещения курсора в 2Д?
 
я вот недавно хотел уменьшить скорость курсора в c#, так по справке нужно подключать PlatformSDK, я в шоке

ABTOMAT 09.03.2010 03:54

Ответ: Как уменьшить скорость перемещения курсора в 2Д?
 
А ты думал? Курсор - платформозависимая штуковина

ArtemkA 09.03.2010 12:57

Ответ: Как уменьшить скорость перемещения курсора в 2Д?
 
Цитата:

Ну можно попробовать через ВинАПИ
А если через ВинАпи, то как именно не подскажешь? Какой функцией?

.Squid 09.03.2010 13:02

Ответ: Как уменьшить скорость перемещения курсора в 2Д?
 
http://msdn.microsoft.com/en-us/libr...47(VS.85).aspx
SPI_GETMOUSESPEED

ЗЫЖ Учитесь искать инфу сами, а то толку не будет.

ArtemkA 09.03.2010 13:34

Ответ: Как уменьшить скорость перемещения курсора в 2Д?
 
Спасибо, буду разбираться

ArtemkA 09.03.2010 13:49

Ответ: Как уменьшить скорость перемещения курсора в 2Д?
 
Вот кстати если кому интересно, нашел: http://www.blitzbasic.com/codearcs/c....php?code=1386
Или вот: http://blitzbasic.com/Community/posts.php?topic=48443

ArtemkA 10.03.2010 13:42

Ответ: Как уменьшить скорость перемещения курсора в 2Д?
 
почему то ВинАпи'нским способом не получается ( или просто че то не так делаю.. подскажите пожалуйста.

вот decls:
Код:

.lib "user32"
apiSystemParametersInfo%(Action%, Param%, pParam*, WinIni%) : "SystemParametersInfoA"

и код:
Код:

Const SPI_GETMOUSESPEED = 112
Const SPI_SETMOUSESPEED = 113
Const SPIF_SENDWININICHANGE = 2

Function GetMouseSpeed%()
Local TempSpeed%, Speed%

TempSpeed% = CreateBank(4)
apiSystemParametersInfo(SPI_GETMOUSESPEED, 0, TempSpeed%, 0)
Speed% = PeekInt(TempSpeed%, 0)

FreeBank TempSpeed%
Return Speed%
End Function

Function SetMouseSpeed(Speed%)
Local TempSpeed%, Flags%

TempSpeed% = CreateBank(4)
PokeInt TempSpeed%, 0, Speed%

Flags% = SPIF_SENDWININICHANGE
apiSystemParametersInfo(SPI_SETMOUSESPEED, 0, TempSpeed%, Flags)

FreeBank TempSpeed%
End Function


Graphics 1024,768,32,2
SetBuffer BackBuffer()

Repeat

SetMouseSpeed(4)
Text 10,10,GetMouseSpeed()
Flip
Until KeyHit(1)
End

скорость мыши пишет всегда 20. Менял все цыфр и все равно 20.

Randomize 10.03.2010 13:45

Ответ: Как уменьшить скорость перемещения курсора в 2Д?
 
Народ вы чего?
Проосто заместо MouseX и MouseY свои переменные.
Домнажаем скорость мыши на нужное нам значение.
Или принципиально использовать системный курсор?

Простой примерчик:
PHP код:

Graphics3D(800,600,32,1)
SetBuffer(BackBuffer ())
HidePointer 


Global mX#=GraphicsWidth ()*.5
Global mY#=GraphicsHeight ()*.5

Repeat
Cls

     MouseSpeed
(MouseZ()*0.1)

    
     
Text 0,0,"Turn mouse wheel to change speed : "+MouseZ()*0.1
    Oval
(mX-2,mY-2,4,4)
Flip(0)
Until KeyHit(1)




Function 
MouseSpeed(speed#)
    
Local mXs#=MouseXSpeed ()
    
Local mYs#=MouseYSpeed ()

    
mX=mX+mXs*speed
    mY
=mY+mYs*speed

    MoveMouse GraphicsWidth
()*.5,GraphicsHeight()*.5

    mX
=min(mx,GraphicsWidth ())
    
mX=max(mx,0)
    
mY=min(mY,GraphicsHeight ())
    
mY=max(mY,0)
End Function

Function 
Max(a#, b#)
    
If a>b Then Return Else Return b
End 
Function

Function 
Min(a#,b#)
    
If a<b Then Return Else Return b
End 
Function 


Dream 10.03.2010 13:46

Ответ: Как уменьшить скорость перемещения курсора в 2Д?
 
ему вроде нужно скорость системного курсора менять
тоесть когда не "HidePointer" и видно видовсовский курсор

ArtemkA 10.03.2010 14:00

Ответ: Как уменьшить скорость перемещения курсора в 2Д?
 
Dream, Конечно!

Randomize, у меня есть такой пример. Если его использовать в оконном режиме то придется ставить MoveMouse по центру чтобы курсор не вылетал за пределы рамки, а если это сделать то координаты мыши буду соотвественно graphicswidth()/2,graphicsheight()/2 и менятся не будут

Randomize 10.03.2010 14:52

Ответ: Как уменьшить скорость перемещения курсора в 2Д?
 
Откуда у тебя такой пример?
Я егож толькочто написал.

ABTOMAT 10.03.2010 21:10

Ответ: Как уменьшить скорость перемещения курсора в 2Д?
 
Вообще, прежде чем менять из игры скорость курсора в винде, надо задуматься, а надо ли оно? Может, целесообразнее написать в своей игре свой курсор какой хочется?
А то помню перевод какой-то игры конца 1990-х, где со шрифтом ариал в самой игре заменили его на другой и во всей винде. А ччё, кутить - так кутить!

ArtemkA 10.03.2010 21:42

Ответ: Как уменьшить скорость перемещения курсора в 2Д?
 
Цитата:

Откуда у тебя такой пример?
Я егож толькочто написал.
посмотри там второй пример

Цитата:

Вообще, прежде чем менять из игры скорость курсора в винде, надо задуматься, а надо ли оно?
Надо. Я просто делаю меню для своей игры и мне не нравится то, как быстро там летает мышка, а если делать другим способом, то мне придется все переделыввать, а это будет долго и сложно.

Ну всем там проблема? Почему код неработает?


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

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