[JAVA] mouse delta_x, delta_y

Pagina: 1
Acties:
  • 370 views sinds 30-01-2008
  • Reageer

  • chrisO
  • Registratie: Mei 2003
  • Laatst online: 21:26
hoe kom ik achter de delta_X en delta_Y van muisbewegingen?
Met behulp van:

code:
1
2
MouseInfo.getPointerInfo().getLocation().x;
MouseInfo.getPointerInfo().getLocation().y;


kan ik de huidige positie van de muis achterhalen en dan kan ik natuurlijk aan het einde van een methode de huidige muislokatie opslaan, zodat ik hiermee de volgende keer de delta's kan bepalen.
Het probleem is dat wanneer de muis cursor tegen de rand van het scherm zit, de x en of y lokatie niet meer wijzigd, ook als je de muis verder in dezelfde richting beweegt. En ik wil dus de delta's weten...

  • _Erikje_
  • Registratie: Januari 2005
  • Laatst online: 08:31

_Erikje_

Tweaker in Spanje

Delta x en delta y is dus de muis verplaatsing over een bepaalde tijdsperiode.
Dus als je een methode maakt die de muispositie samplet(elke 100 ms de positie opvragen) en de verplaatsing opslaat kan je toch de delta x en delta y meten als het begin en eind positie hetzelfde zijn.

  • chrisO
  • Registratie: Mei 2003
  • Laatst online: 21:26
Dat is het hem nu juist...de muis cursor staat bijvoorbeeld constant tegen de rechter van de zijde van het scherm. en als ik de muis naar rechts blijf schuiven dan blijft de positie (x) van de muis dus gelijk en de delta is dus 0. Ik wil dus weten hoeveel de muis zou verschuiven als de cursor niet tegen de rand aanstond. Ik weet bijvoorbeeld dat het met C++/DirectX mogelijk was om de delta van de muis op te vragen. Ik neem aan dat er in Java een soortgelijke methode is...

Verwijderd

van directx ken ik hem idd dat hij hem via directinput kan pakken... java ben ik hem eigenlijk nog nooit bij tegengekomen.

  • chrisO
  • Registratie: Mei 2003
  • Laatst online: 21:26
Ben wat in de code van AWT gaan zoeken en wat blijkt de methode MouseInfo.getPointerInfo() roept een methode van GraphicsEnvironment aan die op zijn beurt een JNI methode implementeerd, of te wel de methode die de muiscoordinaten ophaalt is waarschijnlijk in c/c++ of iets dergelijks geschreven, zo zal ik het dus ook moeten doen om de delta's te verkrijgen aangezien MouseEvent ook niets met delta's doet...

  • kunnen
  • Registratie: Februari 2004
  • Niet online
In veel games is het zo dat men de muis constant naar het midden reset, en dan vandaaruit de coordinaten bepaalt.

  • chrisO
  • Registratie: Mei 2003
  • Laatst online: 21:26
Pulsher schreef op maandag 23 april 2007 @ 18:19:
In veel games is het zo dat men de muis constant naar het midden reset, en dan vandaaruit de coordinaten bepaalt.
Daar had ik in het begin ook naar gekeken. Na te herrineren dat het in DirectX met delta's ging ben ik van het steeds 'resetten' van de muis afgestapt, omdat het mij niet op de meest correcte oplossing leek te zijn. Na je reply ben ik er toch maar weer eens naar gaan kijken en eigenlijk is het een eenvoudige oplossing die goed werkt en daar gaat het uiteindelijk om :)
Pagina: 1