Oficial Resolución de DUDAS en Game Maker

Mensajes
365
Calificaciones
149 1
Puntos
60
Hasta donde se execute string no funciona en Studio tampoco

Todas las funciónes destinadas a ejecutar/crear código de forma dinámica fueron eliminadas
Saludos~
Sí así es :/ trataba de usar el script_execute como un execute_string y ahora mismo, rebuscando en los help file de ambas versiones, noté de que ya no se puede almacenar scripts en variables, ahora tendré que pensar en otra cosa... Gracias de todas formas :D
 
Mensajes
13
Calificaciones
5
Puntos
2
Tengo una pregunta simple: ¿Como se coloca en la parte de include files osea la ventana de los archivos incluidos una carpeta para organizar los archivos y en sub carpetas como se haría en la mayoria de los datos de game maker como los sprite y objetos?
 

Khyze

Muchos merecen morir!
Colaborador
Mensajes
4.417
Calificaciones
2K 22
Puntos
325
Ubicación
Patria, patria, patria querida!
Tengo una pregunta simple: ¿Como se coloca en la parte de include files osea la ventana de los archivos incluidos una carpeta para organizar los archivos y en sub carpetas como se haría en la mayoria de los datos de game maker como los sprite y objetos?
No entiendo? No lo aseguro pero creo que si pones un Slash " / " deberia funcionar como carpeta? En Game Maker Studio las Included Files estan en donde estan los Datos (Sprites, Objetcs, etc...), asi que es mas "atractivo", comodo y sencillo de hacer. (Lo recomiendo si quieres utilizar Included Files)

Aunque aclaro, si usas versiones previas de Game Maker, sale mejor dejar los archivos fuera, junto con el .exe, asi como los juegos "profesionales" que tienen carpetas de Data, Music, Save, etc... Por que? pues, si los colocas como Included Files, estaran dentro de el .exe, y no cumplen un papel muy distinto, asi que al estar en el .exe el tiempo de carga sera alargado debido a que igualmente tiene que crear los archivos en una carpeta temporal.

Si lo colocas en una carpeta junto al .exe, bien podrias utilizas working_directory para "citar" los archivos... Pros? Un .exe mas ligero, un tiempo de carga mas veloz, Contras? tendras que poner los archivos de manera "manual" (Es lo mismo que con Included Files), puede que tarde igual cargando cada archivo (Pero bien puedes cargarlos por partes, en vez de obligar a cargar todo al inicio de el .exe)

Aqui un ejemplo de como leer un archivo de texto en una carpeta:
Código:
file_text_open_read("Savegame/archivo.texto")
Aqui, suelto junto al .exe:
Código:
file_text_open_read("archivo.texto")
El working directoy se usa asi (Aunque no le veo diferencia):
Código:
file_text_open_read(working_directory+"archivo.texto")
O algo asi :p, Avisa cualqueir cosa.
 

Balladє

Advanced Newbie
Mensajes
91
Calificaciones
87
Puntos
10
Ubicación
Tu corazón
Buen día, tengo una duda: Digamos que quiero darle a un objeto dos mascaras de colisión, una que esté activa todo el tiempo y otra que solo se use como resultado de una acción determinada, pero lo que quiero es que las dos puedan existir al mísmo tiempo, ¿Hay alguna forma de hacer esto sin tener que crear otro objeto?
 
Mensajes
3.111
Calificaciones
1K
Puntos
325
Ubicación
España
Buen día, tengo una duda: Digamos que quiero darle a un objeto dos mascaras de colisión, una que esté activa todo el tiempo y otra que solo se use como resultado de una acción determinada, pero lo que quiero es que las dos puedan existir al mísmo tiempo, ¿Hay alguna forma de hacer esto sin tener que crear otro objeto?
Estoy seguro que hay un modo de cambiar la máscara, mira en el manual. Simplemente cambias la mascara, haces las comprobaciones adecuadas y vuelves a poner la original
Saludos~
 

Khyze

Muchos merecen morir!
Colaborador
Mensajes
4.417
Calificaciones
2K 22
Puntos
325
Ubicación
Patria, patria, patria querida!
Estoy seguro que hay un modo de cambiar la máscara, mira en el manual. Simplemente cambias la mascara, haces las comprobaciones adecuadas y vuelves a poner la original
Saludos~
Código:
mask_index=Nuevamascara
Como olvidarse? xD

Buen día, tengo una duda: Digamos que quiero darle a un objeto dos mascaras de colisión, una que esté activa todo el tiempo y otra que solo se use como resultado de una acción determinada, pero lo que quiero es que las dos puedan existir al mísmo tiempo, ¿Hay alguna forma de hacer esto sin tener que crear otro objeto?
Para que lo quieres exactamente? Eso de dos mascaras "al mismo tiempo" creo que es algo imposible, bien puedes hacer varias collisiones con:
Código:
collision_circle
collision_ellipse
collision_line
collision_point
collision_rectangle
Si no me equivoco funcionan como una nueva "mascara" unas nuevas zonas de impacto, Si lo utilizas en el evento de otro object collisionara con una sola mascara, pero si la activas en el object que quieres que tenga distintas mascaras tendra "distintas" mascaras...

Aunque luego de analizar leo la parte de "solo se use como resultado de una acción determinada"

Asi que bien, seria algo asi:
Código:
if sprite_index=Ataque mask_index=MascaradeAtaque
Para que lo quieres exactamente? :p
 
Mensajes
365
Calificaciones
149 1
Puntos
60
<<Tengo que corregir este codigo>>
Buen día, tengo una duda: Digamos que quiero darle a un objeto dos mascaras de colisión, una que esté activa todo el tiempo y otra que solo se use como resultado de una acción determinada, pero lo que quiero es que las dos puedan existir al mísmo tiempo, ¿Hay alguna forma de hacer esto sin tener que crear otro objeto?
Podrias hacer un sistema de colisiones por ti mismo ya que Game Maker no te deja usar mas de una mask. Basicamente seria que el objeto que dara el golpe definiria un cuadro con cuatro variables: hitx1, hitx2, hitx3 y hitx4; luego el "golpeado" chequearia si esta caja esta tocandolo.

En el evento del golpe del "golpeador" se crearia el cuadro, este tiene que cubrir el puño, la patada o con lo que sea que este atacando ( ͡° ͜ʖ ͡°).
Código:
hitx1 = 16;
hity1 = 6;
hitx2 = 22;
hity2 = 10;
Luego el "golpeado" debe verificar, tomando en cuenta su posicion x y su posicion y, si esta tocando la caja.
Código:
//Despues del golpe el golpeador pondra el valor de todas las variables en -1 para que el golpe no sea infinito
if ob_golpeador.hitx1 != -1 && ob_golpeador.hity1 != -1 && ob_golpeador.hitx2 != -1 && ob_golpeador.hity2 != -1
    {
    if x >= ob_golpeador.hitx1 && x + sprite_width <= ob_golpeador.hitx2
        {
        if y >= ob_golpeador.hity1 && y <= ob_golpeador.hity2
            {
            <instrucciones del golpe>
            ob_golpeador.hitx1 = -1;
            ob_golpeador.hity1 = -1;
            ob_golpeador.hitx2 = -1;
            ob_golpeador.hity2 = -1;
            }
        }
    }
<<Tengo que corregir este codigo>>
 
Última edición:

Balladє

Advanced Newbie
Mensajes
91
Calificaciones
87
Puntos
10
Ubicación
Tu corazón
Para que lo quieres exactamente? :p
Pues me gustaría hacer que el jugador ataque, pero quiero que pueda seguir siendo atacado; lo estaba haciendo con un objeto por separado que representara a la máscara de "golpe", pero me dí cuenta de que si lo sigo haciendo así, todo será un desastre cuando tenga varios ataques diferentes, ya que todos ocuparían un objeto, y eso aumentaría el tamaño del archivo y, en mi opinión, sería confuso trabajar así.
Estoy seguro que hay un modo de cambiar la máscara, mira en el manual. Simplemente cambias la mascara, haces las comprobaciones adecuadas y vuelves a poner la original
Saludos~
Lo que pasa es que si lo modifico de esta forma, solo podría tener una de las dos mascaras a la vez; lo que me gustaría hacer es "crear" una mascara, no modificar otra, ya que lo que deseo es que las dos hagan cosas diferentes :(
<<Tengo que corregir este codigo>>

Podrias hacer un sistema de colisiones por ti mismo ya que Game Maker no te deja usar mas de una mask. Basicamente seria que el objeto que dara el golpe definiria un cuadro con cuatro variables: hitx1, hitx2, hitx3 y hitx4; luego el "golpeado" chequearia si esta caja esta tocandolo.

En el evento del golpe del "golpeador" se crearia el cuadro, este tiene que cubrir el puño, la patada o con lo que sea que este atacando ( ͡° ͜ʖ ͡°).
Código:
hitx1 = 16;
hity1 = 6;
hitx2 = 22;
hity2 = 10;
Luego el "golpeado" debe verificar, tomando en cuenta su posicion x y su posicion y, si esta tocando la caja.
Código:
//Despues del golpe el golpeador pondra el valor de todas las variables en -1 para que el golpe no sea infinito
if ob_golpeador.hitx1 != -1 && ob_golpeador.hity1 != -1 && ob_golpeador.hitx2 != -1 && ob_golpeador.hity2 != -1
    {
    if x >= ob_golpeador.hitx1 && x + sprite_width <= ob_golpeador.hitx2
        {
        if y >= ob_golpeador.hity1 && y <= ob_golpeador.hity2
            {
            <instrucciones del golpe>
            ob_golpeador.hitx1 = -1;
            ob_golpeador.hity1 = -1;
            ob_golpeador.hitx2 = -1;
            ob_golpeador.hity2 = -1;
            }
        }
    }
<<Tengo que corregir este codigo>>
Tiene sentido, pero me faltaría probarlo para ver si funciona, cuando regrese de la escuela lo probaré :b
Aunque veo que has puesto "Tengo que corregir este codigo" por lo que creo que debería de esperar un poco :b
O veré si lo puedo corregir yo :p Saludos
 
Última edición:
Mensajes
365
Calificaciones
149 1
Puntos
60
Tiene sentido, pero me faltaría probarlo para ver si funciona, cuando regrese de la escuela lo probaré :b
Aunque veo que has puesto "Tengo que corregir este codigo" por lo que creo que debería de esperar un poco :b
O veré si lo puedo corregir yo :p Saludos
Sip, Justo despues que hice todo el codigo, lo mande y luego lo lei me di cuenta de que estaba todo mal xD. Encontre en el blog de Game Maker como hacerlo http://www.yoyogames.com/blog/32/ y aunque no entendi mucho el codigo que el hizo si entendi todo lo demas, asi que hice este codigo en base a o que el escribio. No lo he probado pero estoy 96% seguro de que funciona, lo pruebas y me dices ya que yo tambien quiero aplicarlo en mis juegos :D

En el evento del "golpeador"
Código:
hitx1 = x + 16;
hity1 = y + 6;
hitx2 = x + 22;
hity2 = y + 10;
Ten en cuenta que la posicion del cuadro depende de la direccion del personaje, asi que los valores si esta mirando a la izquierda son diferentes a si esta mirando a la derecha.

En el evento del "golpeado", suponiendo que todos tus sprites tengan el origen en (0,0) si no puede que no funcione correctamente.
Código:
if ob_golpeador.hitx1 != -1 && ob_golpeador.hity1 != -1 && ob_golpeador.hitx2 != -1 && ob_golpeador.hity2 != -1
    {
    if ob_golpeador.hitx1 + ob_golpeador.hitx2 / 2 < x + sprite_width / 2
        {
        xx1 = ob_golpeador.hitx1;
        xx2 = x + sprite_width;
        }
    else
        {
        xx1 = ob_golpeador.hitx2;
        xx2 = x;
        }
    if ob_golpeador.hity1 + ob_golpeador.hity2 / 2 < y + sprite_height / 2
        {
        yy1 = ob_golpeador.hity1;
        yy2 = y + sprite_height;
        }
    else
        {
        yy1 = ob_golpeador.hity2;
        yy2 = y;
        }
    if abs((ob_golpeador.hitx1 + ob_golpeador.hitx2 / 2) - (x + sprite_width / 2)) <= abs(xx1 - xx2)
        {
        if abs((ob_golpeador.hity1 + ob_golpeador.hity2 / 2) - (y + sprite_height / 2)) <= abs(yy1 - yy2)
           {
           <instrucciones del golpe>
            ob_golpeador.hitx1 = -1;
            ob_golpeador.hity1 = -1;
            ob_golpeador.hitx2 = -1;
            ob_golpeador.hity2 = -1;
            }
        }
    }
El codigo salio mas largo de lo que esperaba asi que no lo recomiendo si muchos objetos requieren verificar colision, a menos que estes usando GM:Studio (ya que el codigo ahi es mas rapido porque es compilado y no interpretado). Pero como se que es un juego de pelea no hay problema.
 

Balladє

Advanced Newbie
Mensajes
91
Calificaciones
87
Puntos
10
Ubicación
Tu corazón
Código:
mask_index=Nuevamascara
Como olvidarse? xD


Para que lo quieres exactamente? Eso de dos mascaras "al mismo tiempo" creo que es algo imposible, bien puedes hacer varias collisiones con:
Código:
collision_circle
collision_ellipse
collision_line
collision_point
collision_rectangle
Si no me equivoco funcionan como una nueva "mascara" unas nuevas zonas de impacto, Si lo utilizas en el evento de otro object collisionara con una sola mascara, pero si la activas en el object que quieres que tenga distintas mascaras tendra "distintas" mascaras...

Aunque luego de analizar leo la parte de "solo se use como resultado de una acción determinada"

Asi que bien, seria algo asi:
Código:
if sprite_index=Ataque mask_index=MascaradeAtaque
Para que lo quieres exactamente? :p
Sip, Justo despues que hice todo el codigo, lo mande y luego lo lei me di cuenta de que estaba todo mal xD. Encontre en el blog de Game Maker como hacerlo http://www.yoyogames.com/blog/32/ y aunque no entendi mucho el codigo que el hizo si entendi todo lo demas, asi que hice este codigo en base a o que el escribio. No lo he probado pero estoy 96% seguro de que funciona, lo pruebas y me dices ya que yo tambien quiero aplicarlo en mis juegos :D

En el evento del "golpeador"
Código:
hitx1 = x + 16;
hity1 = y + 6;
hitx2 = x + 22;
hity2 = y + 10;
Ten en cuenta que la posicion del cuadro depende de la direccion del personaje, asi que los valores si esta mirando a la izquierda son diferentes a si esta mirando a la derecha.

En el evento del "golpeado", suponiendo que todos tus sprites tengan el origen en (0,0) si no puede que no funcione correctamente.
Código:
if ob_golpeador.hitx1 != -1 && ob_golpeador.hity1 != -1 && ob_golpeador.hitx2 != -1 && ob_golpeador.hity2 != -1
    {
    if ob_golpeador.hitx1 + ob_golpeador.hitx2 / 2 < x + sprite_width / 2
        {
        xx1 = ob_golpeador.hitx1;
        xx2 = x + sprite_width;
        }
    else
        {
        xx1 = ob_golpeador.hitx2;
        xx2 = x;
        }
    if ob_golpeador.hity1 + ob_golpeador.hity2 / 2 < y + sprite_height / 2
        {
        yy1 = ob_golpeador.hity1;
        yy2 = y + sprite_height;
        }
    else
        {
        yy1 = ob_golpeador.hity2;
        yy2 = y;
        }
    if abs((ob_golpeador.hitx1 + ob_golpeador.hitx2 / 2) - (x + sprite_width / 2)) <= abs(xx1 - xx2)
        {
        if abs((ob_golpeador.hity1 + ob_golpeador.hity2 / 2) - (y + sprite_height / 2)) <= abs(yy1 - yy2)
           {
           <instrucciones del golpe>
            ob_golpeador.hitx1 = -1;
            ob_golpeador.hity1 = -1;
            ob_golpeador.hitx2 = -1;
            ob_golpeador.hity2 = -1;
            }
        }
    }
El codigo salio mas largo de lo que esperaba asi que no lo recomiendo si muchos objetos requieren verificar colision, a menos que estes usando GM:Studio (ya que el codigo ahi es mas rapido porque es compilado y no interpretado). Pero como se que es un juego de pelea no hay problema.
Okay! los probaré los dos hoy y mañana por la mañana y veré si funcionan, editaré este mensaje o escribiré uno nuevo para hacerles saber, gracias por la ayuda! :)
Buenas noches! Saludos

EDITO: Después de trabajar toda la noche con el código, creo que no lo logré hacer funcionar ;-; cuando lo trato de utilizar, no ocurre nada, lo metí normal y no funcionó, luego traté de alterarlo un poco en base a lo que ví, pero sin exito :(
En cuanto al rectángulo de colisión, el problema con eso sería que necesito hacer un cuadro por cada frame de la animación, por lo que creo que no sería conveniente.
Creo que por el momento seguiré utilizando varios objetos, aunque seguiré buscando la forma de lograr lo que busco. Saludos, y gracias!
 
Última edición:
Mensajes
365
Calificaciones
149 1
Puntos
60
Vaaya tengo un enorme problema :T Estoy obteniendo un frame drop terrible en RPG Blast, no se si se han dado cuenta con el apk que Zink subio. Cada vez que sales del modo de edicion al menu principal y vuelves a edicion de nuevo los fps disminuyen... ¡y mucho! No se que puede ser ya que he revisado el codigo varias veces y no encuentro nada: me aseguro de borrar los ds_grids y ds_lists que creo, no tengo rooms persistentes ni objects persistentes y la sprite font solo la creo una sola vez; pero resulta que algo de esta comiendose toda la ram porque cada vez que salgo al menu principal el consumo de esta aumenta, no mucho apenas de 10 a 50KB, pero aparentemente es suficiente como para que los fps bajen de a 10. Para volver al menu principal primero borro todos los ds y uso room_goto(), pero si uso solo game_restart() no se reinicia, pero no quiero usarlo porque es muy de noobs :smile:, aunque creo que esto me va a forzar a usarlo :confused:.

¿Tienen alguna idea de que cosas pueden causar esto ademas de las que mencione? Por cierto me ocurre tanto en PC como en Android, porfavor diganme si a ustedes tambien les pasa.
 

Khyze

Muchos merecen morir!
Colaborador
Mensajes
4.417
Calificaciones
2K 22
Puntos
325
Ubicación
Patria, patria, patria querida!
Vaaya tengo un enorme problema :T Estoy obteniendo un frame drop terrible en RPG Blast, no se si se han dado cuenta con el apk que Zink subio. Cada vez que sales del modo de edicion al menu principal y vuelves a edicion de nuevo los fps disminuyen... ¡y mucho! No se que puede ser ya que he revisado el codigo varias veces y no encuentro nada: me aseguro de borrar los ds_grids y ds_lists que creo, no tengo rooms persistentes ni objects persistentes y la sprite font solo la creo una sola vez; pero resulta que algo de esta comiendose toda la ram porque cada vez que salgo al menu principal el consumo de esta aumenta, no mucho apenas de 10 a 50KB, pero aparentemente es suficiente como para que los fps bajen de a 10. Para volver al menu principal primero borro todos los ds y uso room_goto(), pero si uso solo game_restart() no se reinicia, pero no quiero usarlo porque es muy de noobs :smile:, aunque creo que esto me va a forzar a usarlo :confused:.

¿Tienen alguna idea de que cosas pueden causar esto ademas de las que mencione? Por cierto me ocurre tanto en PC como en Android, porfavor diganme si a ustedes tambien les pasa.
Recuerda que ya esta permitido hacer temas para dudas :p (Este sera cerrado :v)

Pues, cuando probe la .apk los Fps se veian bajos, pero el rendimiento era bien, osea, no se veia laggeado...
Desgraciadamente la solucion solo tendria dos.... soluciones? La primera seria que nos escribas todo lo que tiene (Algo molesto), La segunda seria que subas el proyecto (Algo inseguro).

La primera bien podriamos hallar un problema (Si no esta en los ds_list o ds_grid, debe estar en otro lado, pero si crees que no hay otra cosa que cause lag bueh.... nose xD)

El game_restart() no es tanto de noobs, pero causaria "problemas" o "conflictos" en caso de que tengas pantalla de creditos, presentacion y eso... Podrias guardar una variable de "juegoyaabierto=1" para saltarlo, pero no se si cambiaria el metodo en el que es cerrado el juego .-.

Estas utilizando tiles? Surfaces?
 
Mensajes
365
Calificaciones
149 1
Puntos
60
Recuerda que ya esta permitido hacer temas para dudas :p (Este sera cerrado :v)

Pues, cuando probe la .apk los Fps se veian bajos, pero el rendimiento era bien, osea, no se veia laggeado...
Desgraciadamente la solucion solo tendria dos.... soluciones? La primera seria que nos escribas todo lo que tiene (Algo molesto), La segunda seria que subas el proyecto (Algo inseguro).

La primera bien podriamos hallar un problema (Si no esta en los ds_list o ds_grid, debe estar en otro lado, pero si crees que no hay otra cosa que cause lag bueh.... nose xD)

El game_restart() no es tanto de noobs, pero causaria "problemas" o "conflictos" en caso de que tengas pantalla de creditos, presentacion y eso... Podrias guardar una variable de "juegoyaabierto=1" para saltarlo, pero no se si cambiaria el metodo en el que es cerrado el juego .-.

Estas utilizando tiles? Surfaces?
Si en serio estas dispuesto a leer todo el code lo puedo subir mas tarde. No uso nada de tiles ni de sufaces, solo hay un objeto que dibuja todos los elementos de la ds_grid que representa el mapa, solo utilizo draw_sprite(). Tontos memory leaks T.T
 

Khyze

Muchos merecen morir!
Colaborador
Mensajes
4.417
Calificaciones
2K 22
Puntos
325
Ubicación
Patria, patria, patria querida!
Si en serio estas dispuesto a leer todo el code lo puedo subir mas tarde. No uso nada de tiles ni de sufaces, solo hay un objeto que dibuja todos los elementos de la ds_grid que representa el mapa, solo utilizo draw_sprite(). Tontos memory leaks T.T
Claro, puedo prometerte que leere todo lo que traigas, Aunque no prometo poder arreglarlo, Quizas pueda pero.... Lo estas haciendo sonar muy dificil xD temo no poder hacer algo :v

Hay una manera correcta de dibujar las cosas, yo habia descargado un Engine 3D de "Minecraft" creo que se llamaba Cube, La forma en la que manipulaba el mundo era por ds_list y ds-grids (Algo que no frecuento), al querer imitarlo me dio un tremendo lag (Obvio, hay un truco que no se ve a simple vista), hasta entonces aun no he revisado todo el codigo (Ando liandome con muchas cosas o.o), pero hace no mucho, en el foro de Yoyogames (GMC), Habia preguntado como se hacia, me respondio uno sugiriendo utilizar Tiles, sirvio ya que no se dibujan constantemente, solo se "crea" un archivo/imagen supergrande (No exactamente pero se puede sobreentender de esa manera) y asi se dibuja mas facil/rapido, obvio, que es mas rapido? Dibujar 1.000 Tiles, o Dibujar un "mapa"? (Muchas tiles ordenadas y eso podria hacer un "mapa"), No pudo responderme sobre en 3D (Obvio no se utilizarian Tiles xD), asi que debe existir una manera mas eficaz...

Supongo que lo mismo aplicaria de utilizarse Surfaces, se "laguearia" al "agregar" un Tile al mapa pero luego se dibujaria mas rapido.... Aunque el problema no es ese... (Bueh, el testeo mostraba Fps bajos, pero no me fije al volver al menu que es donde dices que se mantiene lagueado u.u)

Esperare :p

Edit: La solucion es/fue que se creaban muchos objects :3. Falto instance_exist ^w^
 
Última edición:
Mensajes
263
Calificaciones
115
Puntos
30
Ubicación
Desde Navolato vengo dicen que nací en el roble ♥
Hola chicos, tengo una duda respecto a un TDS que estoy intentando hacer.
¿cómo hago para hacer que las balas disparadas no salgan del centro del sprite? ya saben, que aparezcan al frente donde se supone esta el arma.
dejare esta imagen para ser más gráfico (realmente no se vera así mi juego jijiji)

PD: mi juego se maneja con WASD, pero se dispara a donde el ratón indique.
 
Mensajes
120
Calificaciones
44
Puntos
20
Ubicación
Sonora, México
Hola chicos, tengo una duda respecto a un TDS que estoy intentando hacer.
¿cómo hago para hacer que las balas disparadas no salgan del centro del sprite? ya saben, que aparezcan al frente donde se supone esta el arma.
dejare esta imagen para ser más gráfico (realmente no se vera así mi juego jijiji)

PD: mi juego se maneja con WASD, pero se dispara a donde el ratón indique.
Hola, en el manual de GM Studio puedes buscar unas funciones llamadas lengthdir_x_y, y ahí mismo te dan un ejemplo sobre las balas.

instance_create(x + lengthdir_x(64, image_angle), y + lengthdir_y(64, image_angle), obj_bullet);

Lo que hace es agregar esos 64 pixeles al punto de origen agregado al ángulo de la imágen o rotación.
 
Mensajes
263
Calificaciones
115
Puntos
30
Ubicación
Desde Navolato vengo dicen que nací en el roble ♥
Hola, en el manual de GM Studio puedes buscar unas funciones llamadas lengthdir_x_y, y ahí mismo te dan un ejemplo sobre las balas.

instance_create(x + lengthdir_x(64, image_angle), y + lengthdir_y(64, image_angle), obj_bullet);

Lo que hace es agregar esos 64 pixeles al punto de origen agregado al ángulo de la imagen o rotación.
Esa función está disponible solo en los GM actuales, mi pc no corre ninguno actual por alguna razón (no porque no los pueda, sino porque todos dan errores que no deberían dar y no me dejan en paz .-.).
Estoy usando GM 5, ¿existirá algo que me pueda servir ahí?
 
Última edición:
OP

YoshiFanGM

Gimmick Master
Colaborador
Mensajes
1.056
Calificaciones
480 3
Puntos
160
Ubicación
MTY
Un poco tarde :oops: pero con estos scripts puedes emular lengthdir_x y lengthdir_y en GM5:

gm5_lengthdir_x
Código:
return argument0 * cos(argument1 * pi / 180);
gm5_lengthdir_y
Código:
return -argument0 * sin(argument1 * pi / 180));
Básicamente, el argument0 es la distancia (length) y el argument1 es la dirección. Puedes usar los mismos argumentos que las otras funciones :)
 
Mensajes
1.194
Calificaciones
232
Puntos
190
amigo crees que alguien pudiera ayudarme a crear un engine para efectos de luz?

como este
 
Mensajes
4.331
Calificaciones
2K 17 2
Puntos
260
Ubicación
RPG'S Universe
Una pregunta de un novato en esto.

¿Como hago para que el jodido arbol quede atras del personaje? Me refiero a que cuando el personaje pase quede por delante del arbol, por que cuando pasa queda por detras y el arbol lo tapa.