Verfasst: 08.04.2005 22:10
ich glaube ja, aber am ende vom programm muss es natürlich wieder aufs minimum gezogen werden
Code: Alles auswählen
#SPI_GETMOUSESPEED = 112
Procedure GetMouseSpeed()
SystemParametersInfo_(#SPI_GETMOUSESPEED, #Null, @MSBuffer, #Null)
ProcedureReturn MSBuffer
EndProcedure
Debug GetMouseSpeed()
Code: Alles auswählen
InitSprite()
InitMouse()
#screenW=1024
#screenH=768
OpenScreen(#screenW,#screenH,32,"fllscrn")
#ACCELERATION=1.5
Repeat
ExamineMouse()
mouseDX.f=MouseDeltaX()
mouseDY.f=MouseDeltaY()
If mouseDX<0 : mouseDX=-Pow(-mouseDX,#ACCELERATION) : Else : mouseDX=Pow(mouseDX,#ACCELERATION) : EndIf
If mouseDY<0 : mouseDY=-Pow(-mouseDY,#ACCELERATION) : Else : mouseDY=Pow(mouseDY,#ACCELERATION) : EndIf
mouseX+mouseDX :If mouseX>#screenW-1 : mouseX=#screenW-1 :EndIf :If mouseX<0 : mouseX=0 :EndIf
mouseY+mouseDY :If mouseY>#screenH-1 : mouseY=#screenH-1 :EndIf :If mouseY<0 : mouseY=0 :EndIf
StartDrawing( ScreenOutput() )
Circle(mouseX,MouseY,2,$ff3311)
StopDrawing()
FlipBuffers()
ClearScreen(0)
Until MouseButton(2)
Code: Alles auswählen
int aMouseInfo[3];
Code: Alles auswählen
aMouseInfo[2] = 2 * aMouseInfo[2];
Code: Alles auswählen
examinemouse()
if MouseDeltaX() < -3 or MouseDeltaX() > 3
MouseLocate(mouseX()+ MouseDeltaX() * 2,mouseY())
endif
if MouseDeltaY() < -3 or mousedeltay() > 3
MouseLocate(mouseX, mouseY()+MouseDeltaY() * 2)
endif
Code: Alles auswählen
Exminemouse()
MouseLocate(mouseX()+MouseDeltaX()*MouseDeltaX(), mouseY()+MouseDeltaY()*MouseDeltaY())
naja du musst wissen wie deine maus sein soll also so finde ich die cool!
MFG brügge
Code: Alles auswählen
deltaX.f=1
n=Pow(deltaX,1.9)
Debug n ; gibt 1 aus
Code: Alles auswählen
InitSprite():InitKeyboard()
InitMouse()
#screenW=1024
#screenH=768
OpenScreen(#screenW,#screenH,32,"fllscrn")
#ACC1=1.3
#ACC2=1.2
#ACC3=0.15
mode=1
Repeat
ExamineKeyboard()
ExamineMouse()
If KeyboardReleased(#PB_Key_1) : mode=1 : EndIf
If KeyboardReleased(#PB_Key_2) : mode=2 : EndIf
If KeyboardReleased(#PB_Key_3) : mode=3 : EndIf
If KeyboardReleased(#PB_Key_4) : mode=4 : EndIf
Select mode
Case 1
mouseX=MouseX()
mouseY=MouseY()
s$="normal"
Case 2
mouseDX.f=MouseDeltaX()*#ACC1
mouseDY.f=MouseDeltaY()*#ACC1
mouseX+mouseDX :If mouseX>#screenW-1 : mouseX=#screenW-1 :EndIf :If mouseX<0 : mouseX=0 :EndIf
mouseY+mouseDY :If mouseY>#screenH-1 : mouseY=#screenH-1 :EndIf :If mouseY<0 : mouseY=0 :EndIf
s$="faktor"
Case 3
mouseDX.f=MouseDeltaX()
mouseDY.f=MouseDeltaY()
If mouseDX<0 : mouseDX=-Pow(-mouseDX,#ACC2) : Else : mouseDX=Pow(mouseDX,#ACC2) : EndIf
If mouseDY<0 : mouseDY=-Pow(-mouseDY,#ACC2) : Else : mouseDY=Pow(mouseDY,#ACC2) : EndIf
mouseX+mouseDX :If mouseX>#screenW-1 : mouseX=#screenW-1 :EndIf :If mouseX<0 : mouseX=0 :EndIf
mouseY+mouseDY :If mouseY>#screenH-1 : mouseY=#screenH-1 :EndIf :If mouseY<0 : mouseY=0 :EndIf
s$="Pow()"
Case 4
mouseDX.f=MouseDeltaX()
mouseDY.f=MouseDeltaY()
If mouseDX<-4 : mouseDX=-mouseDX*mouseDX*#ACC3 : ElseIf mouseDX>4 : mouseDX=mouseDX*mouseDX*#ACC3 : EndIf
If mouseDY<-4 : mouseDY=-mouseDY*mouseDY*#ACC3 : ElseIf mouseDY>4 : mouseDY=mouseDY*mouseDY*#ACC3 : EndIf
mouseX+mouseDX :If mouseX>#screenW-1 : mouseX=#screenW-1 :EndIf :If mouseX<0 : mouseX=0 :EndIf
mouseY+mouseDY :If mouseY>#screenH-1 : mouseY=#screenH-1 :EndIf :If mouseY<0 : mouseY=0 :EndIf
s$="exponential ohne Pow() - mit schranke"
EndSelect
StartDrawing( ScreenOutput() )
Circle(mouseX,MouseY,2,$ff3311)
DrawText(100,100,s$, $aaaaaa,$0)
StopDrawing()
FlipBuffers()
ClearScreen(0)
Until MouseButton(2)