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

Résolu
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 15 nov. 2005 à 16:15
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 15 nov. 2005 à 16:30
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

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
15 nov. 2005 à 16:30
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.
3
Rejoignez-nous