Noticias

Importante: ¡Si quieres publicar tu juego no olvides leer este tema!

* Sponsor

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!.

Mostrar Mensajes

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


Mensajes - dixon

Páginas: 1 2 3
1
Juegos completos / Re: la niebla biene
« en: Ayer a las 06:49:45 am »
Hola gusto en saludarlo.



!YA SÉ QUIÉN ES USTED!, usted es un genio/a. pues el tema del juego puede ser usado para crear algo muy profundo, triste y misterioso.


Criticas:

1. Presenta muchos fallos y no está en etapa jugable.  :'(
2. El fallo en los controles: Al parecer las teclas a usar son: A, S y D, y creo que son para saltar en direcciones distintas pero a veces salta adelante cuando presiono D o A. Y no hay nada que me ayude a saber cuales son las teclas a usar.
3. Creo que hay problemas con los gráficos o la pc que uso no es adecuada, no puedo ver la historia en la portada y no se ve bien nada:



Lo que me ha gustado:
1. La historia escrita me ha gustado porque puede profundizarse un poquito y generar algo de tristeza y miedo. Pero no me ha gustado como está escrita y creo que puede mejorarse por eso al final te dejaré otra narrativa.
2. La música me ha gustado, pero no tanto , creo que es demasiad repetitiva pero si transmite un poco de tristeza. Solo me hace pensar en esos animales que están siendo tragados por la niebla.
3. Los gráficos de la ranita y las hojas me parecen buenos, me transmiten sencillez.


Recomendaciones:
1. Yo recomiendo que si quieres crear juegos sencillos y ligeros para Windows utiliza gamemaker4.3c. (No quiero que me lancen tomates por esto).



Pero insisto en que si queremos crear juegos ligeros para windows usemos gamemaker4.3c del año 2000. Lo podemos descargar gratis desde la siguiente web: https://gamemaker.cc/?section=gamemaker

2. Para publicar un juego tienes que utilizar el generador de planillas, el cual tienes que encontrar en alguna parte de esta web. Aquí

3. Emplea las flechas direccionales del teclado cuyos códigos son vk_left, vk_up, vk_down, vk_rigth. De esta forma no necesitarás instrucciones.


4. Si quieres que tu juego sea jugado inmediatamente después de tu publicación deberás crear juegos html5, es decir exportar a html5 y subirlo a un servidor host web para obtener un enlace público de acceso. Pero si no quieres crear una cuenta en un host web  puedes subirlo a tu google drive, habilitar una carpeta de drive para páginas web (buscar instrucciones en google) y finalmente entra en drv.tw para obtener tu enlace de acceso público (el link, url de tu juego que permitirá que otros usuarios accedan a tu juego). Si lo subes a un servidor web y le haces unos ligeros ajustes agregándole controles táctiles para juegos html5 (Aquí puedes saber más), pudieses lograr que tu juego sea jugado inclusive en teléfonos móviles.


5. Tienes que subir tu juego.exe a la nube, a google drive, media fire, mega, etc.. para que todos puedan descargarlo, inclusive los visitantes, ya que si lo subes solo a esta web, solamente los usuarios registrados serán los únicos en ver el juego.

Te dejaré el siguiente código para que lo copies, modifiques tu publicación pegando ese código:

Código: [Seleccionar]
[center][img]https://www.comunidadgm.org/images/pl_titulo.png[/img]
[size=13pt]
[b]La niebla viene[/b][/size][/center]
[center][table][tr][td][center][img]https://www.comunidadgm.org/images/pl_gen.png[/img]
[size=11pt]
[b]Otro[/b][/size][/center][/td]
[td][center][img]https://www.comunidadgm.org/images/pl_ver.png[/img]
[size=11pt]
[b]GM: Studio[/b][/size][/center][/td][/tr][/table][/center]
[img]https://www.comunidadgm.org/images/pl_sinop.png[/img]
[b]Historia[/b]
Una rana intenta escapar de una misteriosa niebla que está consumiendo a todos los animales del bosque encantado.

[img]https://www.comunidadgm.org/images/pl_img.png[/img]
[table]
[center]
[tr][td][img]http://imgfz.com/i/aERHo1W.png[/img][/td][/tr]
[/center]
[/table]


Con el código obtendrás algo como esto:



La niebla viene


Otro


GM: Studio

Historia
Una rana intenta escapar de una misteriosa niebla que está consumiendo a todos los animales del bosque encantado.










Pronto se revelará el secreto del dragón que permitirá jugar juegos directamente en esta web, pero solo los juegos html5 podrán alcanzar este objetivo, anímate a mejorar tu juego y convertirlo en un html5 para que seas unos de los primeros en lograr esa meta.

2
Preguntas y respuestas / Re: ¿Se puede imprimir?
« en: Abril 16, 2022, 02:52:57 am »
Hola, gusto en saludarlo.

Respuesta resumida:  No sé como imprimir un documento pero te explico lo que sé al respecto.


Hace unos años atrás quise mandar a imprimir un archivo con game maker y no lo logré porque no investigué más al respecto.

Estos son algunos datos sobre el tema:
1.   Game maker no incluye función para usar impresoras. (No sé si alguna versión nueva lo incluyó pero creo que no).
2.   Game maker incluye dos funciones claves, execute_program y execute_shell, pero estas al parecer fueron cambiadas (“Actualizadas”).

Para cumplir el objetivo de imprimir un archivo se pueden seguir los siguientes pasos “en teoria”.

1.   Crear un botón en game maker para imprimir.
2.   Decirle a game maker que cuando se presione ese botón se cree  un documento .txt con la información que deseamos imprimir.
3.   Luego de crear el cocumento, en ese mismo momento se manda a ejecutar un programa externo .bat (Si se está trabajando en windows).
4.   El programa externo debe tener un código que al iniciar el programa imprima el archivo .txt creado.
   
La teoría dice que se puede crear un archivo .bat para Windows que contenga el siguiente código:
Código: [Seleccionar]
print datos.txt

Es decir abre un block de notas y escribes eso, luego lo guardas como “imprimir.bat”.

Luego tienes que decirle a game maker que ejecute el imprimir.bat, pero antes debes crear el archivo datos.txt

Yo no he logrado ese objetovo y actualmente no tengo impresora, pero estoy seguro que el camino es ese o uno parecido.

Aquí hay más información sobre os archivos .bat para imprimir.

http://www.forosdelweb.com/f14/imprimir-doc-desde-archivo-bat-106613/

Aquí un diagrama.



Espero que te sirva la respuesta.


3
Preguntas y respuestas / Re: Problena con varias instancias
« en: Febrero 10, 2022, 02:00:18 pm »
Hola saludos, espero que tengas un bonito dia.


Este corrige el fallo de la MATRIX.
Código: [Seleccionar]
if (seleccionado) && (crea_logo){ //La variable crea_logo, hace que no se cree la instancia obj_logo_Recolect infinitamente
with(obj_Crystal_Energia)
{
instance_create_depth(x,y,-1,obj_Logo_Recolect);
}
    crea_logo = false;
}else if(seleccionado = false) && (!crea_logo){
    crea_logo = true;
    with(obj_Logo_Recolect)
{
    instance_destroy();
}
}

4
Preguntas y respuestas / Re: Problena con varias instancias
« en: Febrero 09, 2022, 02:47:20 pm »
Hola saludos.


Respuesta definitiva:
Código: [Seleccionar]
if (seleccionado) && (crea_logo){ //La variable crea_logo, hace que no se cree la instancia obj_logo_Recolect infinitamente
with(obj_Crystal_Energia)
{
instance_create_depth(x,y,-1,obj_Logo_Recolect);
}
    crea_logo = false;
}else if(seleccionado = false){
    crea_logo = true;
    with(obj_Logo_Recolect)
{
    instance_destroy();
}
}

5
Hola saludos cordiales.

;D


Representan el orden de ejecución, es decir todos son ejecutados en cada paso, pero primero  BeginStep  luego step y finalmente EndStep, se emplean solo para ordenar el código segun mi parecer,  aunque pensandolo bien es posible que EndStep se ejecute después del evento Draw y el step antes del draw.

6
Preguntas y respuestas / Re: Capturar texto dibujado en un objeto
« en: Enero 02, 2022, 08:40:59 pm »
Hola, saludos.



Quizás hiciste algo como esto:
Código: [Seleccionar]
draw_text(x,y,”Soy el objeto x”);

Lo adecuado es introducir el texto dentro de una variable y usar esa variable como el siguiente código:
Código: [Seleccionar]
variableTexto=”soy el objeto x”;
draw_text(x,y,variableTexto);

En el evento creación (CREATE) también deberás colocar:
Código: [Seleccionar]
variableTexto=”soy el objeto x”;
Ahora mencionas a un objeto que capturará el texto que contenga la instancia luego de colisionar con ella.

Para resolver eso debemos identificar a los objetos que intervienen en el proceso:

objetoTexto: objeto que contiene el texto, el cual tiene varias instancias.
objetoCapturador: objeto que capturará el texto de alguna instancia del objetoTexto.
Tambien debemos identificar las variables que intervendrán en el proceso:
variableTexto: es la variable del objetoTexto que contiene el texto del objeto la cual varía en cada instancia.
variableCaptura: es la variable del objetoCapturador la cual almacenará el texto que contenga la instancia con la cual colisione.
Entonces el proceso es el siguiente:
1.   El objetoCapturador colisiona con una instancia del objetoTexto.
2.   El objetoCapturador identifica a la instancia.
3.   El objetoCapturador toma el texto almacenado en la variableTexto del objetoTexto.
4.   El objetoCapturador almacena el texto capturado en su propia variableCaptura.

Códigos necesarios para el objetoCapturador:
   “OBJETOCAPTURADOR.”
1.   El objetoCapturador colisiona con una instancia del objetoTexto.
Supongo que estás usando un evento de colision o quizás estas usando place_empty o place_free o place_meeting, u otra técnica para interpretar una colision.

2.   El objetoCapturador identifica a la instancia:
En el evento de colisión deberás colocar:
Código: [Seleccionar]
nnn=instance_nearest(x,y,objectTexto);
variableCaptura = nnn.variableTexto;

   Listo, el objeto capturador tiene en su variableCaptura el valor de la variableTexto de la instancia con la cual ha colisionado.

¿Cómo funciona?
1.   La función instance nearest devuelve o retorna el id o identificador único de la instancia más cercana al punto indicado, en este cado los puntos son x,y los cuales hacen referencia a la posición del objetoCapturador.
2.   ¿Cómo es eso que devuelve? , Respuesta: Eso quiere decir que nos dará el nombre único de la instancia.
3.   ¿Qué es el nombre único? , Respuesta: Es el id, o el identificador único que tiene cada instancia, es su nombre.
4.   ¿Para qué quiero el identificador único? , Respuesta: Con el identificador único podemos acceder a cualquier variable interna de la instancia.
5.   ¿Cómo obtenemos una variable interna de la instancia? ,Respuesta:
a.   Primero almacenamos su identificador único en una variable, en este caso la llamaremos nnn.
Código: [Seleccionar]
nnn=instance_nearest(x,y,objetoTexto);
Esto quiere decir que ahora la variable nnn contiene el nombre único de la intancia.

b.   Luego le colocamos un punto seguido de la variable para acceder a cualquier otra variable interna de la instancia.
Código: [Seleccionar]
nnn.x
nnn.y
nnn.sprite_index
nnn.speed
nnn.hspeed
nnn.image_index
c.   Luego almacenamos en una variable el valor de la variable a obtener:
Código: [Seleccionar]
variableCapturadora = nnn.variableTexto;

7
Desarrollo de Scripts / ajuste_canvas_html5(width,height);
« en: Junio 24, 2021, 06:28:11 am »
Nombre del autor : Reyes Dávila.
Breve descripción de su función : Ajusta el canvas (el área de juego) en exploradores web, manteniendo la proporcion aunque se cambie la orientacion del dispositivo movil.
Versión GM utilizada : Game Maker studio.

Código del script:
ajuste_canvas_html5(width,height);

Código: [Seleccionar]


///ajuste_canvas_html5(width,height);
//Este script deberá ser llamado "ajuste_canvas_html5"
//Colocar en evento create: ajuste_canvas_html5("create");
//Colocar en evento step : ajuste_canvas_html5("step");

if(argument0="create")
{
    ///////////////////////////////////Datos a modificar
    Ancho00=room_width;
    Alto00=room_height;
    intervalo_ajuste=20;
    //////////////////////////Fin de datos a modificar

    ajuste_canvas_html5_step_time=0;
    proporcion_browser_previa=0;
    modulo="otro";
    if(string_length(string(self))>2){modulo="html5";alarm[0]=20};
}

if(argument0="step")
{
    ajuste_canvas_html5_step_time+=1;
    if(ajuste_canvas_html5_step_time=intervalo_ajuste)
    {
        ajuste_canvas_html5_step_time=0;
       
        proporcion00=Ancho00/Alto00;
        proporcion_browser00=browser_width/browser_height;

        if(modulo="html5")
        {
            if(proporcion_browser00!=proporcion_browser_previa)
            {
                anchox100=90*browser_width/100;
                altoy100=90*browser_height/100;
                altoy00=anchox100/proporcion00;

                while(altoy00>altoy100)
                {
                    anchox100-=1;
                    altoy00=anchox100/proporcion00;
                }

                window_set_size(anchox100,altoy00);
                window_set_position((browser_width-anchox100)/2,0);

            }//fin if(proporcion_browser00!=proporcion_browser_previa)

            proporcion_browser_previa=proporcion00;
        }
    }
}









Modo de uso

1. Crear un script llamado: ajuste_canvas_html5 con el código anterior.

2. En el evento create colocar:
Código: [Seleccionar]
ajuste_canvas_html5("create");
3. En el evento step colocar:
Código: [Seleccionar]
ajuste_canvas_html5("step");

8
Preguntas y respuestas / Re: camara estilo mario bros
« en: Mayo 31, 2021, 05:54:40 am »
Hola fedex2020.

1.   La cámara se llama view.
2.   La view tiene una posición x en la room, la cual se almacena en una variable o función.
3.   Creo que la función que almacena la posición de la view se llama view_xview[0...7].
4.   En otras versiones de gmk la función se llama view_left[0..7].
5.   Si tienes una sola view, el índice de la view es cero, ejemplo: view_xview[0].
6.   Existen varios métodos para que la view siga a un objeto.
7.   Uno de tantos métodos permite que la view no se devuelva.
8.   Los métodos dependen del ingenio del programador.
9.   Los métodos no son más que scripts donde se combinan las funciones de la view.
10.   No necesariamente tienes que comprender todo lo que se ha dicho.


Recomendaciones para lograr que una view siga a un objeto y no se devuelva.

1.   Especifica tu versión de game maker.
2.   Crea una view con un tamaño adecuado en la view.
3.   Importante: No le actives el seguidor automático de objeto.
4.   En el objeto coloca el siguiente script, en un evento step o paso.

Limite=100;
while(x>(view_xview[0]+limite)){view_xview[0]+=1}

5.   La variable limite indica la posición máxima que debe alcanzar el objeto para que se mueva la view.

6.   En game maker 4 y 5 se usaría:

Limite=100;
while(x>(view_left [0]+limite)){ view_left [0]+=1}

   Suerte, explora y has pruebas, hasta que obtengas lo que necesites.

9
Preguntas y respuestas / Re: tengo un error al hacer mi enemigo
« en: Mayo 24, 2021, 01:32:18 am »
Jajajaja, no te preocupes.

Creo que era más fácil que me pasaras un editable jejejeje., pero no tengo game maker studio disponible, solo tengo una pc vieja que no sé si valla a soportarlo.

Estoy en tu web
https://bird-sick-games.blogspot.com/

10
Preguntas y respuestas / Re: Fuentes Borrosas
« en: Mayo 18, 2021, 08:22:28 pm »
Hola, saludos a todos.

A mí pe pasó algo como eso en game maker studio al exportar a html5, aún no he encontrado la solución ideal, pero hice varios experimentos e inclusive traté de crear mi propia fuente. Estos son algunos de mis hallazgos:

1.   Los píxeles de distorcionan cuando la view o room es menor a 256x256.
2.   Al parecer game maker hace una escala automática cuando se exporta en algunas plataformas lo que hace que desaparezcan algunos píxeles.
3.   El problema persiste solo al esportar en html5 y no present problemas al exportar a Windows.
4.   Esto afecta a imágenes y textos, pero gravemente a textos.
5.   Hay que experimentar con texto grueso, oscurecido con la función “negrita”, Quizás se corrija un poco la falla.
6.   Las imágenes lograron corregirse al ser aumentadas al doble es decir que si median 256x256 ahora miden 512x512, lo que cada pixel está representado con 4 píxeles, esto evitará que todos los pixeles sean borrados.



11
Hola, saludos

Bueno, recomiendo:

1. Que ambos usen la 1.
2. Que no se exijan mucho.
3. Que se repartan los niveles.
4. Que creen niveles identificando correctamente los sprites y objetos.
5. Que cada nivel sea absolutamente independiente del juego para evitar una confusión de objetos.
6. Primer paso: has un nivel, y dile a tu camarada que haga otro, luego une todo poco a poco.
7.Cada nivel debe ser un proyecto independiente
8. Cada nivel debe entregarse en estado funcional
9. Previamente definan la plataforma final: windows
10. Acepten las imperfecciones del otro compañero. No piensen en proyectos perfectos.


Un ejemplo:

Decido crear un nivel 1 para un juego x, entonces produzco un editable completo con solo el nivel 1 y lo mando a integrar al juego final. El encargado de integrar (que puede ser cualquiera porque todos tendrán una copia de cana nivel) integrara todo y luego creara una room dedicada a la portada.


Consejo: preferiblemente cada nivel debe estar compuesto por una sola room. Y si su intención es crear algo parecido a un rpg hay si van a tener problemas porque tendrán que organizarse muy bien para que todo encaje sin dificultades.

12
Preguntas y respuestas / Re:SCRIPT en 2.3 version
« en: Enero 21, 2021, 01:53:53 pm »
Hola, Buenos dias, saludos. Espero que Estes bien.

Si puedes envia una copia del manual of line que trade ESA version. Deberia estar end LA carpeta de instalacion y es de tipo .HTML. So pieces publica LA carpeta complete para verla y analizarla. No puedo her el nuevo manual end LA version online.

13
Lo que puedo imaginar es que no se está ejecutando instance_destroy(); porque como es una copia del objeto no está mandándose a destruir ella misma sino que está mandando a destruir al objeto original.

Puedes intentar cambiando esa fracción de código agragandole id.
 id.instance_destroy();
a ver si no te da error.
o con with
with (id){instance_destroy()}
queria algo asi

Cambiando a id.instance_destroy()
/// @description  preciona enter y cambia de dialogo
if keyboard_check_pressed(ord("X")) and indice <= referencia.final{
   if (mensaje == referencia.msg[indice]){
       indice += 1;
       global.mensaje += 1;
       if (indice > referencia.final) { obj_prota.stop = false; id.instance_destroy(); }
       mensaje = "";
       }else{
             mensaje = referencia.msg[indice];
       }
}

///coloca el cuadro de texto en la parte inferior de la pantalla
x = __view_get( e__VW.XView, 0 )+0;
y = __view_get( e__VW.YView, 0 )+176;


Y con with (id){instance_destroy()}

/// @description  preciona enter y cambia de dialogo
if keyboard_check_pressed(ord("X")) and indice <= referencia.final{
   if (mensaje == referencia.msg[indice]){
       indice += 1;
       global.mensaje += 1;
       if (indice > referencia.final) { obj_prota.stop = false; with(id){instance_destroy();} }
       mensaje = "";
       }else{
             mensaje = referencia.msg[indice];
       }
}

///coloca el cuadro de texto en la parte inferior de la pantalla
x = __view_get( e__VW.XView, 0 )+0;
y = __view_get( e__VW.YView, 0 )+176;

Tienes estos dos códigos para seguir probando.   
De no funcionar ahora emplea  esto: otro show_message("") de esta manera
show_message("si se ejecuta y obj_prota.stop es: "+string(obj_prota.stop))

Recueda que estamos utilizando el código original.
/// @description  preciona enter y cambia de dialogo
if keyboard_check_pressed(ord("X")) and indice <= referencia.final{
   if (mensaje == referencia.msg[indice]){
       indice += 1;
       global.mensaje += 1;
       if (indice > referencia.final) { obj_prota.stop = false;  instance_destroy(); show_message("si se ejecuta y obj_prota.stop es: "+string(obj_prota.stop)) }
       mensaje = "";
       }else{
             mensaje = referencia.msg[indice];
       }
}

///coloca el cuadro de texto en la parte inferior de la pantalla
x = __view_get( e__VW.XView, 0 )+0;
y = __view_get( e__VW.YView, 0 )+176;


Si ejecutas el ultimo código podrás tener dos respuestas:

1.   Que si aparezca el mensaje "si estas ejecutando y prota stop es: true o false"
2.   Y el otro caso que no te aparezca el mensaje y se vuelva a iniciar el mensaje.
Ahora

1.Si te apare el mensaje: el código  anterior esta bueno y instance_destroy(); no se esta ejecutando adecuadamente.
2. Si no te aparece el mensaje entonces el código anterior original debe ser cambiado denuevo.
Vamos a intentar esta otra cosa si aparece el mensaje, pues se supone que no se esta ejecutando el instance_destroy();
Vamos a introducir instance_destroy() en otro momento, cuando el índice sea 5, de la siguiente manera.

/// @description  preciona enter y cambia de dialogo
if keyboard_check_pressed(ord("X")) and indice <= referencia.final{
   if (mensaje == referencia.msg[indice]){
       indice += 1;
       global.mensaje += 1;
    if(indice = 5)
    {
    show_message("índice: "+string(indice)+"; si se ejecuta la destruccion")
    instance_destroy()
    }
       if (indice > referencia.final) { obj_prota.stop = false; id.instance_destroy(); }
       mensaje = "";
       }else{
             mensaje = referencia.msg[indice];
       }
}

///coloca el cuadro de texto en la parte inferior de la pantalla
x = __view_get( e__VW.XView, 0 )+0;
y = __view_get( e__VW.YView, 0 )+176;

Si aparece el mensaje y no se destruye la instancia, tienes que colocar instance_destroy() en esta otra posición para verificar que no se destruye.

/// @description  preciona enter y cambia de dialogo
if keyboard_check_pressed(ord("X")) and indice <= referencia.final{
   if (mensaje == referencia.msg[indice]){
    instance_destroy()//aqui es colocado instance destroy
       indice += 1;
       global.mensaje += 1;
       if (indice > referencia.final) { obj_prota.stop = false; instance_destroy(); }
       mensaje = "";
       }else{
             mensaje = referencia.msg[indice];
       }
}

///coloca el cuadro de texto en la parte inferior de la pantalla
x = __view_get( e__VW.XView, 0 )+0;
y = __view_get( e__VW.YView, 0 )+176;

Si se destruye la instancia, el problema puede estar en otro código, pero si no se destruye entonces simplemente no será destruida nunca de esa manera.

Tienes que tomar notas de todos estos experimentos para que me indiques como va evolucionando el problema. De esta forma podré entender mejo el sistema y lograremos hallar la solución, pero toma notas, muchos datos e informa paso a paso.

Si de ningún modo es destruida la instancia, entonces tendras que destruirla desde otro objeto, mandando su id y la orden de destrucción en una variable global, el objeto que la destruirá debe recibir la id y la orden de destrucción y ejecutar la destrucción de la instancia por medio de su  id.

¿Por qué puede estar sucediendo esto? A medida que game maker ha evolucionado ha aparecido errores e incongruencias en los códigos, no hay que asombrarse cuando se presentan estos errores, muchas veces pueden aparecer, ya he visto problemas similares entre códigos que parecen buenos pero que game maker no puede interpretar correctamente, estos casos los he visto cuando exporto a html5 con game maker html5 o studio 1.4. hay otros errores mas fuertes que no te permiten seguir ejecutando el juego y no te reportan el error, por lo tanto te dejan a ciegas y no se puede entender fácilmente lo que esta pasando. Por lo tanto para estos y los casos más difíciles hay que utilizar mucho el show_message(“”) e ir verificando los valores de las variables una por una para poder entender el origen del problema, y aun asi muchas veces he encontrado que el origen se escapa de mis manos y pertenece a un problema de game maker, entonces no me ha quedado otra que emplear otros codigos que logren el mismo objetivo.


14
Hola

Creo engender que el objeto original textbox no esta fallando, solo esta fallando una copia que has creado del mismo. ???

Los cambis entonces se los haras a LA copia y no al original. ESO es lo que entiendo.

Ai LA instancia debe destruirse cuando el induce sea mayor que LA referencia entonces pieces extraer ESE pequeño codio y hacerlo independiente del conjunto completo.. Dejame explicar..

1. LA instancia debe destruirse cuando el indice sea mayor a la referencia final.
2. Eso es esto: if (indice > referencia.final) { obj_prota.stop = false; instance_destroy(); }
3. El indice no esta llegando a ser superior o no she esta ejecutando el codigo completo.
4. ESA linear de codigo puede estar sola end el even to step y no deberia afectar end Nada.
5. Es decir fuera del conjunto del codigo.

Vamos a USAR el show_message("indice: "+string()) para que nos indique si el indice esta llegando a see igual a la referencia

 /// @description  preciona enter y cambia de dialogo
if keyboard_check_pressed(ord("X")) and indice <= referencia.final+1{
   if (mensaje == referencia.msg[indice]){
       indice += 1;
       global.mensaje += 1;
if (indice = referencia.final) {show_message("indice: "+string(indice))}
       if (indice > referencia.final-1) { obj_prota.stop = false; instance_destroy(); }
       mensaje = "";
       }else{
             mensaje = referencia.msg[indice];
       }
}

///coloca el cuadro de texto en la parte inferior de la pantalla
x = __view_get( e__VW.XView, 0 )+0;
y = __view_get( e__VW.YView, 0 )+176;  



Este codigo es para la copia del textbox. Con esto verificaremos so indice llega a ser igual a la referencia...

So aparece el mensaje entonces ai llega a ser igual... Entonces debes modificarlo por
Indice>referencia.final para comprobar que este no she esta ejecutando..

Pero si en la modificacion llega a aparecer el mensaje, entonces el problems puede see que seesta mandando a destruir all objeto original. Quizas.




15

Segun lo que entiendo, el problema es que no se destruyen las instancias... Y las cuatro líneas que destruyen instancias son las siguientes:

Evento step:
if (indice > referencia.final) { obj_prota.stop = false; instance_destroy(); }

Evento step de textbox...
if ((indice > 3) && (canskip = true) && (obj_arbol_de_navidad.Aregalo = 0) && (obj_arbol_de_navidad.Txtarb = 0)) { obj_prota.stop = false; instance_destroy(); canskip = false}
if (indice > 6) { obj_prota.stop = false; instance_destroy(); canskip = false;  obj_arbol_de_navidad.Aregalo = 1}   
if ((indice > 0) && (obj_arbol_de_navidad.Aregalo = 1)) {obj_prota.stop = false; instance_destroy();}
     
Crea una copia del proyecto e intenta con esta modificadcion

Para el step: lo modificado es el if indice > referencia.final-1

/// @description  preciona enter y cambia de dialogo
if keyboard_check_pressed(ord("X")) and indice <= referencia.final+1{
   if (mensaje == referencia.msg[indice]){
       indice += 1;
       global.mensaje += 1;
       if (indice > referencia.final-1) { obj_prota.stop = false; instance_destroy(); }
       mensaje = "";
       }else{
             mensaje = referencia.msg[indice];
       }
}

///coloca el cuadro de texto en la parte inferior de la pantalla
x = __view_get( e__VW.XView, 0 )+0;
y = __view_get( e__VW.YView, 0 )+176;

De no funcionar responde a estas preguntas:

1.¿cuando debe destruirse la instancia? creo que hay muchas causas diferentes.
2.¿cuando falla?, y cual de las lineas de destruccion si esta funcionando. Con esto descartamos líneas.



Páginas: 1 2 3