Page 1 sur 1
Récupérer les coordonnées de la souris (RESOLU)
Publié : dim. 20/déc./2009 17:14
par tinangel
Bonsoir à tous,
Je me permets de poster dans cette rubrique pour un soucis qui concerne la capture des coordonnées de la souris dans un OpenWindow.
Je vous expose mon problème :
- Je programme actuellement un jeu qui m'impose de ne pas utiliser un OpenScreen pour la gestion de la souris. Le jeu en question récupère des pages Web hébergés sur un serveur distant et affiche des vidéos en streaming. La prise en charge des vidéos dans un sprite n'est pas le point fort de PB actuellement (en espérant que ça change dans les prochaines versions), alors j'imagine que le streaming vidéo c'est pas encore vraiment d'actualité. Donc je fais en sorte de profiter pleinement de toutes les nouvelles fonctionnalités de la V4.40 et je contourne les problèmes comme il m'est possible.
- Mon problème est le suivant, je voudrais savoir s'il est possible de capturer les coordonnées de la souris sur une fenêtre OpenWindow sans utiliser d'OpenScreen et donc sans utiliser l'ExamineMouse ?
Je vous remercie par avance pour l'aide que vous m'apporterez.
Cordialement,
Tinangel.
Re: Récupérer les coordonnées de la souris dans un OpenWindow
Publié : dim. 20/déc./2009 17:22
par tinangel
Re Bonsoir,
Autant pour moi j'ai trouvé ça
http://www.purebasic.fr/french/viewtopic.php?t=1310
Je vais voir si ça fonctionne.
Merci encore.
Re: Récupérer les coordonnées de la souris dans un OpenWindow
Publié : dim. 20/déc./2009 17:25
par venom
Bonjour,
oui tu est obliger de passé par les API's windows

mais de ce fait ton code n'est compatible uniquement windows.
@++
Re: Récupérer les coordonnées de la souris dans un OpenWindow
Publié : dim. 20/déc./2009 17:34
par tinangel
Encore une fois !
Juste pour information, voilà une partie du code du lien ci-dessus :
Code : Tout sélectionner
Repeat
Event = WindowEvent()
[color=#BF0000]
; position de la souris
GetCursorPos_(CursorPos.POINT)
MouseX = CursorPos\x
MouseY = CursorPos\y
[/color]
; on affiche la position de la souris
SetGadgetText(1, "X = " + Str(MouseX))
SetGadgetText(2, "Y = " + Str(MouseY))
UpdateWindow_(WindowID(0))
Delay(50)
Until Event = #WM_CLOSE
Dans le code on voit la fonction : GetCursorPos_(CursorPos.POINT), je me demandais juste comment il est possible de récupérer cette liste de fonction car je ne la trouve pas dans l'aide.
Merci de bien vouloir éclairer un galérien de l'informatique.
Cordialement,
Tinangel.
Re: Récupérer les coordonnées de la souris dans un OpenWindow
Publié : dim. 20/déc./2009 17:36
par tinangel
Bonsoir,
Merci Venom pour ta réponse si rapide.
En répondant à ma 1ère question tu as répondu à la seconde sans le savoir.
Bonne soirée et merci encore.
Re: Récupérer les coordonnées de la souris dans un OpenWindow
Publié : dim. 20/déc./2009 17:39
par venom

yep sa répond a ta question
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 300, 30, "Position de la souris sur la fenêtre", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
TextGadget(0, 10, 6, 200, 20, "")
Repeat
Event = WaitWindowEvent(20) ; Boucle au moins chaque 20ms pour une mise à jour
SetGadgetText(0, "Coordonnées: " + Str(WindowMouseX(0)) + "," + Str(WindowMouseY(0)))
Until Event = #PB_Event_CloseWindow
EndIf
se code renvoie la position sans API au cas ou
@++
Re: Récupérer les coordonnées de la souris dans un OpenWindow
Publié : lun. 21/déc./2009 19:26
par tinangel
Bonsoir,
Merci encore pour le bout de code ... génial ça répond exactement à ce dont j'ai besoin.
Cordialement,
Tinangel.
Re: Récupérer les coordonnées de la souris dans un OpenWindow
Publié : mar. 22/déc./2009 10:36
par Fred
WindowMouseX/Y() doesn't work ?
Re: Récupérer les coordonnées de la souris dans un OpenWindow
Publié : mar. 22/déc./2009 18:41
par venom
je n'est pas tout compris Fred là
@++
Re: Récupérer les coordonnées de la souris dans un OpenWindow
Publié : mar. 22/déc./2009 18:42
par Ar-S
voir doc :
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 300, 30, "Position de la souris sur la fenêtre", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TextGadget(0, 10, 6, 200, 20, "")
Repeat
Event = WaitWindowEvent(20) ; Boucle au moins chaque 20ms pour une mise à jour
SetGadgetText(0, "Coordonnées: " + Str(WindowMouseX(0)) + "," + Str(WindowMouseY(0)))
Until Event = #PB_Event_CloseWindow
EndIf
à force de jouer avec les API on en oublie les fonctions natives ?

Re: Récupérer les coordonnées de la souris dans un OpenWindow
Publié : mar. 22/déc./2009 19:51
par venom
bin justement le code poster au dessus
@++
Re: Récupérer les coordonnées de la souris dans un OpenWindow
Publié : mar. 22/déc./2009 22:48
par Ar-S
je suis passé par dessus

Re: Récupérer les coordonnées de la souris dans un OpenWindow
Publié : ven. 25/déc./2009 12:32
par tinangel
Bonjour,
Tout d'abord Bonnes Fêtes à tous et j'espère que le Vieu Bonhomme à la barbe blanche vous a gater ?
Encore une fois je voulais remercier tout le monde pour vos réponses.
Je m'excuse aussi car la solution était effectivement dans l'aide mais je cherchais au mauvais endroit.
Fred, WindowMouseX/Y() work correctly, it's my fault sorry. I don't search enough !
Cordialement,
Tinangel