Page 1 of 1
MouseDeltaX/Y() doesnt work since 4.40
Posted: Tue May 28, 2013 7:38 pm
by Comtois
MouseDeltaX () and MouseDeltaY () are not working properly since version 4.40.
This code works perfectly until version 4.31. it draws a continuous line when i use the left mouse button. Since version 4.40 the line is discontinuous
Code: Select all
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(0, 0, 0, 800, 600, "MouseDelta")
OpenWindowedScreen(WindowID(0), 0, 0, 800, 600)
Enumeration
#Fond
#Souris
#Temoin
EndEnumeration
CreateSprite(#Fond,800,600)
CreateSprite(#Souris,3,3)
StartDrawing(SpriteOutput(#Souris))
Box(0,0,3,3,RGB(255,0,0))
StopDrawing()
Repeat
While WindowEvent()
Wend
FlipBuffers()
ExamineMouse()
ExamineKeyboard()
DisplaySprite(#Fond,0,0)
DisplaySprite(#Souris, MouseX(), MouseY())
;trace des formes
If MouseButton(1)
StartDrawing(SpriteOutput(#Fond))
Line(MouseX(),MouseY(),-MouseDeltaX(),-MouseDeltaY(), RGB(255, 255, 255))
StopDrawing()
EndIf
Until KeyboardPushed(#PB_Key_Escape)
Re: MouseDeltaX/Y() doesnt work since 4.40
Posted: Tue May 28, 2013 9:21 pm
by IdeasVacuum
Tried PB4.61 and PB5.11, x86, WinXP. Fails exactly as described.
Re: MouseDeltaX/Y() doesnt work since 4.40
Posted: Tue May 28, 2013 9:43 pm
by STARGÅTE
Use LineXY instead Line():
Code: Select all
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(0, 0, 0, 800, 600, "MouseDelta")
OpenWindowedScreen(WindowID(0), 0, 0, 800, 600)
Enumeration
#Fond
#Souris
#Temoin
EndEnumeration
CreateSprite(#Fond,800,600)
CreateSprite(#Souris,3,3)
StartDrawing(SpriteOutput(#Souris))
Box(0,0,3,3,RGB(255,0,0))
StopDrawing()
Repeat
While WindowEvent()
Wend
FlipBuffers()
ExamineMouse()
ExamineKeyboard()
DisplaySprite(#Fond,0,0)
DisplaySprite(#Souris, MouseX(), MouseY())
;trace des formes
If MouseButton(1)
StartDrawing(SpriteOutput(#Fond))
LineXY(MouseX(),MouseY(),MouseX()-MouseDeltaX(),MouseY()-MouseDeltaY(), RGB(255, 255, 255))
StopDrawing()
EndIf
Until KeyboardPushed(#PB_Key_Escape)
No bug!
See the change-log of Line() parameters
Re: MouseDeltaX/Y() doesnt work since 4.40
Posted: Tue May 28, 2013 9:49 pm
by IdeasVacuum
Good spot STARGÅTE, your mod version works perfectly

Re: MouseDeltaX/Y() doesnt work since 4.40
Posted: Wed May 29, 2013 4:33 am
by Demivec
STARGÅTE wrote:No bug!
See the change-log of Line() parameters
Here's another variation of the Line() to achieve the same thing:
Code: Select all
Line(MouseX(),MouseY(),-MouseDeltaX() + Bool(MouseDeltaX() = 0),-MouseDeltaY() + Bool(MouseDeltaY() = 0), RGB(255, 255, 255))
Re: MouseDeltaX/Y() doesnt work since 4.40
Posted: Wed May 29, 2013 9:09 am
by PAPIPP
Thank you Stargate
A small modification to delete, press the right.
Code: Select all
InitSprite()
InitKeyboard()
InitMouse()
OpenWindow(0,0,0,800,600,"MouseDelta")
OpenWindowedScreen(WindowID(0),0,0,800,600)
Enumeration
#Fond
#Souris
#Temoin
EndEnumeration
CreateSprite(#Fond,800,600)
CreateSprite(#Souris,3,3)
StartDrawing(SpriteOutput(#Souris))
Box(0,0,3,3,RGB(255,0,0))
StopDrawing()
Repeat
While WindowEvent()
Wend
FlipBuffers()
ExamineMouse()
ExamineKeyboard()
DisplaySprite(#Fond,0,0)
DisplaySprite(#Souris,MouseX(),MouseY())
;trace des formes
If MouseButton( #PB_MouseButton_Left )
StartDrawing(SpriteOutput(#Fond))
LineXY(MouseX(),MouseY(),MouseX()-MouseDeltaX(),MouseY()-MouseDeltaY(),RGB(255,255,255))
StopDrawing()
EndIf
If MouseButton( #PB_MouseButton_Right )
StartDrawing(SpriteOutput(#Fond))
LineXY(MouseX(),MouseY(),MouseX()-MouseDeltaX(),MouseY()-MouseDeltaY(),RGB(0,0,0))
StopDrawing()
EndIf
Until KeyboardPushed(#PB_Key_Escape)
Re: MouseDeltaX/Y() doesnt work since 4.40
Posted: Wed May 29, 2013 10:16 am
by c4s
...Again a reason why it could be really helpful if there would be an optional compiler info for every significantly (meaning that the function behaves differently than before) changed (and of course used) function. For example somehow like this:
Compiler Info: Line() used, behavior changed in 4.40: Width of 0 not allowed anymore. Use LineXY() instead.
Re: MouseDeltaX/Y() doesnt work since 4.40
Posted: Wed May 29, 2013 12:05 pm
by Little John
c4s wrote:...Again a reason why it could be really helpful if there would be an optional compiler info for every significantly (meaning that the function behaves differently than before) changed (and of course used) function.
Agreed.
And until we have that, in the meantime someone could please add information about this problem in this thread:
http://purebasic.fr/english/viewtopic.php?f=7&t=54600 