User Tag List

Página 1 de 3 123 ÚltimoÚltimo
Resultados 1 al 15 de 34

Tema: Pantalla táctil en Bennu

  1. #1

    Fecha de ingreso
    Feb 2004
    Ubicación
    Madrid
    Mensajes
    8,514
    Mencionado
    30 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    191
    Agradecer Thanks Received 
    299
    Thanked in
    Agradecido 177 veces en [ARG:2 UNDEFINED] posts

    Pantalla táctil en Bennu

    Estoy haciendo una pequeña prueba con la pantalla táctil, pero me encuentro con que "tiembla" mucho. Es decir, yo dejo el puntero apretando en un sitio fijo, pero el cursor tiembla alrededor de él.

    La solución es tomar continuamente muchas muestras de la posición del puntero y hacer una especie de media ponderada. En este post de Senor Quack se enlaza a una implementación de tslib para la GP2X F-200 que por lo visto es muy buena filtrando el movimiento para que no tiemble.

    La pregunta número uno es: ¿hay implementado ya algún tipo de filtro, en las SDL de la Wiz? Por los resultados que obtengo parece que no...

    La segunda: ¿sería fácil compilar una nueva tslib que incluyera el código que pongo más arriba, y hacer que Bennu la usara? (En lugar de sustituir la que hay en la NAND).

    La tercera: si todo lo demás falla, habría que implementar el filtro en mi propio juego. ¿Es posible obtener varios valores de mouse.x y mouse.y en cada frame? Es decir, si uso set_fps(60,0), poder obtener más de 60 valores por segundo.

    Thank you very much

  2. #2

    Fecha de ingreso
    Aug 2003
    Ubicación
    Madrid (Getafe)
    Mensajes
    13,901
    Mencionado
    48 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    5
    Agradecer Thanks Received 
    221
    Thanked in
    Agradecido 164 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    2
    tambien puedes utilizar un granulado menos fino. es decir dividir en bloques de 3x3 pixeles (o de 2x2), en lugar de 1x1 pixel.

    yo lo que hago es que el cursor (que persigue al proceso mouse) lo que hace es que todo lo que esta en un bloque de 3x3 se lo asigna al pixel central, sea cual sea de los 3x3 pixeles el que se haya pulsado.

    pierdes precision, pero bueno, normalmente los juegos de tactil, suelen tener areas sensibles mas grandes de 3x3.

    nota: aunque la verda si es cierto que seria mucho mas comodo una solucion a nivel de SDL.

    Aiken

  3. #3

    Fecha de ingreso
    Jul 2009
    Mensajes
    8,737
    Mencionado
    64 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    937
    Agradecer Thanks Received 
    571
    Thanked in
    Agradecido 345 veces en [ARG:2 UNDEFINED] posts
    de cuanto es la variacion? de 1 pixel o mas?

    podrias descartar 1 o 2 bits menos significativos de la muestra.

  4. #4

    Fecha de ingreso
    Jul 2004
    Ubicación
    root@wiz
    Mensajes
    1,244
    Mencionado
    6 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    11
    Agradecer Thanks Received 
    29
    Thanked in
    Agradecido 22 veces en [ARG:2 UNDEFINED] posts
    Esta mañana precisamente he estado recompilando las tslib y SDL...

    SDL usa las librerías tslib de /usr/lib pero se puede reprogramar para que use lo que interese, no es demasiao complicado.

    Por lo que veo Senor Quack lo ha juntado todo en un solo archivo .c que puede sustituirse en la carga desde SDL, mañana (o esta tarde si consigo un cygwin usable) lo intentaré a ver si no temblequea...

  5. #5

    Fecha de ingreso
    Aug 2003
    Ubicación
    Madrid (Getafe)
    Mensajes
    13,901
    Mencionado
    48 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    5
    Agradecer Thanks Received 
    221
    Thanked in
    Agradecido 164 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    2
    Cita Iniciado por SplinterGU Ver mensaje
    de cuanto es la variacion? de 1 pixel o mas?
    podrias descartar 1 o 2 bits menos significativos de la muestra.
    yo diria que son un par de pixeles, supongo que ser porque al presionar cierto punto, los puntos de alrededor tambien reciben algo de presion, y como supongo que la pantalla tactil no es analogica pues detecta como si pulsaras todos los pixeles de alrededor a la vez.

    Aiken

  6. #6

    Fecha de ingreso
    Sep 2005
    Mensajes
    15,226
    Mencionado
    248 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    683
    Agradecer Thanks Received 
    1,867
    Thanked in
    Agradecido 1,277 veces en [ARG:2 UNDEFINED] posts
    Puede tomar una muestra por frame y luego hacer una media... o seguir el consejo de despreciar los 2 bits menos significativos (por lo que cada punto del ratón equivaldría a 4x4 pixels de pantalla).

    De todas maneras, uno de los minijuegos del juego que hemos mandado al concurso requiere cierto nivel de precisión, y mi betatester no se ha quejado, por lo que seguramente no sea para tanto... a menos que andes haciendo un programa de dibujo o similar.

    Yo siempre he pensado que la pantalla detecta todos los pixels que hacen contacto, y mediante un HW, calcula el centro de toda la zona presionada, para mandarlo como la coordenada final.
    PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
    PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%

  7. #7

    Fecha de ingreso
    Jan 2008
    Ubicación
    Madrid
    Mensajes
    4,451
    Mencionado
    14 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    87
    Agradecer Thanks Received 
    161
    Thanked in
    Agradecido 94 veces en [ARG:2 UNDEFINED] posts
    A mí me tiembla una barbaridad el puntero con el propio ScummVM. Yo creo que te va a ser más fácil hacer una función en Bennu que saque la media que compilar la tslib. Ya que es usada por el firmware y puedes liarla bien.

  8. #8

    Fecha de ingreso
    Jul 2009
    Mensajes
    8,737
    Mencionado
    64 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    937
    Agradecer Thanks Received 
    571
    Thanked in
    Agradecido 345 veces en [ARG:2 UNDEFINED] posts
    no me convence meter una funcion en bennu para eso, le quitaria precision.

    tendria que probarlo, tambien pueden hacer una funcion desde codigo .prg.

  9. #9

    Fecha de ingreso
    Jan 2008
    Ubicación
    Madrid
    Mensajes
    4,451
    Mencionado
    14 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    87
    Agradecer Thanks Received 
    161
    Thanked in
    Agradecido 94 veces en [ARG:2 UNDEFINED] posts
    A eso me refería Splinter, a una función de usuario.

  10. #10

    Fecha de ingreso
    Aug 2003
    Ubicación
    Madrid (Getafe)
    Mensajes
    13,901
    Mencionado
    48 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    5
    Agradecer Thanks Received 
    221
    Thanked in
    Agradecido 164 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    2
    Cita Iniciado por SplinterGU Ver mensaje
    no me convence meter una funcion en bennu para eso, le quitaria precision.
    podria ser una funcion generica que permitiera cambiar la "granularidad" del cursor.
    asi si no configuras nada se quedaria con precision de 1 pixel, y sino puedes aumentar la granularidad y que sea de 2 pixeles o 3 pixeles.

    Aiken

  11. #11

    Fecha de ingreso
    Sep 2009
    Ubicación
    Málaga
    Mensajes
    4,156
    Mencionado
    95 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    8,874
    Agradecer Thanks Received 
    1,354
    Thanked in
    Agradecido 784 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por Drumpi Ver mensaje
    Puede tomar una muestra por frame y luego hacer una media... o seguir el consejo de despreciar los 2 bits menos significativos (por lo que cada punto del ratón equivaldría a 4x4 pixels de pantalla).

    De todas maneras, uno de los minijuegos del juego que hemos mandado al concurso requiere cierto nivel de precisión, y mi betatester no se ha quejado, por lo que seguramente no sea para tanto... a menos que andes haciendo un programa de dibujo o similar.

    Yo siempre he pensado que la pantalla detecta todos los pixels que hacen contacto, y mediante un HW, calcula el centro de toda la zona presionada, para mandarlo como la coordenada final.
    ¡Aquí el betatester!

    Yo ya lo había notado, pero no le dí importacia porque no restaba jugabilidad. No era cuestión de saturar al programador que ya tenía mucho que hacer.

    Se ve claramente que tiembla el cursor, pero sin embargo, no tiembla lo que se supone que estamos controlando.

    Me explico mejor. Podemos mover al personaje con el stilus. El cursor que señala donde está el estilus tiembla, pero el personaje no. O al menos yo no me he dado cuenta.

    Saludos.

    Hace más el que quiere que el que puede.

    Proyectos: Wizor (100%). Bennu File Manager (100%). Remake gráfico Echo 99%.

  12. #12

    Fecha de ingreso
    Feb 2004
    Ubicación
    Madrid
    Mensajes
    8,514
    Mencionado
    30 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    191
    Agradecer Thanks Received 
    299
    Thanked in
    Agradecido 177 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por Aiken Ver mensaje
    y como supongo que la pantalla tactil no es analogica pues detecta como si pulsaras todos los pixeles de alrededor a la vez.
    Ojo, según el código de la tslib de Senor Quack, el controlador de la pantalla da coordenada x, coordenada y y presión. De hecho, una de las mejoras que incluye es una presión mínima para no detectar falsas pulsaciones.

    Cita Iniciado por Drumpi Ver mensaje
    Puede tomar una muestra por frame y luego hacer una media... o seguir el consejo de despreciar los 2 bits menos significativos (por lo que cada punto del ratón equivaldría a 4x4 pixels de pantalla).
    Sí, gracias a todos por la idea, es una solución muy buena. Aunque creo que no es válida para el programa que estoy haciendo

    Cita Iniciado por hardyx Ver mensaje
    Yo creo que te va a ser más fácil hacer una función en Bennu que saque la media que compilar la tslib. Ya que es usada por el firmware y puedes liarla bien.
    Si pones la nueva tslib en el mismo directorio que el ejecutable bgdi, ¿no usa esa versión, en lugar de usar la del sistema? Yo hice pruebas con una libSDL_sound modificada, y si ponía mi versión en la carpeta del ejecutable, me cargaba esa en lugar de la otra. Si realmente funciona así y no me equivoco, no sería problema ya que no hay que sustituir la que viene con el firmware.

  13. #13

    Fecha de ingreso
    Jul 2009
    Mensajes
    8,737
    Mencionado
    64 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    937
    Agradecer Thanks Received 
    571
    Thanked in
    Agradecido 345 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por hardyx Ver mensaje
    A eso me refería Splinter, a una función de usuario.
    habia entendido en C, coincido.

    Cita Iniciado por Aiken Ver mensaje
    podria ser una funcion generica que permitiera cambiar la "granularidad" del cursor.
    asi si no configuras nada se quedaria con precision de 1 pixel, y sino puedes aumentar la granularidad y que sea de 2 pixeles o 3 pixeles.

    Aiken
    si me decis que vibra estando estatico, entonces no se podria hacer un promedio a 1pixel de precision, ademas de necesitarse varias muestras (frames).

  14. #14

    Fecha de ingreso
    Jul 2004
    Ubicación
    root@wiz
    Mensajes
    1,244
    Mencionado
    6 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    11
    Agradecer Thanks Received 
    29
    Thanked in
    Agradecido 22 veces en [ARG:2 UNDEFINED] posts
    Bueh, he inserido el código de Senor Quack en las librerías SDL directamente para que en vez de llamar a la librería se haga todo internamente, pero por alguna razón que ya investigaré cuando me despierte los eventos no recogen correctamente los valores de x,y,presión.

    Supongo que acabaré machacando los cambios a manija en la tslib, una vez echo esto es simplemente, como comenta Segata, poner la tslib en el mismo path que el ejecutable y la cargará antes que la del path de libs del sistema.

  15. #15

    Fecha de ingreso
    Sep 2005
    Mensajes
    15,226
    Mencionado
    248 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    683
    Agradecer Thanks Received 
    1,867
    Thanked in
    Agradecido 1,277 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por Segata Sanshiro Ver mensaje
    Si pones la nueva tslib en el mismo directorio que el ejecutable bgdi, ¿no usa esa versión, en lugar de usar la del sistema? Yo hice pruebas con una libSDL_sound modificada, y si ponía mi versión en la carpeta del ejecutable, me cargaba esa en lugar de la otra. Si realmente funciona así y no me equivoco, no sería problema ya que no hay que sustituir la que viene con el firmware.
    Si eso es verdad, hace eones que tendríamos un port de BennuGD para GP2X con buen rendimiento. Nadie que lo haya probado me ha dicho que funcione... aunque creo que nadie lo ha probado.
    PROYECTOS REALIZADOS: FrikiMusic, Motor Scroll Tileado v3.2, Venturer2X (GP2X/WIZ), Echo, Screen Break Time
    PROYECTOS EN MARCHA (algunos): Bennu GP2X: 95% (necesito ayuda) ¡Antes de Halloween!: 92% SpaceH2H: 8%

Página 1 de 3 123 ÚltimoÚltimo

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •