User Tag List

Resultados 1 al 2 de 2

Tema: Detección de pulsación de botones

  1. #1

    Fecha de ingreso
    Aug 2005
    Mensajes
    3,386
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    2
    Thanked in
    Agradecido %1$s veces en 1 post

    Detección de pulsación de botones

    Hola.

    Estoy haciendo un juego en plan rompecabezas donde hay un tablero de 8x8 piezas.
    Quiero seleccionar una, luego otra, y si se cumplen ciertas condiciones, intercambiarlas.

    Para moverme por el tablero utilizo las teclas de los cursores (que desplazan un cuadrado que marca la pieza actual) y para seleccionar esa pieza, CTRL.

    El problema es que si mantengo pulsada durante un tiempo una tecla (el cursor ->, por ejemplo) el cuadrado se desplaza hacia la derecha muy rápido. La solución ha sido poner un retardo (por ejemplo, que sólo detecte pulsaciones cada décima de segundo). Pero también me gustaría poder pulsar muy rápido unas cuantas veces la misma tecla (distinto de mantenerla pulsada durante un rato) y desplazarme ese número de veces. O sea, que la secuencia -> -> -> ->, aunque se pulse muy rápido, desplace 4 a la derecha. Con lo del retardo, esto último no lo puedo hacer. A veces desplaza (cuando ya ha pasado la décima de segundo actual) y a veces no.

    El código, de las teclas de los cursores es éste:

    Código:
    process cursor()
    
    begin
    
      x = 96;
      y = 56;
      z = -1;
    
      [...]
    
      loop
    
        if (timer[0] > 10)
    
          // Desplazamiento del cursor
          if (key(_left)) x -= 16; end
          if (key(_right)) x += 16; end
          if (key(_up)) y -= 16; end
          if (key(_down)) y += 16; end
    
          [...]
    
          // Reinicia el temporizador, para que haya un retardo si
          // se mantiene la tecla pulsada
          timer[0] = 0;
    
        end
    
        frame;
    
      end
    
    end
    ¿Alguna idea? O dicho de otra forma, hay alguna manera de detectar que del frame anterior al actual no se ha soltado la tecla?

    Un saludo.

  2. #2

    Fecha de ingreso
    Aug 2005
    Mensajes
    3,386
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    2
    Thanked in
    Agradecido %1$s veces en 1 post
    Solucionado aquí .

Permisos de publicación

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