Bueno no se si es una ventaja por tener alguna versión especial, pero en la estándar las cosas no me funcionan de esa forma, en mi caso uso la función instance_deactivate_object(obj_Sangre), a pesar de que desactiva los obj_Sangre, produce el mismo efecto que instance_destroy, pero es raro, debido a que no tiene valores para modificar, es decir que solo es ().
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.
91
Preguntas y respuestas / Re:¿Han visto el cambio en las funciones de GMS?
Diciembre 02, 2017, 06:27:57 PM92
Preguntas y respuestas / Movimiento serpenteante
Noviembre 30, 2017, 10:57:53 PM
Bueno últimamente he estado inactivo por aquí, así que hola :), bueno toca hablar de un movimiento muy comun que tiene un enemigo, que que a la vez resulta ser bastante molesto de evitar, en este caso las cabeza de medusa del juego "Castle Vania"

Pues su movimiento es serpenteaste, es decir que se mueve de un extremo a otro, lo cual vendría siendo arriba abajo mientras se mueve hacia el frente, entonces podría decir que tiene un CREATE donde están sus variables de velocidad, un STEP que ejecute repetidamente la acción de moverse y una ALARMA0 que invierta las coordenadas de movimiento, pues claro en algún momento tendrá que subir y bajar, lo que vendría siendo igual a Y y -Y, pero otro factor que tendría que considerar es que esta no se mueven hasta que el jugador las haya visto con la "VIEW", por lo que de alguna forma si colisionan con la "VIEW" del jugador esta pasan a tener movimiento, lo que significa que su movimiento inicial es 0 hasta que el jugador las vea, de lo contrario perderán su posiciona inicial apareciendo en el momento que uno no tenia planeado.
Entonces seria algo como
obj_Murcielago
CREATE
STEP
ALARMA0
Cualquiera que tenga conocimientos de programación sabe que mi análisis literal tiene sentido, pero a nivel de código no esta muy bien argumentado, no me extraña que no funcione, aunque creo que estoy compensando algo bien :-[.

Pues su movimiento es serpenteaste, es decir que se mueve de un extremo a otro, lo cual vendría siendo arriba abajo mientras se mueve hacia el frente, entonces podría decir que tiene un CREATE donde están sus variables de velocidad, un STEP que ejecute repetidamente la acción de moverse y una ALARMA0 que invierta las coordenadas de movimiento, pues claro en algún momento tendrá que subir y bajar, lo que vendría siendo igual a Y y -Y, pero otro factor que tendría que considerar es que esta no se mueven hasta que el jugador las haya visto con la "VIEW", por lo que de alguna forma si colisionan con la "VIEW" del jugador esta pasan a tener movimiento, lo que significa que su movimiento inicial es 0 hasta que el jugador las vea, de lo contrario perderán su posiciona inicial apareciendo en el momento que uno no tenia planeado.
Entonces seria algo como
obj_Murcielago
CREATE
Código [Seleccionar]
velocidad = 0 + (colisión view)
STEP
Código [Seleccionar]
velocidad += y
alarm[0] = 30
ALARMA0
Código [Seleccionar]
velocidad -= y
Cualquiera que tenga conocimientos de programación sabe que mi análisis literal tiene sentido, pero a nivel de código no esta muy bien argumentado, no me extraña que no funcione, aunque creo que estoy compensando algo bien :-[.
93
Preguntas y respuestas / Re:Problema con el "creation code" [solucionado]
Noviembre 19, 2017, 06:27:18 PMCita de: desplo en Noviembre 19, 2017, 12:51:04 AMAmbos objetos tienen al mismo objeto con los mismos códigos, no voy a crear nuevos objetos y darles un padre cuando solo quiero cambiar las coordenadas, la única diferencia es que sus coordenadas son cambiadas en el "create code", a pesar de que están programados con lo mismo el otro no dibuja linea.Cita de: Naitsabes0 en Noviembre 17, 2017, 01:23:27 PM
Bien creo que no estas mirando bien la animación, hay claramente un bloque (amarillo) que tiene una linea mientras que el otro no.
Bien. Entonces lo unico que quieres es que el otro bloque muestre el path?
Entonces es por eso mismo. Ambos dibujan el mismo path que siempre se encuentra en la misma ubicación.
Prueba creando un nuevo path en el create del otro objeto
[gml]
global.patron2 = path_add();
path_add_point(global.patron2,16,16,room_speed);
path_add_point(global.patron2,160,16,room_speed);
path_add_point(global.patron2,160,120,room_speed);
path_add_point(global.patron2,240,120,room_speed);
path_add_point(global.patron2,240,120,room_speed);
path_add_point(global.patron2,240,160,room_speed);
path_add_point(global.patron2,160,160,room_speed);
//Detener movimiento
path_set_closed(global.patron2,false);
path_start(global.patron2,room_speed/path_get_number(global.patron2)*2,path_action_reverse,1);
[/gml]
94
Preguntas y respuestas / Re:¿Hay un tutorial de esto?
Noviembre 17, 2017, 01:41:23 PMCita de: Markus en Noviembre 17, 2017, 11:19:41 AMBueno he descubierto un método de hacer las cosas para que tengan un comportamiento similar, y si es haciendo mas de 1 patrón para que puedan haber mas objetos al mismo tiempo.
Yo no he jugado Megaman, pero por lo que se ve en la imagen, parece que son 2 objetos que se teletransportan. Si fuese así, tal vez sería más fácil.
Cada objeto tendría un path que definiría su patrón de movimiento, un contador de tiempo y una variable que indicaría uno de sus 3 estados: apareciendo, totalmente visible y desapareciendo.
El contador marcaría el tiempo en el que el objeto se mantiene en cada estado, de ese modo, cuando finalice el tercer estado, pasa a la siguiente posición del path y al primer estado.
Si quieres ahorrarte las variables de estado y contador, puedes crear un sprite con la animación completa de los 3 estados. Así, usas el evento Animation End para cambiar a la siguiente posición del path.
Aunque igual me gustaría saber si alguien a programado esto o sabe de algún vídeo donde lo expliquen, estoy seguro que debe haber un sistema mas simple y eficiente que el que cree ahora.
95
Preguntas y respuestas / Re:Problema con el "creation code" [solucionado]
Noviembre 17, 2017, 01:23:27 PMCita de: desplo en Noviembre 17, 2017, 07:35:26 AMCita de: Naitsabes0 en Noviembre 16, 2017, 06:40:57 AM
Si vez la imagen hay una linea negra que es blanca producto del efecto linterna, un bloque (los amarillos) se mueve por esa linea, pero el otro no la dibuja, el objeto con códigos solo se encarga de controlar la velocidad y colisiones, es el "creation code" quien tiene las coordenadas, ya que me permite personalizar su patrón.
No la dibuja ya que ambos objetos dibujan el mismo path (global.patron)

Bien creo que no estas mirando bien la animación, hay claramente un bloque (amarillo) que tiene una linea mientras que el otro no.
96
Preguntas y respuestas / Re:Problema con el "creation code" [solucionado]
Noviembre 16, 2017, 06:40:57 AMCita de: desplo en Noviembre 16, 2017, 05:39:14 AMSi vez la imagen hay una linea negra que es blanca producto del efecto linterna, un bloque (los amarillos) se mueve por esa linea, pero el otro no la dibuja, el objeto con códigos solo se encarga de controlar la velocidad y colisiones, es el "creation code" quien tiene las coordenadas, ya que me permite personalizar su patrón.Cita de: Naitsabes0 en Noviembre 15, 2017, 06:25:14 AM
MI PROBLEMA ACTUAL ES: solo 1 objeto tiene la linea que dice donde se moverá.
Sigo sin entender muy bien XD
Quieres que todos los puntos de un path esten en un create de un objeto?
97
Preguntas y respuestas / Re:Tetris hard drop
Noviembre 16, 2017, 05:09:19 AM
Creo que el se refiere a que tenga un clon con opacidad que le muestre como encaja la pieza antes de impartar, visualmente es algo como esto.

Aunque el tetris de toda la vida carece de este elemento, es una ayuda que nuevos desarrolladores crearon para facilitar la jugabilidad :).
Por otro lado no puedo ayudar en términos de código sobre este tema :(.

Aunque el tetris de toda la vida carece de este elemento, es una ayuda que nuevos desarrolladores crearon para facilitar la jugabilidad :).
Por otro lado no puedo ayudar en términos de código sobre este tema :(.
98
Preguntas y respuestas / Re:Problema con el "creation code" [solucionado]
Noviembre 16, 2017, 05:05:04 AMCita de: desplo en Noviembre 16, 2017, 12:57:23 AMMe refería a que tenga un único objeto que tenga todas las interacciones del obj_Bloque_Creador y obj_Bloque_Creado, pero que las únicas variantes sean las coordenadas creadas en un "creaton code", ya que me permite colocar muchos objetos en la "room" con diferentes movimientos.
La verdad no entendi muy bien tu problema.
Creo que te referias a que el path no tenia movimiento? Si es asi entonces es por que está mal definida la velocidad del path.Cita de: Naitsabes0 en Noviembre 15, 2017, 06:25:14 AM
CREATECódigo [Seleccionar]
path_start(global.patron,room_speed/path_get_number(global.patron)*2,path_action_stop,1);
El problema es la formula que estás utilizando ya que estas multiplicando x2 el numero de puntos del path y eso lo divides por la velocidad de la room.
Entiendo que lo multiplicas por 2 para que vaya mas rapido al ejemplo anterior que te adjunte en tu publicación anterior, asi que te recomiendo encerrar en parentesis las formulas;
(room_speed/path_get_number(global.patron))*2
MI PROBLEMA ACTUAL ES: solo 1 objeto tiene la linea que dice donde se moverá.

Si quieres ver como es el código de ambos objetos, eso esta arriba, por otro lado la diferencia de "creation code" de estos objetos es:
///1
path_add_point(global.patron,32,32,room_speed);
path_add_point(global.patron,320,32,room_speed);
path_add_point(global.patron,320,240,room_speed);
path_add_point(global.patron,480,240,room_speed);
path_add_point(global.patron,480,240,room_speed);
path_add_point(global.patron,480,320,room_speed);
path_add_point(global.patron,320,320,room_speed);
//Detener movimiento
path_set_closed(global.patron,false);
path_start(global.patron,room_speed/path_get_number(global.patron)*2,path_action_reverse,1);
///2
path_add_point(global.patron,16,16,room_speed);
path_add_point(global.patron,160,16,room_speed);
path_add_point(global.patron,160,120,room_speed);
path_add_point(global.patron,240,120,room_speed);
path_add_point(global.patron,240,120,room_speed);
path_add_point(global.patron,240,160,room_speed);
path_add_point(global.patron,160,160,room_speed);
//Detener movimiento
path_set_closed(global.patron,false);
path_start(global.patron,room_speed/path_get_number(global.patron)*2,path_action_reverse,1);
99
Preguntas y respuestas / Re:¿No me funciona este objeto?
Noviembre 15, 2017, 09:54:32 PMCita de: shoonky en Noviembre 15, 2017, 08:12:24 PMDe hecho el tema a tratar correspondía al bloque que se mueve siguiendo unas coordenadas, pero ese tema fue medianamente solucionado en http://www.comunidadgm.org/preguntas-y-respuestas/problema-con-el-'creation-code'/.
a mi se me ocurre otra forma, como veo en el gif, podrias usar distance_to_object y image_alpha para que cuando el personaje este mas cerca de un bloque se aclare mas y si se aleja se opaque totalmente, seria usando varios distance_to_object, si lo que quieres es destruirlos y crearlos igual seria con algun generador y distance_to_object(generador) para que los cree y si se aleja se destruya
Ahora estoy tratando de hacer la mecánica mas común que sale en el juego de "maga hombre" http://www.comunidadgm.org/preguntas-y-respuestas/hay-un-tutorial-de-esto/
100
Preguntas y respuestas / Re:Como hacer sistema de luz solo cuando entras en el cuarto
Noviembre 15, 2017, 09:49:16 PM
Probablemente no se vaya a servir esto ahora, pero bueno, seguro le podrás hallar un uso a futuro usando la imaginación, solamente debes colocarla en la "room" que quieras que tenga este efecto si lo haces persistente desde la 1° todo tendrá ese efecto.
obj_Luz
CREATE
STEP
ROOM_END
DRAW
NOTA: Recuerda poner el objeto a depth con valores negativos en mi caso -999, que te diviertas ;).
obj_Luz
CREATE
Código [Seleccionar]
///Crear la superficie
superficie = surface_create(room_width, room_height);
surface_set_target(superficie);
draw_clear_alpha(c_black, 0);
//Reinicia la superficie
surface_reset_target();
STEP
Código [Seleccionar]
///Control de la oscuridad
if (surface_exists(superficie)){
surface_set_target(superficie);
//conjunto oscuridad
draw_set_colour(c_black);
draw_set_alpha(0.5); //intencidad de la oscuridad 0 nada 1 absoluta
draw_rectangle(0, 0, room_width, room_height, false);
//conjunto circulos
draw_set_blend_mode(bm_subtract);
draw_set_colour(c_black);
draw_set_alpha(0.2);
// dibuja circulos
with (obj_Jugador) {
draw_circle(x + random_range(-1,1), y + random_range(-1,1), 80 + random_range(-1, 1), false);
}
draw_set_colour(c_white);
draw_set_alpha(1);
with (obj_Jugador) {
draw_circle(x + random_range(-1,1), y + random_range(-1,1), 45 + random_range(-1, 1), false);
}
//Reinicia todo el conjunto dibujo
draw_set_blend_mode(bm_normal);
draw_set_alpha(1);
surface_reset_target();
} else {
superficie = surface_create(room_width, room_height);
surface_set_target(superficie);
draw_clear_alpha(c_black, 0);
surface_reset_target();
}
ROOM_END
Código [Seleccionar]
/// destruir la superficie
if (surface_exists(superficie)) {
surface_free(superficie);
}
DRAW
Código [Seleccionar]
///Dibuja la superficie
if (!surface_exists(superficie)) {
superficie = surface_create(room_width, room_height);
} else {
if (view_current == 0) {
draw_surface(superficie, 0, 0);
}
}
NOTA: Recuerda poner el objeto a depth con valores negativos en mi caso -999, que te diviertas ;).
101
Preguntas y respuestas / Re:Problema con el "creation code"
Noviembre 15, 2017, 09:38:48 PMCita de: Alice en Noviembre 15, 2017, 07:29:30 PMBueno he perdido la linea que me dice donde ira el objeto por hacer este cambio, pero gracias a su dato he logrado crear otro objeto que se mueva de forma independiente al primer objeto :).
creation code
//Coordenadas
path_add_point(global.patron,64,64,room_speed);
path_add_point(global.patron,640,64,room_speed);
path_add_point(global.patron,640,480,room_speed);
path_add_point(global.patron,640,480,room_speed);
path_add_point(global.patron,960,480,room_speed);
path_add_point(global.patron,960,960,room_speed);
path_add_point(global.patron,640,960,room_speed);
path_start(bla bla)
Así
102
Preguntas y respuestas / Re:Generar bolas aleatorias
Noviembre 15, 2017, 07:46:44 PM
Bueno puedes ver estos video sobre la gravedad.
https://www.youtube.com/watch?v=2UADsKDXzQQ
https://www.youtube.com/watch?v=yPFsjE0KDhw
Por otra parte el factor aleatorio lo puedes sacar de una función choose
Este código que te mostrare es de partículas, dudo mucho que encaje a la perfección con el tuyo porque cumple mis propósitos, por lo que tendrías que modificarlo a tu gusto.

obj_Particula corazon
CREATE
ALARM0
https://www.youtube.com/watch?v=2UADsKDXzQQ
https://www.youtube.com/watch?v=yPFsjE0KDhw
Por otra parte el factor aleatorio lo puedes sacar de una función choose
Este código que te mostrare es de partículas, dudo mucho que encaje a la perfección con el tuyo porque cumple mis propósitos, por lo que tendrías que modificarlo a tu gusto.

obj_Particula corazon
CREATE
Código [Seleccionar]
///--------TODO ESTO EN EL EVENTO CREATE--------------
corazon = part_system_create();
particula_corazon = part_type_create();
part_type_sprite(particula_corazon, spr_Corazon, true, true, false); //La forma de la particula
//part_type_color1(particula_corazon, 55295); //El color de la particula
part_type_orientation(particula_corazon, 0, 0, 0, 0, 0); //La rotacion aleatoria de la particula
//part_type_size(particula_corazon, 0.05, 0.25, 0, 0); //Tamaño aleatorio de la particula
part_type_speed(particula_corazon, 1, 1.5, 0.05, 0); //Velocidad de la particula
part_type_direction(particula_corazon, 270, 270, 0, 4); //Direccion de la particula
part_type_life(particula_corazon, 120, 150); //Duracion de la particula
corazon_emisor = part_emitter_create(corazon);
//Establecer region de la habitacion donde se creara el emisor, el perfil y la forma de distribucion
part_emitter_region(corazon,corazon_emisor,0-100,room_width+100,0,room_height - 100,ps_shape_ellipse,ps_distr_linear);
alarm[0] = room_speed;
ALARM0
Código [Seleccionar]
///-------------TODO ESTE EN EL EVENTO ALARM[0]---------
part_emitter_stream(corazon,corazon_emisor,particula_corazon,-5);
alarm[0] = room_speed;
103
Preguntas y respuestas / Re:¿Hay un tutorial de esto?
Noviembre 15, 2017, 07:28:50 PMCita de: Markus en Noviembre 15, 2017, 05:09:53 PMDebo admitir que ambas observaciones son buenas, aunque la 1° parece mas acertada que la 2°, pues al igual que el código que sigue coordenadas con el path, habría que hacer una lista con la función instance_create y la instance destroy, claro que estas tendrían que manejar una variable a la que se le podría llamar control_tiempo, esta seria 0 y estaría en el "CREATE", por otro lado la lista estaría en un "STEP" junto con contador que vaya sumando a la variable control_tiempo, cuando esta alcance tal valor crea al objeto y cuando llegue a este otro lo destruye, creo que habría que considerar un evento de "ALARMA0", por lo tanto son 3 eventos en el obj_Bloque_Patron y unos "creation code" para darles coordenadas, esta ultima es porque queremos hacer 1 solo objeto que se pueda personalizar.
Hay varias opciones. Una de ellas es similar a lo que dices: tienes un objeto controlador de los bloques y éste los va creando y destruyendo en las posiciones dadas.
Otra opción es que simplemente se "teletransporten", o sea, tener 1 o 2 bloques que, luego de desvanecerse, se teletransporten y vuelvan a aparecer.
Bueno eso es lo que he logrado armar en mi análisis :-\.
104
Preguntas y respuestas / Re:Problema con el "creation code"
Noviembre 15, 2017, 07:12:34 PMCita de: Seirlord_Games en Noviembre 15, 2017, 12:50:47 PMSoy consciente de que si los quito funcionara correctamente, mi problema es quiero crear centenas de objetos que se muevan con coordenadas, no quiero crear 1 padre y 100 objetos cuando se puede hacer con 1 solo atravez del "creation code", ya que todos se comportan igual, pero con distintas coordenadas que deben ser programadas en un "creation code".
Yo no suelo usar paths, pero a priori te diria:
Mira que la formula para la velocidad de un numero positivo
Y supongo que has puesto comentado los puntos de coordenadas de testeo (/*), así que quitalo
105
Preguntas y respuestas / Re:Problema con el "creation code"
Noviembre 15, 2017, 12:23:32 PMCita de: Alice en Noviembre 15, 2017, 11:51:50 AMNo entiendo lo que me estas explicando ¿como es eso de que "Vuelve q llamar a path_start(...)"? los códigos de coordenadas están el "creation code", pero no se ejecutan.
Vuelve q llamar a path_start(...)
Luego de definir los puntos.
Esto es porque los creation Codes se ejecutan luego del evento create