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.

Temas - JohnW

1
Preguntas y respuestas / Problema con la resolucion
Abril 09, 2022, 09:39:22 AM
Hola amigos!

Tengo el problema de que mi juego no se ve igual en todas las pantallas... y he leido mucho sobre este tema intentando coger solucion de varios sitios, pero nada parece funcionarme.

Mi juego esta con rooms a 1920x1080 y cuando alguien con una pantalla menor o mayor a esto... se descoloca mi juego moviendome las cosas a otro lugar en vez de adaptarse a la pantalla.

Actualmente solo me pasa con los textos hechos en Draw... los backgrounds de las rooms se adaptan a todo haciendose mas pequeñas o mas grandes.

¿Como puedo solucionar esto para que sea cual sea la pantalla que lo abra... se ejecute todo en su sitio?
2
Entonces para que funcione los comandos "coger objeto" y "dejar objeto" he de copiar los scripts de coger y tantas veces como objetos tenga sustituyendo en cada copia el "nombre del item" por el nombre del objeto, no?

Por ejemplo para coger linterna:
[gml]var Pos = array_find(global.invpj,"")
if  Pos != -1 {
obj_inventario_room.inv = array_delete(obj_inventario_room.inv,array_find("Linterna"),1)
global.invpj[Pos] = "Linterna"
String = "Cojo " + "Linterna"
}
else String = "No tengo espacio para coger " + "Linterna"[/gml]
Y ahora justo debajo copio todo ese codigo pero con otro item... asi con todos, y con el script de dejar items lo mismo no?

El error que me daba era que faltaba un "1" al lado de linterna xq pedia 2 argumentos y le estabamos dando 1 quedando asi:
[gml]var Pos = array_find(global.invpj,"")
if  Pos != -1 {
obj_inventario_room.inv = array_delete(obj_inventario_room.inv,array_find("linterna",1),1)
global.invpj[Pos] = "linterna"
String = "Cojo " + "linterna"
}
else String = "No tengo espacio para coger " + "linterna"[/gml]

Ahora me da error al coger un objeto me da error en array_delete:
[gml]Push :: Execution Error - Variable Get -7.temp_array(100008, -2147483648)
at gml_Script_array_delete (line 9) - return temp_array;
############################################################################################
--------------------------------------------------------------------------------------------
stack frame is
gml_Script_array_delete (line 9)
called from - gml_Script_cogeobjeto (line 3) - obj_inventario_room.inv = array_delete(obj_inventario_room.inv,array_find("linterna",1),1)
called from - gml_Object_inputBox_DrawEvent_1 (line 10) -         case ("coge linterna"):cogeobjeto(); break;
[/gml]
3
Hola, estoy creando un juego de aventura grafica, (estilo El Enigma De Aceps de Amstrad) pero sin escribir, todo a base de botones.

Tengo un boton que se llama "examinar" otro que se llama "coger" y otro "dejar"
Necesito crear una lista de objetos (los cuales no seran reales ya que en las pantallas no habran objetos). La idea es que al entrar en X room y le de al boton "examinar" me diga algo como "Veo la linterna y un pedernal".
Luego con el boton "coger" Pueda coger esa linterna o lo que sea y que desaparezca de la room esa (la room tiene que memorizar que ya se a cogido)
Luego si mas tarde suelto los objetos con el boton "dejar" en otras rooms, que la room memorize que se a soltado ahi por si luego vuelvo a esa room y me interesa cogerlo.
Y que a la vez me escriba por la pantalla las acciones "Veo X objeto" "Has cogido X objeto" "Has dejado X objeto"

Todo esto sin tener objetos fisicos dentro de la room ya que en la room solo se vera el fondo... los objetos realmente seran "imaginarios"

Tengo 31 rooms creadas, con los botones, la interfaz y demas... me falta algo asi para poner el juego a funcionar.

¿Me ayuda alguien?
Gracias a todos!


4
Hola amigos!
No se si podre explicarme bien lo que quiero conseguir.
Estoy desarrollando un juego retro llamado "El enigma de Aceps" que salio para Amstrad y yo lo intento llevar a cabo en PC.
El que conozca el juego sabra que es una aventura grafica en la que hay que escribir todo el rato (coger, mirar, examinar, sur, norte, este, etc...)

Yo estoy recreando el juego omitiendo la escritura y en su lugar poniendo un menu de acciones con los botones (coger, mirar, examinar, etc...) para no tener que escribir.

Me surgen varios problemas:

1. A la hora de los botones como coger y examinar, he echo que al apretar el boton examinar, si hay algun objeto en esa instancia me lo diga. Esto lo he echo con una variable por ejemplo: global.linterna=1 y si la cogo pues global.linterna=0. El problema viene cuando hay mas objetos en la instancia o dejas alguno... no se como enfocarlo para que el codigo no sea tan extenso.

Lo que tengo ahora:
global.linterna=1
si clicas boton coger, no encuentras nada xq primero como obligacion tienes que examinar la sala con el boton examinar.
al clicar en coger se crea un nuevo boton con el item que hay en la sala (la linterna) y si la coges, ese boton cambia por uno que pone (nada) y el juego te dice que no ve nada en especial.
Pero lo estoy haciendo en drag and drop ya que no se mucho de codigo... y a la hora de poner mas objetos... o incluso de hacer que las voces se quiten o se escuchen en el juego he de poner muchas condiciones IF... por ejemplo...
si la voz esta activa y si estas en la pantalla 3 y si has examinado el lugar, mostrara linterna y si no pues no mostrara nada. (aqui si pongo un item mas el codigo drag and drop ya es muy extenso)

Por otra parte si quiero soltar esa (linterna) en otra room, no encuentro la manera de hacer que una variable me recuerde cuantos objetos hay en esa instancia, por ejemplo.
Si en la room 2 hay un pedernal y suelto la linterna... que al examinar me diga que hay un pedernal y una linterna y que independientemente de lo que coga la variable detecte o se acuerde de lo que hay en cada room.

No se si me explicado bien pero espero que me podais ayudar... es un juego retro que quiero sacar a PC con esas funciones y me gustaria acabarlo para compartirlo con vosotros.

Muchas gracias!

imagen del juego:
https://ibb.co/dWD6dw5
5
Preguntas y respuestas / Micro pagos
Marzo 14, 2019, 01:10:30 AM
Hola amigos!
Queria preguntar si se puede añadir micro pagos en el juego por ejemplo por paypal.

He creado un boton en tienda que al clicar redirige a paypal pero aunque efectues el pago en el juego no detecta dicho pago.

¿Alguien sabe alguna manera fácil de lograr esto?

Muchas gracias.
6
Preguntas y respuestas / Comparar reloj online
Febrero 08, 2018, 12:37:14 PM
(Me he equivocado de seccion y lo he puesto en propuestas, por eso lo pongo de nuevo aqui.(

Hola amigos, no se si hay un post de esto pero no lo encuentro xq no se exactamente como se llama lo que quiero hacer.

Empiezo:
Estoy haciendo un juego de farmeo estilo "FarmVille" de granjas y eso. Lo que quiero hacer es que cuando clique en un sitio para que empieze a hacerse, pues al cerrar el juego, que siga contando ese tiempo y luego al volver a abrir el juego horas despues que ya este terminado de farmear, vamos como cualquier juego.

No se como hacerlo pero si que tengo una idea de como se podria hacer, aver si alguien me ayuda con el codigo.

La idea seria que el juego detectara la hora online (digo online xq asi evitamos posibles hacks de cambio de hora local) y una vez detecte la hora y dia el juego la compare con la hora y dia en la que se cerro el juego, o algo asi. Y de esa manera si pusiste una granja de maiz por ejemplo dura 2 horas y a las 2 horas entras al juego de nuevo, ese maiz tendria que estar para recoger ya.

Yo lo que se es esto:
draw_text(32, 32, "Hora: " + string(current_hour) + ":" + string(current_minute) + ":" + string(current_second));
draw_text(32, 52, "Dia: " + string(current_day) + "/" + string (current_month) + "/" + string(current_year));


Claro esto es a modo local, quiero lo mismo pero con el tiempo online y luego la formula para comparar ese tiempo con el restante de un farmeo. No se si me explico.

Espero que alguien pueda ayudarme y que no sea algo muy dificil de hacer, gracias a todos!

7
Preguntas y respuestas / Comprobar reloj online
Febrero 08, 2018, 11:44:31 AM
Hola amigos, no se si hay un post de esto pero no lo encuentro xq no se exactamente como se llama lo que quiero hacer.

Empiezo:
Estoy haciendo un juego de farmeo estilo "FarmVille" de granjas y eso. Lo que quiero hacer es que cuando clique en un sitio para que empieze a hacerse, pues al cerrar el juego, que siga contando ese tiempo y luego al volver a abrir el juego horas despues que ya este terminado de farmear, vamos como cualquier juego.

No se como hacerlo pero si que tengo una idea de como se podria hacer, aver si alguien me ayuda con el codigo.

La idea seria que el juego detectara la hora online (digo online xq asi evitamos posibles hacks de cambio de hora local) y una vez detecte la hora y dia el juego la compare con la hora y dia en la que se cerro el juego, o algo asi. Y de esa manera si pusiste una granja de maiz por ejemplo dura 2 horas y a las 2 horas entras al juego de nuevo, ese maiz tendria que estar para recoger ya.

Espero que alguien pueda ayudarme y que no sea algo muy dificil de hacer, gracias a todos!

8
Preguntas y respuestas / Dividir variables
Octubre 27, 2017, 11:42:20 PM
Hola familia!
Estoy intentando crear un mini programa de calculo que calcule de manera automatica unas operaciones basandose en la ley de ohms y la ley de Watts.

El problema viene en que cuando quiero asignar una division al estar la variable en 0 pues me da error de division.

Yo tengo puesto en Create:

vatios = 0
intensidad = 0
resistencia = 0
potencia = 0

vatios = intensidad*resistencia
intensidad = vatios/resistencia
resistencia = vatios/intensidad
potencia = vatios*intensidad

Entonces yo lo que quiero con esto es que si por ejemplo tengo un problema matematico tipo este:
Tengo una lampara de 100potencia a 230vatios, ¿cual es la intensidad y la resistencia?

Pues que yo le ponga en potencia 230 y en vatios 100 y automaticamente me saque lo demas.

No se si me he explicado, espero que alguien entienda lo que quiero y me pueda ayudar.


Para los que no sepan como va la ley ohms y watts os pongo aqui las operaciones para poder entender lo que quiero hacer.

Ley ohms:

vatios = intensidad * resistencia
intensidad = vatios / resistencia
resistencia = vatios / intensidad

Ley watts:

potencia = vatios * intensidad
intensidad = potencia / vatios
vatios = potencia / intensidad

Muchas gracias a todos y espero que alguien consiga ayudarme!
9
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.
10
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?
11
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.
12
Hola amigos!
Tengo una pequeña duda con los textos dentro del juego. Cuando quieres poner varios objetos de texto todos cogen el mismo estilo y no son independientes, es decir.
Yo creo un objeto de texto con
[gml]draw_set_color(c_white);
draw_set_halign(fa_center);
draw_set_valign(fa_middle);
draw_set_font(fnt_texto1);[/gml]
Bien pues si luego creo otro objeto con otro texto, y le pongo que este segundo sea de otro color y que en vez de alinearse al centro se alinee por ejemplo a la izquierda... pues el primer texto no hace caso a su programación y obta por coger la programación de su segundo objeto o viceversa.

Me explico? Entonces la pregunta es ¿como se puede poner varios textos con varios estilos cada uno de fuentes, colores y alineaciones sin que este afecte a los demas textos?

He probado con cosas asi y nada
[gml]with (obj_texto1){
     draw_set_color(c_white);
     draw_set_halign(fa_center);
     draw_set_valign(fa_middle);
     draw_set_font(fnt_texto1);
}
with (obj_texto2){
     draw_set_color(c_lime);
     draw_set_halign(fa_left);
     draw_set_valign(fa_left);
     draw_set_font(fnt_texto2);
}[/gml]
Esto lo he probado de poner todo en un mismo objeto o cada with en su respectivo objeto y no funciona de ninguna manera.

Gracias!
13
Hola amigos!
Aver si me podeis ayudar, estoy creando un juego matemático en el cual debo comprobar que unas variables no sean iguales que otras y si lo fueran que de error y si no lo fueran lo de por correcto.
Me explico mejor, el jeugo trata de resolver unos rompecabezas de números colocando unos números que yo tengo asignados en cada variable pero que no los puedan repetir por ejemplo si variable1 = 1 y variable2 = 1 (error) algo asi.

Tengo puesto este código:
if (global.circulosarriba)+(global.circulosizquierda)+(global.circulosabajo)+(global.circulosderecha) = 72
{
    if (global.contador2 = 72)
    {
        if (global.circuloclick1)and(global.circuloclick2)and(global.circuloclick3)and(global.circuloclick4)and(global.circuloclick5)and(global.circuloclick6)and(global.circuloclick7)and(global.circuloclick8) != (global.circuloclick1)and(global.circuloclick2)and(global.circuloclick3)and(global.circuloclick4)and(global.circuloclick5)and(global.circuloclick6)and(global.circuloclick7)and(global.circuloclick8)
        {
            global.mensaje = string("¡PERFECTO!#Has conseguido resolver el juego.");
            instance_create(room_width/2,room_height/2,obj_cargando);
            //instance_create(room_width/2,room_height/2,obj_combinacion_correcta);
        }
    }
    if (global.contador2 = 72)
    {
        if (global.circuloclick1)and(global.circuloclick2)and(global.circuloclick3)and(global.circuloclick4)and(global.circuloclick5)and(global.circuloclick6)and(global.circuloclick7)and(global.circuloclick8) = (global.circuloclick1)or(global.circuloclick2)or(global.circuloclick3)or(global.circuloclick4)or(global.circuloclick5)or(global.circuloclick6)or(global.circuloclick7)or(global.circuloclick8)
        {
            global.mensaje = string("¡La combinacion no es correcta.#Sigue probando.");
            alarm[0] = 90;
            //instance_create(room_width/2,room_height/2,obj_combinacion_correcta);
        }
    }


Como podéis ver en la primera variable "if (global.contador2 = 72)" compruebo que globalcirculo1 and 2 and 3, etc... no sea igual que globalcirculo1 and 2 and 3, etc... le he puesto != que significa a mi entender una negación.

Y justo debajo le puesto lo mismo pero solo = sin el !, para comprobar que si son iguales entre ellos que de error.

El problema viene en que si por ejemplo en un circulo pones 16 y en otro 2 para hacer 18 y repites eso en los 6 restantes (son 8 circulos) el juego me lo verifica como error correctamente, pero si pones 16-2,14-4, y acto seguido pones otro 16-2, es ahi cuando me lo sigue contando como correcto y deberia ser errónea.

No se si me he explicado bien.

Lo que necesito es crear un código que sea capaz de verificar si alguno de los números que hay en cada circulo esta repetido en otro circulo pues que de incorrecto y que si de lo contrario no hay ningún número repetido y todo el panel suma un total de 72 puntos, pues que lo de por correcto.

Los números disponibles en la partida son: 2,4,6,8,10,12,14,16,18.

Gracias por la ayuda!!