10demon10
Messages postés63Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention28 juin 2012
-
20 août 2008 à 20:13
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 2012
-
22 août 2008 à 17:14
bonjour à tous
voila j'ai un petit bug avec mon apply et mon sprite qui est censé remplacer ma souris en effet il reste bloqué en haut a gauche de l'écran il ne suis pas le pointeur de la souris comme il devrait le faire ??? (il boug un peut mais uniquement dans le cadre haut gauche de l'écran )
//le code
float mX = 0;
float mY = 0;
Microsoft.DirectX.DirectInput.Device main_mouse;
//...
public void Render()
{
loadertexture();
mousemanager();
#region
Rectangle rect_cursor = new Rectangle(0, 0, 100, 100);
using (Sprite cs = new Sprite(device_manager.Maindevice))
{
cs.Begin(SpriteFlags.AlphaBlend);
cs.Draw2D(cursor, rect_cursor, new SizeF(50,50), new PointF(mX,mY), Color.FromArgb(255, 255, 255, 255));
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 21 août 2008 à 03:51
Salut, il faut savoir que DirectInput en mode "Relative" ou "Absolue" ne renvoi pas des coordonnées d'écrans, mais le nombre d'unités de déplacement. J'en parle ici :
10demon10
Messages postés63Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention28 juin 2012 21 août 2008 à 18:56
Oki je comprend mieux ce que tu explique pour faire cour et pour ceux qui connaisse sa explique pourquoi quand on joue a Counter Strike (ou autre jeux du genre) et qu'on change la "sensibilité de la souris" ce la ne modifi rien sous windows et même ce petit bug des fois ou la souris aparait mais restre au centre de l'écran sous CS.
Merci de ta beaucoup réponse je vois exactement ce que je doit faire maintenant, mais vais-je y arriver suspense
10demon10
Messages postés63Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention28 juin 2012 22 août 2008 à 08:14
Alors suite à ta remarque j'ai changer un bout de code hier le voici
void mousemanager()
{
main_mouse.Acquire();
MouseState mstate = main_mouse.CurrentMouseState;
if (mstate.X > 0 )
{
mX = mX + 20;
}
if (mstate.X < 0 )
{
mX = mX - 20;
}
if (mstate.Y > 0 )
{
mY = mY + 20;
}
if (mstate.Y < 0 )
{
mY = mY - 20;
}
}
seulement cela ne donne pas le résultat vraiment recommandé çà ce déplace en diagonal le plus souvent et perso sa me plante asssez souvent donc peut stable , mais sur le principe c'est cela.
Si quelqu'un à un code plus stable je serai preneur en le(s) remerciant(s) d'avence(nt)
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 22 août 2008 à 17:14
De mémoire, c'est pas comme ça que ça marche.. tu dois additionner les valeurs renvoyées par la souris, par exemple si tu vas légèrement vers la droite X va contenir +1, si tu accelère rapidement, X peut contenir +6 ..