Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: ¿Como pedir números al jugador? (Solucionado)  (Leído 535 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Zhekken

en: Noviembre 26, 2019, 04:30:27 am
Buenas hace poco encontré este Script(foro): https://www.comunidadgm.org/desarrollo-de-scripts/pedir-el-nombre-al-jugador/

quisiera saber si alguno de ustedes sabe como hacer lo mismo pero en vez de letras solo pedirle números al jugador, esto podría servir por ejemplo para que se abra alguna especie de ventana y abrir tipos de puertas que pidan una contraseña en números... se que se pueden escribir números pero se guardan de tipo string ... si tienen otra manera de pedir solo números al jugador se los agradecería mucho si me explican...solo quiero pedir al usuario/jugador que escriba un numero para que este se almacene en una variable, de ahí pasar a condiciones y así abrir una puerta si se escribe bien la contraseña o dar un mensaje de error si se equivocan etc...

//\\Si no me estoy explicando bien luego lo edito dando un mejor ejemplo//\\
« última modificación: Noviembre 27, 2019, 05:34:02 pm por Zhekken »

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado BssString

Respuesta #1 en: Noviembre 27, 2019, 01:55:06 am
Hola Zhekken

Si el resultado de tu contraseña es exacto, entonces comparalas como texto y ya.
Ej:
Código: [Seleccionar]
if (respuesta = "1234") { abrir puerta }Si usas las comillas estarás comparando textos en vez de números.

Existe la función "string_digits" que toma sólo los números de una string.
Ej: string_digits("100tifico") te da como resultado "100" (como texto)

También existe la función "real" para convertir una string a número siempre y cuando tenga formato de número.
ej: real("-12.5") te regresa -12.5 como número
Pero real("a123sdb5") falla.

Te sugiero combinar ambas. string_digits para dejar sólo los números y luego real para convertirlos a número.

Saludos

 
Los siguientes usuarios dieron las gracias a este tema: Zhekken


Desconectado wilodxd

Respuesta #2 en: Noviembre 27, 2019, 07:13:51 am
Pues siguiendo la idea del código que encontraste y lo que menciono @BssString
                 
       
Sexo: Mensajes: 271
Age: - Ubicación: Chile

 
haz esto...

Event Create
//Modo de lectura, letra o numero
onlyNumb = false;// false = todo; true = solo numeros
Aqui activas el modo si cambias false por true solo te leera numeros

Event Step o Draw ( cualquiera de los sirve, pues, se ejecutan en cada frame, lo ideal es draw, ya que, ya tienes un evento ahi )
if( keyboard_check_pressed( vk_anykey ) && onlyNumb ){
      keyboard_string = string_digits( keyboard_string );
}
Aqui detecta cuando se pulsa un tecla, si es asi, ejecuta el codigo dentro que solo deja los numeros...

Espero te ayude : D

 
Los siguientes usuarios dieron las gracias a este tema: Zhekken


Desconectado Zhekken

Respuesta #3 en: Noviembre 27, 2019, 05:17:51 pm
Hola Zhekken

Si el resultado de tu contraseña es exacto, entonces comparalas como texto y ya.
Ej:
Código: [Seleccionar]
if (respuesta = "1234") { abrir puerta }Si usas las comillas estarás comparando textos en vez de números.

Existe la función "string_digits" que toma sólo los números de una string.
Ej: string_digits("100tifico") te da como resultado "100" (como texto)

También existe la función "real" para convertir una string a número siempre y cuando tenga formato de número.
ej: real("-12.5") te regresa -12.5 como número
Pero real("a123sdb5") falla.

Te sugiero combinar ambas. string_digits para dejar sólo los números y luego real para convertirlos a número.

Saludos

Muchas gracias por tu explicación, ya había intentado con "string_digits" pero no me había funcionado porque me faltaba usar el "real" para convertir el numero que escribía en "texto" a números ya que comparaba lo que escribía con una variable que era en números (por ejemplo: contraseña = 1234) entonces si se escribía en texto la respuesta (por ejemplo: respuesta = "1234") no me dejaba comparar.... como dices mas arriba podía hacer una comparación en texto pero así no me gusta... usando (string_digits) y (real) solucione mi problema, muchas gracias  :)

wilodxd ... también gracias a ti, aunque la verdad no me llevo bien con los booleanos  :( de hecho creo que no he hecho ningún mini ejemplo que los use ( o tal vez si pero no recuerdo ) por eso no supe aplicar tu solución, aun así te agradezco mucho por tomarte tu tiempo y querer ayudarme  :)