Faire sauter les limites de l'ecran pour le curseur de la souris...

[Résolu]
Signaler
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
-
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
-
j'explique le probleme :



j'aimerais utiliser la souris pour deplacer un objet dans une scene 3D ...



cet objet ce deplace sur l'axe X avec une limite de deplacement a droite et a gauche.



pour savoir si la souris vas a gauche ou a droite, je fait comme cela :



var OldMousePos : TPoint;



begin

if Mouse.CursorPos.X > OldMousePos.X then opx := opx + 0.1;

else

if Mouse.CursorPos.X < OldMousePos.X then opx := opx - 0.1;



OldMousePos := Mouse.CursorPos;



if opx < -Xmax then opx := -Xmax

else

if opx > Xmax then opx := Xmax;



Objet.Position.X := opx;

end;





tout cela fonctionne bien, la n'est pas le probleme.



le probleme c'est que le curseur de souris ne peu se deplacer que dans la zone de l'ecran.

en gros, une fois que le curseur est a 0 on ne peu plus detecter les mouvements a gauche et

si le curseur est a 1024 ou 1280 selon la resolution de l'ecran, on ne peu plus detecter les mouvements a droite.



ce qui fait que dés que le curseur est sur l'un des bord de l'ecran on
ne peu plus deplacer le curseur dans la direction voulus, sauf oposée
ce qui provoque malheureusement au bout d'un moment des "blocage" de
l'objet.



un autre probleme qui se pose, c'est que en incluant des controls de
mouvement (genre deux variable boolean) et en gerant le mouvement en
disant par exemple :

tant que c'est a gauche tu deplace l'objet et tant que c'est a droite tu deplace l'objet,

cela voudrais dire que l'on ne peu plus stoper l'objet, il se
deplaceras irremediablement a droite ou a gauche, sans jamais pouvoir
s'arreter entre Xmax et -Xmax.



donc j'aimerais savoir si il y a un moyen, grace a l'api windows ou
l'assembleur de detecter tout de meme le mouvement de la souris sur un
axe, si je puis dire, infinis, qui irait au dela des limites de l'ecran.

en gros surplomber la gestion du curseur qui l'empeche de sortir de l'ecran. (ça doit etre windows qui le gere).



j'ai eu beau regarder dans les sources ou l'aide delphi ... je ne trouve rien d'utile.



merci d'avance a ceux qui m'aiderons.

1 réponse

Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
yeah!



c'est good j'ai trouver dans les source, comme quoi j'avais mal chercher....



simplement grace a SetCursorPos();



bon par contre, il vas faloir que j'empeche la routine de detecter le repositionnement du curseur ... ça devrait le faire.