Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Dinput Vs No Dinput

Iniciado por Pogacha, 11 de Octubre de 2005, 01:58:51 PM

« anterior - próximo »

Pogacha

 Eso ... existe alguna ventaja real para usar DInput ?

Usando el API de win32 uno puede acceder a teclado, mouse y joystick lo mas bien ...
La unica diferencia que encuentro es que usando DInput uno puede ponerlo en modo "exclusivo" y apropiarse del recurso completamente, lo cual no es conveniente en muchos casos ...
Pero sacando esto, hay alguna otra diferencia ?

Saludos.

tewe76

 No aconsejo a nadie que me coja como ejemplo :), pero en mi engine también he pasado del DInput. Sabiendo usar bien el API, no le ví ninguna utilidad, al menos para mi.
Creo, éso sí, que lo bueno de usar DInput es que tiene soporte para joysticks, pads, etc. Pero si no los vas a usar, creo que no sirve de mucho.

Que hablen los sabios, de todas formas ;)
Tewe
www.TAPAZAPA.com : Funny and easy to play games for all ages! - Fairy Match - Brain Crash
www.LaRebelionDelBiberon.com : Experiencias de unos padres primerizos

Pogacha

Cita de: "tewe76"Creo, éso sí, que lo bueno de usar DInput es que tiene soporte para joysticks, pads, etc. Pero si no los vas a usar, creo que no sirve de mucho.
Pero con el api de windows puedes usar el joystick y pad sin problemas tambien ... no tengo joysticks para probar pero según la documentación de windows así es.

Haddd

 pero será más complejo no? Pq DInput está pensado para eso...

Pogacha

Cita de: "Haddd"pero será más complejo no? Pq DInput está pensado para eso...
No realmente, es mas sencillo con el api de windows ... excepto la posicion del mouse lo demas es mas sencillo ...

no recuerdo exactamente, pero las funciones se parecen a:

bool GetAsyncKeyState(int VK_KEY);
bool GetJoyState( struct Joy);
que tiene una estructura algo como
struct Joy {
int numjoy;
int left, right, up,down,
int buton1,button2, button3,button4;
}
Para el mouse GetCursorPos y no recuerdo si tenes que convertir las coordenas de screen a client pero en dos patadas ... los botones son teclas virtuales asi que ...

DInput requiere un pequeño trabajo extra ... que no molesta pero si la unica ventaja es la apropiación del recurso no es demasiada ventaja.
Por eso pregunto : ¿Existe otra ventaja ademas de esta?  respuesta mas rapida o cosas así !?

Saludos

zupervaca

 en el motor 3d que hice hace tiempo para juegos lo hice con dinput y aunque en la demo no use nada del otro mundo excepto teclado y raton soporta feedback que es muy importante

editado: tambien cabe destacar que yo soy de los que piensan que hay que usar las librerias de cada sistema operativo

tewe76

Tewe
www.TAPAZAPA.com : Funny and easy to play games for all ages! - Fairy Match - Brain Crash
www.LaRebelionDelBiberon.com : Experiencias de unos padres primerizos

Ray

 La diferencia es que DInput accede directamente al hardware de los dispositivos con la configuración elegida por el programador (no por el panel de control) y sin preocuparse de tener que esperar a los mensajes que le llegan de windows, la verdad es que esto en la práctica debería ser mucho mejor porque se obtiene un acceso inmediato a los puertos del ratón o teclado.

Habría que saber bajo que circustancias los eventos de entrada pueden sufrir un retraso o dejar de recibirse sobre todo al compartir recursos con más aplicaciones, con DInput ese problema no existe puesto que como he dicho antes se comprueba directamente los puertos correspondientes. Por ejemplo para saber si un grupo de teclas están pulsadas o levantadas.

Si no se necesita más que comprobar las teclas o movimientos de ratón sin complicarse mucho la vida no creo que sea necesario DInput, aunque opino igual que zupervaca que sí se debería usar en caso de que todo esté basado en DirectX.

Citar
¿qué es el feedback?

El force feedback es la fuerza o la vibración que producen los controles que lo llevan y que se puede enviar desde el programa con Dinput, la intensidad y el tipo de fuerza.

Pogacha

 O sea que la diferencia las da las capacidadades y no la calidad de trabajo ?

Saludos.

Ray

 Esta claro que está destinado casi exclusivamente a los videojuegos y se usa para tener todo el control directo sobre el hardware al igual que Directsound y Direct3D, sin capas ni historias intermedias.

Aunque yo en OpenGL no lo uso y no he notado ningun problema para capturar las pulsaciones de las teclas o el movimiento del ratón con los eventos de la ventana, no me parece imprescindible DirectInput en un principio.



_Grey

 El soporte de joysticks de DInput es mas avanzado, puedes tratar mas botones y demas controles estraños ,pero en general tendras suficiente, para cosas normalitas, con el API de Windows.

Saludos.

zupervaca

 ¿por que no mirais la posibilidad de usar el opengXl? (no se como se llama pero se que hay una libreria que trabaja en conjunto con opengl para estas cosas) no tendras feedback, pero fijo que usa el hard

Pogacha

 No, por el contrario, mi idea era simplificarlo ...






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.