Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - JohnW

46
Hola de nuevo, sigo haciendo pruebas pero sin lograr resultado.

He calculado los bpm de la cancion y los he dividido por segundos para saber a cuanto poner los steps es decir...

La cancion es de 140 bpm dividido por 60 segundos me da 2,333333333.

El problema es... como pongo yo los steps para que caigan las notas a esa velocidad?

Si cada 30 steps es 1 segundo y yo necesito que caigan a 2,33333333, como le digo yo a los steps eso?

Alguien puede ayudarme?
47
Hola amigos!
Bueno pues tengo una pregunta aver si los expertos de aqui me ayudan.

Estoy creando un juego estilo stepmani, guitar hero, DDR, etc... pero hasta ahora las notas las estoy poniendo a mano y calculando que segun el ritmo de la cancion pues llege a la tecla para ser pulsada.
Y claro hacer eso es un coñazo porque tienes que poner una nota, probar aver si cae en el momento preciso y es muy largo de hacer.

Me preguntaba si alguien sabe alguna manera o tiene algun script para crear las notas y que las notas vayan al ritmo de la cancion segun la que este sonando, y que cada nota caiga en su boton para ser pulsado en el momento que la cancion de un bombo de bateria y demas.

No se si me he explicado bien...

Gracias a todos y espero que me podais ayudar y crear un super juego con canciones ANIME como los que teniamos antiguamente en la play station 1 en el POP N MUSIC.
48
Preguntas y respuestas / Re:Activando!
Mayo 01, 2016, 05:28:05 PM
Cita de: eams1986 en Mayo 01, 2016, 05:14:34 AM
Hola gracias por contestar me.quede con el método más fácil el de NiuWeb .

Gracias funciona perfecto.
Una cosita más como hacer para agregar muchas más llaves.
En algunas pantallas habrán más que en otras

Buena imaginación tiene jhon gracias
Gracias

Si quieres poner más de una llave en el mismo nivel... pues siguiendo el ejemplo anterior de NiuWeb lo que puedes hacer es modificarlo de esta manera:
[gml]activado = 0; [/gml]
En colision cambias por esto:[gml]if (activado) = 5
    room_goto(olakase); // Lo cambiamos a 5, o por el número que quieras depende de las llaves que pongas[/gml]
Y en la colision con la llave lo cambias por esto:[gml]obj_meta.activado += 1; //Esto lo que hace es que al tocar una llave o cogerla, suma 1 a la variable activado.[/gml]

Entonces la variable activado empieza en 0, la meta no se activara hasta que la variable sea igual a 5, y por cada llave que cogas aumentas +1 a la variable activado, por lo tanto si pones 5 llaves y las activas todas, la variable activado sera igual a 5 y podrás pasar de nivel de lo contrario tendrás que seguir buscando llaves.
49
Preguntas y respuestas / Actualizador
Mayo 01, 2016, 04:37:38 AM
Hola a todos!
Bueno mi pregunta es sencilla, ¿es posible actualizar un juego en otro PC y que descarge su nueva versión?

Yo lo que hacía hasta ahora, era crear en un mini launcher mediante el get_url era poner una variable detallando la versión actual de el juego. luego en un servidor de webhost000 subia un archivo de texto con esa variable y que mediante el get_url la leia.
Y si esa variable yo la cambiaba en el archivo de texto de mi servidor en el juego salia el mensaje de que hay una nueva actualización y te llevaba a la página web para descargar el juego nuevo.

Y la pregunta es, si se puede hacer lo mismo pero en vez de tener que ir a la página y descargar otra vez el juego actualizado, que el game maker te descarge el juego y continues jugando con la versión actualizada.

Recalco que no quiero usar ni PHP ni Mysql porque no tengo idea de dichos lenguajes.
Y de ser así, ¿como sería el proceso para realizar esto?
50
Preguntas y respuestas / Re:Activando!
Mayo 01, 2016, 04:21:25 AM
Creo que ya se a que te refieres, por ejemplo.

Digamos que obj_1 es el player, obj_2 la llave que activa obj_meta, y obj_meta la puerta.

Entonces si esto es lo que quieres hacer pues podrías hacer esto:
En el obj_meta y en colision con el  obj_1[gml]if instance_exists(obj_2){
// lo que quieras que pase por ejemplo room_goto(nivel_siguiente);
}else{
// lo que quieras que pase si no tienes esa llave por ejemplo un texto que diga, necesitas la llave.
}[/gml]
Lo de instance_exists solo te servira si el obj_2 NO está en la room. En caso de que SI este...
Podrias hacer lo mismo pero en vez de instance_exists podrias poner una variable en el obj_2 que al colisionar con tu obj_1 se active[gml]activar = 0;[/gml]
y luego en colisionar[gml]activar = 1;[/gml]
Y por último en la obj_meta le podrias poner[gml]if activar = 1{
  room_goto(nivel_siguiente)
}else{
  // necesitas llave
}[/gml]
51
Preguntas y respuestas / Re:Uso de Objetos
Abril 30, 2016, 03:41:59 AM
Pero con el with (objeto) estamos en la mismas porque el chico queria controlar un mismo objeto con diferente ID y con el with(objeto) ya comentó que no bastaba porque obviamente afecta a todos.

Y lo que yo exponia de obtener la ID con un simple draw_text no me parece una perdida de tiempo, ya que es más fácil hacer un draw_text que poner un ciclo o código gml difícil de memorizar para alguien que esté empezando. Solo lo puse por eso.
Es tan sencillo com poner en el mismo objeto
[gml]draw_self(); //Esto es para que no se borre de la room tu objeto al usar el evento Draw
draw_text(x, y-16, string(id)); // Esto mostrará 16 pixeles encima de tu objeto su ID[/gml]

De igual manera si quieres controlar esa misma ID o cualquier otra, puedes guardar la id en una variable en el evento create del mismo por ejemplo[gml]mivariable = id;[/gml] y desde ahí ya la puedes gestionar.

Es fácil y no creo que sea una pérdida de tiempo tampoco, son 4 letras de nada.

Pero bueno solo era una forma repito "fácil" de entender y recordar. Tampoco soy profesional estoy aprendiendo igual que todos.
52
Ya esta solucionado!!

El error era que solo estaba especificando un mensaje de error a una sola condición "IF" cuando tengo 4 condiciones "IF". La solución era poner el mensaje de error al final de cada una de las llaves de cierre de cada condición "IF". Por eso no me leia el mensaje de "no es correcto" porque ese mensaje solo es válido si la última condición falla y no las demás.
53
Hola otra vez, he estado haciendo cambios en el código para intentar resolver el misterio de porque no salta el "ELSE".
[gml]if (n != 36)
    {global.mensaje = "La combinacion no es correcta.#Sigue probando.";
        alarm[0] = 90}
else
   {
    if (global.filaarriba) = (global.level3[4]){
    if (global.filaabajo) = (global.level3[6]){
    if (global.columnaizquierda) = (global.level3[5]){
    if (global.columnaderecha) = (global.level3[7])
    {
        global.mensaje = "¡PERFECTO! Has resuelto este juego."
        instance_create(room_width/2,room_height/2,obj_cargando);
    }else{
        global.mensaje = "La combinacion no es correcta.#Sigue probando.";
        alarm[0] = 9
    }}}}}
}[/gml]
El código funciona bien cuando se cumple esta parte[gml]if (n != 36)
    {global.mensaje = "La combinacion no es correcta.#Sigue probando.";
        alarm[0] = 90}[/gml]
El resto no consigo hacer que funcione, en teoría tendria que verificar que si lo de arriba se cumple entonces compruebe si esas 4 variables son iguales que las otras 4 y de ser así que salte el mensaje de correcto y de no ser así que salte el mensaje de no es correcto.

Pero por alguna extraña razón no funciona y no logro saber porque.
Una ayuda a los profesionales please!
54
Preguntas y respuestas / Re:Uso de Objetos
Abril 29, 2016, 02:00:47 AM
Cita de: luxizam en Abril 28, 2016, 11:03:16 PM
La función with(objeto)  creo que hace que se aplique a todos!

Me explico, creo dos instancias de un objeto vale?

instance_create(ob_player1,0,0);

instance_create(ob_player1,0,0);

si modifico por ejemplo las coordenadas :

ob_player1.x = ob_player1.x+10;

Se aplica a los dos Objetos como hago referencia solo a uno ? Se entiende?

Como te dice NiuWeb, en ese caso necesitarás la ID de cada objeto, esto no te pasaría si los objetos fueran diferentes pero al ser el mismo objeto, pues ya tienes que especificar su ID y entonces usar el "with" que te dije anteriormente con ese "ID"

Si no sabes sacar la "ID" de un objeto, si no recuerdo mal... podias poner en el objeto que querias identificar, un draw_text de tal objeto y que dibujara su ID en la room, luego la apuntas en un papel y ya la tienes.

Esto mismo se podia usar para saber la dirreción exacta o velocidad exacta de un objeto. poniendole draw_text(x, y, speed, obj_objeto) o algo asi era, o direction, y te decia en la room las posiciones, las id's, las direcciones exactas.

La manera que tiene game maker de calcular la direccion y velocidad de cada objeto para mostrarla en pantalla era algo como calculando los catetos por la hipotenusa diagonal y luego pasandola a la raiz cuadrada.

Bueno eso es todo, que ya me extendido demasiado.
55
Preguntas y respuestas / Re:Uso de Objetos
Abril 28, 2016, 04:48:55 PM
Cita de: luxizam en Abril 28, 2016, 03:13:02 PM
:-\ Como puedo hacer referencia a un objeto en si? sé que existe id de cada objeto, quiero hacer distintas acciones para objetos diferentes ...

No se si te servirá esto pero puedes probarlo...
En tu código cuando quieras referirte a un objeto de fuera lo puedes hacer así
[gml]with (obj_tuobjeto){
       //las acciones que quieras sobre tal objeto
}[/gml]

Yo lo hago asi y funciona bien, incluso si el objeto no está en la room me a funcionado.

Espero que te sirva.
56
Gracias NiuWeb me a funcionado, pero he cambiado los "and" por "or" ya que la misma resta no puede dar el mismo resultado de derecha a izquierda que de izquierda a derecha asi que lo cambie a "or" para que cualquiera de las dos maneras sea válida. ¿Funciona así esa expresión no?

Por otra parte me encuentro con otro pequeño problema, las llaves de cierre supongo que son el problema y que depende de como esten puestas en esa parte del código funcionan unas cosas y otras no. Te explico.
[gml]if (n != 36)
    {global.mensaje = "La combinacion no es correcta.#Sigue probando.";
        alarm[0] = 90}
else
{
   if (global.level3[0]-global.level3[3]) = global.level3[4] or (global.level3[3]-global.level3[0]) = global.level3[4]{
   if (global.level3[1]-global.level3[2]) = global.level3[6] or (global.level3[2]-global.level3[1]) = global.level3[6]{
   if (global.level3[0]-global.level3[1]) = global.level3[5] or (global.level3[1]-global.level3[0]) = global.level3[5]{
   if (global.level3[3]-global.level3[2]) = global.level3[7] or (global.level3[2]-global.level3[3]) = global.level3[7]
   {
    global.mensaje = "¡PERFECTO! Has resuelto este juego."
    instance_create(room_width/2,room_height/2,obj_cargando);
   }
else
   {global.mensaje = "La combinacion no es correcta.#Sigue probando.";}
if llamada == true {
    alarm[0] = 90;
    llamada = false;
}}}}}}[/gml]
Como ves en todos los IF de antes he cambiado por "or" pero todo lo de abajo pasará siempre y cuando pase la primera condición, verdad? Entonces, si nada de eso pasa... me tendría que sacar el[gml]{global.mensaje = "La combinacion no es correcta.#Sigue probando.";}[/gml] que hay despues de else y no me lo saca directamente no me saca el mensaje, solo me lo saca si n != 36, en ese caso si funciona pero en el de abajo no.

He de decirte que antes de poner las condiciones "IF" si que mostraba el mensaje eh, así que deduzco que el código está mal ordenado en cuestion de llaves y tal.

¿Me lo puedes mirar?
57
Hola amigos,
¿alguien le puede hechar un vistazo a este código y decirme porque no hace caso de lo que le intento decir?
¿Que puede estar mal? o ¿De que otra manera se podría hacer esto?
[gml]if (n != 36)
    {global.mensaje = "La combinacion no es correcta.#Sigue probando.";
        alarm[0] = 90}
else
{
   if global.level3[0]-global.level3[3] and global.level3[3]-global.level3[0] = global.level3[4]{
   if global.level3[1]-global.level3[2] and global.level3[2]-global.level3[1] = global.level3[6]{
   if global.level3[0]-global.level3[1] and global.level3[1]-global.level3[0] = global.level3[5]{
   if global.level3[3]-global.level3[2] and global.level3[2]-global.level3[3] = global.level3[7]{
   global.mensaje = "¡PERFECTO! Has resuelto este juego."
   instance_create(room_width/2,room_height/2,obj_cargando);}}}}}
}else{
    global.mensaje = "La combinacion no es correcta.#Sigue probando.";}
if llamada == true {
    alarm[0] = 90;
    llamada = false;
}[/gml]

Explico de que va el código, la cosa es que al acabar una pantalla me verifica si "n es igual o no a 36" y de ser igual, tiene que comprobarme si las las restas "if global.level3[0]-global.level3[3]" es igual que el resultado de su otra variable "global.level3[4]".

Y tiene que hacer la misma comprobación en las otras 3 variables que tiene.
58
Cita de: Clamud en Abril 26, 2016, 08:22:16 PM
Siempre se toma la última configuración, por eso se debe configurar y dibujar de inmediato. Mira el ejemplo adjunto.
Pues que raro, eso mismo hago en Studio, sin embargo solo funciona cuando los textos son fijos y no se crean después.
Es decir, si tu dibujas un dos textos con Draw_text y pones los dos objetos en la room "como en tu ejemplo" entonces sí funciona.

Pero si en lugar de eso, pones un solo objeto y en ese objeto le dices que active una alarma y en esa alarma le pones [gml]instance_create(obj_texto2)[/gml]
es ahí cuando ocurren los fallos, al crearse el nuevo objeto texto con su nueva configuración, tiene efecto en todos los demás textos que sean fijos en la room.
59
Me sigue cambiando los demás textos, el problema es que si tu pones un texto con sus opciones, los demas textos se adaptan a él aunque ellos tengan otras opciones.
60
Cita de: kostra en Abril 26, 2016, 06:54:48 PM
Para estos casos yo recomiendo el uso de scripts

Te refieres a poner los estilos de cada texto en una script cada una?
[gml]draw_set_color(c_white)[/gml]
¿Y luego crear otro script con otro color o estilo y desde el objeto cargar dicho script para cada caso?
¿Y esto haría que mis textos cogieran cada uno la forma que le corresponde sin afectar al resto de textos de la pantalla?