Ayuda para hacer un editor de textos simple


#1

Hola, veréis, estoy haciendo un juego para una tableta android y me he topado con un problema a la hora de introducir los nombres de los jugadores.
No me ha hecho falta ni la librería ketay ni nada especial para llamar al teclado android, lo hago así y funciona

boolean keyboard = false;

void setup() {
  fullScreen();
  textSize (40 * displayDensity);
  fill(0);
}    

void draw() {
  background(255);
  text(key, width/2-40, height/2);
  text(keyCode, width/2, height/2);
  text(int(key), width/2+80, height/2);
}

//void keyPressed() {
 void keyTyped() { 
  background(200, 50, 30);  
}

void mousePressed() {
  if (!keyboard) {
    openKeyboard();
    keyboard = true;
  } else {
    closeKeyboard();
    keyboard = false;
  }
}

Pero ni con keyPressed() ni con keyTyped() consigo distinguir las mayúsculas y mucho menos la ñ

Alguien me puede orientar

Gracias


#2

En qué momento necesitas distinguir si son mayúsculas, minúsculas o ñ? Qué intentas hacer?


#3

Hola! Nos puedes decir contra cual Android API estas ejecutando tu app? Ademas nos indicas la version del modo Android que estas utilizando y la version de Processing? Estas corriendo esto en el simulador on en un telefono? En cual? Relacionado con la ñ, estas configurando tu teclado al español en Processing o lo configuraste a travez del menu de configuraciones y personalizaciones de Android? Me estoy refieriendo al menu de seleccion de lenguage nativo de Android? Este último detalle es importante para reproducir el problema.

Relacionado con lo de las letras mayúsculas y minúsculas, te refieres a que la tecla CAPS o SHIFT no funcionan en tu caso? Yo no veo como estas testeando las letras en tu codigo. Depronto lo que necesitas es esto?

Kf


#4

Hola, no me puedo creer que he estado un mes entero sin mirar esto. En fin, disculpar…

Veras haimoid, la secuencia que he puesto en el primer post creo que la he probado de todas las formas posibles. Detecto las mayúsculas pero no detecto después la letra que pulso. Por ejemplo quiero poner la letra “a” en mayusculas, Si bloqueo las mayúsculas se imprimen caracteres raros y pasa lo mismo si lo hago utilizando la tecla sift.

Kfrajer, mañana pongo la versión de android y de procesing porque no lo tengo aquí, pero lo que trato es de que pulsando sobre un recuadro con el prefijo nombre, el usuario pueda introducir un texto con su nombre para luego guardarlo con los puntos obtenidos. Bien utilizando un popup (en windows se como hacerlo porque esta publicado pero NO en android) o bien en una capa PGraphics.

Mañana las versiones pero ahora las gracias por interesaros

Gracias


#5

processing versión 3-4 (64) y android 5.1.1 subre una samsung galaxi SM-T330
No utilizo el simulador porque no he sido capaz de cargarlo

Gracias


#6

Con este programa en Linux

void draw() {}
void keyPressed() {
  background(0);
  text((int)key, 20, 20);
  text((int)keyCode, 20, 40);
}

muestra:

a      -> key    97, keyCode 65
shift  -> key 65535, keyCode 16
A      -> key    65, keyCode 65

Qué te aparece en Android al teclear a y A, lo mismo en los dos casos?

Y cuando pulsas ñ no te aparace nada?


#7

Studio.ProcessingTogether.com/sp/pad/export/ro.9cfU11egvzT6G


#8

Hola
Hamoid, la respuesta de mi android a la pulsación de las teclas son:
tecla a -> key = a keyCode = 29 int(key) = 97
shift -> key = rectangulo tachado keyCode = 59 int(key) = 65535
A con shift -> key = rectangulo tachado keyCode = 59 int(key) = 65535
A con shift fijado -> key = rectangulo tachado keyCode = 59 int(key) = 65535
tecla ñ -> key = nada keyCode = nada int(key) = nada
otros ejemplos
tecla d -> key = d keyCode = 32 int(key) = 100
D con shift -> key = rectangulo tachado keyCode = 59 int(key) = 65535

Observa que después de pulsar shift ya no responde nada a cualquier pulsación de tecla
En linux si tienes el teclado normal del ordenador no creo que pase lo mismo, creo que el problema es el teclado de pantalla del android.

GoToLoop, interesante la referencia pero no termino de entender la utilidad
No lo he compilado par android porque hay que implementar también la llamada al teclado pero la respuesta a la tecla “a” es 65, a shift es 16 y manteniendo pulsada la tecla sift + a responde de nuevo 65, lo que no me aporta es la suma de ambas. En los titulos aparece como código respuesta a la pulsación de varias teclas, pero no termino de ver como funciona. Seguiré intentando desglosarlo a ver si lo entiendo Gracias de todas formas

Si fuera el caso de hacerlo en windows, utilizaría esta utilidad
https://blog.jorgeivanmeza.com/2012/02/utilizando-dialogos-en-processing-para-solicitarmostrar-informacion-al-usuario/
Es java y a lo mejor alguien sabe como compilarla para android

Gracias