Hola comunidad. Llegue a un punto en el que me di cuenta que todos los juegos que realizaba eran de estilo plataformas, aventura. Hoy he decidido realizar algo totalmente distinto y de paso me ayudara a aprender nuevos conceptos en Game Maker.
Quiero crear un juego de trivia, es decir, de preguntas y respuestas para Android y será offline, es decir, el usuario no necesitara conexión como muchas app en las tiendas para funcionar.
El juego que estoy haciendo tendrá 300 preguntas aproximadamente y lo que necesito es justamente, como puedo hacer para que se dibuje al azar una pregunta entre esas 300 preguntas.
Lógicamente sería fácil hacer 300 objetos y que cada uno de esos objetos dibuje una pregunta. Entonces directamente se generaría al azar 1 objeto entre 300 objetos. Pero eso sería una locura y perjudicar el rendimiento del juego con tantos objetos habiendo seguramente mejores formas de hacerlo.
Y también me gustaría, o no se si sea mejor, que esas preguntas las obtenga de un archivo ini.
Hola, obtener de un ini, seria relativamente fácil. Mira
EL INI
[preguntas]
1="primera pregunta"
2="segunda pregunta"
así sucesivamente hasta 300 por ejemplo
Luego para leer
listapregunta = ds_list_create (o algo asi, no estoy en el pc ahora mismo)
ini_open(nombre.ini)
for contador=1; constador < 300; contador+=1
{
listapregunta(contador)= ini_read_string("preguntas", string(contador),0)
}
//Con esto o que hace es leer hasta 300, todas las preguntas y guardarlas en una lista.
Ahora solo falta elegir una al azar. Hay un función para elegir una al azar, pero no me acuerdo ahora, shuffle list, o algo asi.
También puede hacer pregunta = irandom(1-300)
textoamostrar = listapregunta(pregunta)
Con eso ya haces lo que quieres, el problema, es poner las respuestas, o averiguar cual respuesta es la buena. Sería cuestión de hacer mas cosas.
Espero te sirva, ahh, y si algún código esta mal escrito que alguien lo corrija, estoy escribiendo de memoria.
Aquí dejo un ejemplo que, como mencionó arcangelcaos, usa una ds_list para obtener las preguntas en orden aleatorio.
Hola Amigo !!! Puedo darte la solucion...
Yo ya he practicado con eso del azar en juegos y me a ido bien jaja no es por agrandarme sino que he tenido suerte de descubrirlo xD bueno..
Despues que hayas creado los 300 objetos con preguntas distintas.. crea 1 objeto mas que se llame "obj_control_preg" asi facilito jaja y pones en "event create" lo siguiente..
Abre un Execute code y escribe:
global.Question = 0
global.Question = random(300)
if global.Question > 300
{global.Question = 300 }
if global.Question < 1
{global.Question = 1}
eso es para que se eliga al azar entre 1 y 300, porque el 0 no cuenta como pregunta.bueno
ahora, empieza la parte donde tienes que actuar como un todo programador y tomarte tu tiempo de escribir un poquito jaja
ahora ya hecho eso, abre otro Execute code nuevo, en el mismo event_create, debajo del que acabaste de hacer.. en orden.
escribe asi sucesibamente como yo: segun el numero del global.Question es la pregunta.
osea, si el global.Question = 1 la pregunta será la 1, si es de 2 será la 2 y asi siempre ok? quedaría como aqui esta.
if global.Question = 1
{instance_create(x,y, AQUI EL NOMBRE DEL OBJETO PREGUNTA 1)}
if global.Question = 2
{instance_create(x,y, AQUI EL NOMBRE DEL OBJETO PREGUNTA 2)}
if global.Question = 3
{instance_create(x,y, AQUI EL NOMBRE DEL OBJETO PREGUNTA 3)}
y sigues asi hasta llegar a las 300 preguntas, te has tomado el tiempo de hacer 300 objetos ahora has esto tambien jajajaj pero es un rato muy corto, porque es mas facil... ahora solo escribe y todo saldrá como querias.
y si tienes otros inconvenientes como en todo juego suele pasar, y no sabes como repararlos. dejame decirte esto:
Por Pregunta sobre este tema o otras dudas que tengas, te hago saber que me llamo Luiber Extrenzas en Facebook, AGREGAME! yo aqui te dejo el Link, cuando quieras, a las ordenes (Y)
https://www.facebook.com/profile.php?id=100008220635391