martes, 20 de abril de 2010

Cambios en la GUI

He empezado a programar la interfaz y al probarla me he encontrado con un problema. Al modificar valores grandes como la frecuencia de tono o la frecuencia de la envolvente, los botones para incrementar y reducir, resultan muy lentos. Es necesario añadir un sistema que permita modificar el valor de forma más rápida.

JamQue me ha dado la idea de mostrar a través de un botón, una ventana modal con un teclado numérico que permita introducir el valor. A raíz de esta idea se me ha ocurrido mostrar una modal con un control tipo deslizador. Así que me he puesto con el nMSXtiles y he creado el botón y he diseñado las dos posibles ventanas. Cuando lo implemente veré cual de las dos soluciones es la más ágil.

Tendré que hacer una función que gestione las ventanas modales, para que antes de mostrarse guarde los tiles que se ocultan para luego recuperarlos. Para el caso del "slider", sera necesario utilizar un sprite para el cursor.

También he modificado el control del conmutador (checkbox), ya que no quedaba muy claro cuando estaba activo o inactivo. Para ello he añadido una simulación de un led, que se muestra de color verde cuando esta activo.

5 comentarios:

  1. en AHX y otros trackers, para incrementar / decrementar valores de forma rápida se usa el botón derecho del mouse. Boton izquierdo = aumentar / reducir valor en 1 y boton izquierdo + derecho = aumentar / reducir de forma rápida (+10 o mas)

    ResponderEliminar
  2. Buena idea!
    Probaré de utilizar otro botón del teclado y el segundo botón del joystick.

    ResponderEliminar
  3. Si he entendido bien, el incremento/decremento lineal de un slider es lento.

    Mi sugerencia: teclas deben incrementar cantidades con velocidad variabile (acelerar). Cuando el usuario deja de presionar el botón, la velocidad de incremento se reduce a cero.

    Algo similar a:

    // x=cantidad, v=velocidad de incremento

    if (key_up && key_was_already_up){
    v++;
    x=x+v;
    } else if (!key_up && v>0){
    v=0;
    }

    ResponderEliminar
  4. (nel ejemplo, key_up es 1 si la tecla "arriba" se presiona, en otros casos es 0)

    ResponderEliminar
  5. Muy buena idea, Andrear!
    Estaba pensando en hacer una aceleración para el movimiento del puntero con el cursor/joystick, pero no se me había ocurrido utilizarlo en los valores numéricos.

    ResponderEliminar