logo logo
Home arrow Forums...
Thursday, 08 January 2009
 
 
English English  Español Español  
Upcoming Events
10.Jun. 2009

IWANN 2009
Salamanca, Spain
11.Jun. 2009

Toward a Science of Consciousness
Hong Kong, China
14.Jun. 2009

International Workshop on Machine Consciousness
Hong Kong, China
15.Jun. 2009

The 8th IEEE International Conference on Cognitive Informatics
Hong Kong, China
22.Jun. 2009

IWINAC 2009
Santiago de Compostela, Spain
Tag Cloud
Architectures Associations Books Conferences Conscious Consciousness Developer Documentación Documentation Español Howto Machine Machine Consciousness Machines Neuroscience Publications Research Researchers Reviews Robotics Robots Spanish Studio VPL
Spotlight
Conscious-Robots.com Forum  


MGC
User

Fresh Boarder
Posts: 1
graphgraph
Karma: 0  
Entorno de Simulación - 2008/12/03 14:43 Hola, me gustaría saber si hay alguna forma de que se detecte que el usuario ha pulsado el ratón sobre la pantalla del entorno de simulación (del MazeSimulator), para así poder registrar las coordenadas donde el usuario pulsó.

Conozco la forma en que se puede detectar si pulsó el ratón en cualquier sitio dentro de una WinForm, pero necesitaría poder detectarlo en la pantalla donde se ve el entorno de simulación.

Muchas gracias
  The administrator has disabled public write access. Please, register to participate in the forum.
Raúl
Moderator

Moderator
Posts: 444
graph
Karma: 6  
Re:Entorno de Simulación - 2008/12/03 16:09 Hola, si te fijas en el fichero entities.cs que viene con la distribución de MRDS 2008 (carpeta samples/simulation/entities), verás que en múltiples ocasiones se hace referencia a xna.Input.Mouse para obtener el estado del ratón. Por ejemplo:

Code:

 xna.Input.Mouse.GetState().Xxna.Input.Mouse.GetState().Y



También te puede resultar útil mirar en la línea 7042, como en el modo edit se detecta un clic de ratón y se hace un trazado de rayos (ray tracing) desde la posición del ratón a la posición 3D de un objetos (evitando ciertos tipos de objeto):

Code:

 // Perform picking if in edit mode and the mouse has been pressed while the window has focus if (inEditMode && hasMouseFocus &&     mouseState.RightButton == xna.Input.ButtonState.Pressed &&     _cachedMouseState.RightButton == xna.Input.ButtonState.Released &&     Device != null) {     CameraEntity activeCamera update.ActiveCamera;     xna.Vector3 cameraPos activeCamera.World.Translation;     xna.Vector3 mousePos Device.Viewport.Unproject(new xna.Vector3(xna.Input.Mouse.GetState().Xxna.Input.Mouse.GetState().Y1),     activeCamera.ProjectionMatrixactiveCamera.ViewMatrixxna.Matrix.Identity);     xna.Ray r = new xna.Ray(           cameraPos,           xna.Vector3.Normalize(mousePos cameraPos)); // Xna is peculiar and rays need normalized directions for bounding spheres     // Picking has trouble with the following types     Type[] typesNotToPick = new Type[] { typeof(SkyEntity), typeof(TerrainEntity), typeof(HeightFieldEntity), typeof(SkyDomeEntity) };     List<TriangleIntersectionRecordintersectionRecords SimulationEngine.GlobalInstance.IntersectRayWithoutTypes(rSimulationEngine.IntersectInvisFlags.SkipDisabledRenderingtypesNotToPick);     if (intersectionRecords.Count 0)            SimulationEngine.SimUI.SelectSingleEntity(intersectionRecords[0].OwnerEntity);     else            SimulationEngine.SimUI.SelectSingleEntity(null); }

Raúl Arrabales Moreno. conscious-robots.com/raul
  The administrator has disabled public write access. Please, register to participate in the forum.
Syndicate
 Conscious Robots RSS FeedConscious Robots RSS Feed





Lost Password?
No account yet? Register
Last Posts in Forum
 
Top!
Advertising links: Credit Cards - Arizona Pools - Loans - Guitar Books
Top!