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 - Naitsabes0

21
¿Que les parece esta mecánica?
https://i.gyazo.com/fccff4d89b224448c5eaa2c539f0ae10.gif

El concepto es simple, toca los bloques y desaparecerán, pero la forma en como esta funcionando lo hace especial, desde mi punto de vista analizo las siguientes partes.

1.- Tenemos 2 objetos, el obj_Bloque_Color y el obj_Pincho_Color (la razón del porque se llama color es para que no entre el conflicto con los bloques y pinchos normales)
2.- El jugador debe colisionar con la plataforma cuadra, es decir el  obj_Bloque_Color y no la puntiaguda, la cual vendría siendo el obj_Pincho_Color para que esta se destruya.
3.- Estas comenzaran a parpadear/brillar de forma llamativa antes de desaparecer, por lo que hay un limite de tiempo antes de que se destruyan producto del ejemplo 2.
4.- Las plataformas que tienen el mismo color y que a su vez están en colisión/contacto con sus semejantes, son afectadas por la colisión, por lo tanto las del mismo color que no estén en contacto o que sean de otro color, no son afectadas por lo anterior.
5.- Hay un código en creation_code que se encarga de darles el color a los objetos, por lo que asumo que están de color blanco antes de darles una identidad, ya que esto permite hacer varios colores con solo 2 objetos.

Lo anterior correspondería a mi análisis escrito  :), ahora pasare a mi punto débil y la razón principal por la que publique este post, el código  :-[.

Como dije tendríamos 2 objetos, el obj_Bloque_Color y el obj_Pincho_Color

El obj_Bloque_Color
CREATE
///Variables
destello = false; //no a sido activado
tiempo = 90; // 3 segundos 3*30

Collision_obj_Jugador
destello = true //a sido activado
if destello = true // si esta activo activa la alarma
    {
    alarm[0] = 30 // 1 segundos 1*30
    }

ALARM0
(algo que la aga brillar)
(destruir cuando el tiempo es 0)

El obj_Pincho_Color
STEP
if destello = true // si esta activo activa la alarma
    {
    alarm[0] = 30 // 1 segundos 1*30
    }

ALARM0
(algo que la aga brillar)
(destruir cuando el tiempo es 0)

En el obj_Bloque_Color y el obj_Pincho_Color
Creation_code
color = c_green;

En el obj_Bloque_Color y el obj_Pincho_Color
Creation_code
color = c_yellow;

Bueno admito que hay muchos problemas para que esto funcione como lo que se ve arriba en el GIF, por ejemplo no esta definida la variable color como para que funcione, probablemente deba hacer algo que controle cuando los objetos de mismo color están colisionando, ya que no se como hacer las canciones para que eso se este leyendo en códigos, sin embargo mi código esta muy lejos de poder funcionar de las misma forma que el ejemplo, sin embargo ya estoy armando una base junto con algunas teorías, hasta el momento estaré estudiando para una prueba de matemáticas y ya he gastado sus buenas horas tratando de desentrañar esta interesante mecánica, en caso que pueda o pasamos resolverlo, el código estará aquí para su uso y análisis, que tengan un buen día.
22
Preguntas y respuestas / ¿Como se compran cosas en GM;S?
Diciembre 06, 2017, 08:10:51 PM
Probablemente les parezca raro, pero nunca he comprado nada por internet que tenga relación con licencias, permisos o asuntos de esa clase, al parecer lo mas parecido que he hecho a una compra digital ha sido algún que otro juego barato y con descuento de steam en fechas especiales, supongo que debe ser un proceso similar, pero en algún momento necesitare tener licencias de distribución si quiero tener permiso a otras plataformas, por estas razones les quiero preguntar ¿como es el proceso para comprar una licencia de  :GMS:? bueno tomando en cuenta que esta ya no se vende tendría que comprarse la de  :GMS: 2, pero ¿se entiende la idea en que quiero poner en mayor funcionamiento  :GMS: 1?
23
Bueno un día pregunte sobre si se podía vender o publicar juegos de  :GMS: estándar en otros sitios, a los que algunos afirmaron que si, no se como podría publicar una demo de mi proyecto en algún lugar como "steam", pero al parecer si logre publicarlo en un lugar llamado itch.io.

No estoy seguro si esto me esta funcionando bien, al menos si la pagina esta bien diseñada y le permite al jugador leer, ver las imágenes, el vídeo, la descarga y los enlaces externos.

https://naitsabes0.itch.io/red-heart-demo

En caso que todo este funcionando bien ¿Conocen otro sitio donde se pueda hacer esta misma función con una licencia estándar de  :GMS:?

Por otro lado es un hecho que solo podre tenerlo en dispositivos de escritorio, ya que claramente soy estándar, por lo que lugares como google play, ya que son de dispositivos móviles.
24
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

velocidad = 0 + (colisión view)


STEP

velocidad += y
alarm[0] = 30


ALARMA0

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  :-[.
25
Preguntas y respuestas / ¿Hay un tutorial de esto?
Noviembre 15, 2017, 12:14:16 PM

Estoy seguro que la saga de "mega hombre" es la que mas abusa de esta mecánica de bloques que aparecen y desaparecen siguiendo un patrón de movimiento ¿pero como lo programan? desde mi punto de vista tendrían un objeto que se encarga de todas las colisiones y tiempo de aparición/desaparición, por otro lado el objeto puesto en la "room" tendría las coordenadas en donde serian creadas para una posterior desactivacion cumpliendo un ciclo infinito, de no hacer esto ultimo con el !creation code" habria que armar 1 objeto por cada patron ¿hay o han visto algún tutorial de  :GMS: donde se muestre o explique esto?.
26
Bueno quiero hacer que el objeto tenga sus propias coordenadas de movimiento en "creation code" por esta razón he inactivado las coordenadas del obj_Bloque_Creador, ya que trato de hacer muchos bloques que se mueven en diferentes coordenadas.

CREATE

///Patron
global.patron = path_add();
//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);*/
//Detener movimiento
path_set_closed(global.patron,false);
path_start(global.patron,room_speed/path_get_number(global.patron)*2,path_action_stop,1);
//Crear otro bloque
alarm[0] = room_speed
instance_create(0,0,obj_Bloque_Creado);


ALARMA0

///Crear clon
instance_create(x,y,obj_Bloque_Creado);
alarm[0] = room_speed - 5;


DRAW

///Dibujar lineas de movimiento
draw_self()
draw_path(global.patron,x,y,1);


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);

El resultado es que esta sin movimiento.
27
Preguntas y respuestas / ¿Como se crea esto?
Noviembre 13, 2017, 02:24:37 AM

Bueno al parecer se mueve con un orden ya establecido, un "paths", pero va dejando clones que se van creando, estos se van destruyendo a un paso de igual velocidad por lo que siempre habrá una misma cantidad de bloques, cave mencionar que toque un tema parecido a este, pero en 3 días nadie respondió, no hay que negar que parece una mecánica simple que da grandes posibilidades

¿Alguien ha programado algo como esto o sabe como programarlo?

Por otro lado he armado un código y 2 objetos, pero no funciona.  :-\
28
Preguntas y respuestas / ¿No me funciona este objeto?
Noviembre 10, 2017, 11:29:02 PM
Busco que el bloque haga esto.

Un ejemplo en: Angry Video Game Nerd Adventures


He hecho lo siguiente:

spr_Bloque

obj_Bloque_Creador
STEP///////////////////////
path_start (path_Bloque, 3, path_action_continue,true); // Patrón de movimiento
alarm[0] = 30;

ALARMA0///////////////////////////
instance_create (x,y,obj_Bloque_Creado);

obj_Bloque_Creado
CREATE///////////////
image_speed = 0.1;

ANIMATION END////////////////
instance_destroy();

Tiene alguna falla que evita que funcione de la forma que se ve en el GIF, el error mas notable es que no se mueve, quiero aclarar que el path ya esta en la "room" al igual que el objeto.

29
Estoy leyendo el manual de  :GMS: 2 https://docs2.yoyogames.com/index.html?page=source%2F_build%2Findex.html, lo cual es básicamente lo mismo que  :GMS:, solo que hacen mas énfasis en la administración de la interfaz, pero busco una guía donde estén todas las funciones y variables que tiene  :GMS: 2, ya que muchas se agregaron y quitaron, por lo que busco hacerme un manual en español para aprender a programar, ademas podre entregar este dato a algún usuario que desconozca los cambios.
30
Preguntas y respuestas / ¿1 instancia por objeto?
Noviembre 08, 2017, 10:30:49 PM
A diferencia de  :GMS:1 ¿uno esta obligado a crear una "instance layer" para colocar objetos?


Veo que por cada objeto a pesar de que se repita me empieza a crear una lista de lo mismo.



En  :GMS: 1 simplemente tomo un objeto y lo coloco sin llenarme una parte de la pantalla con lo mismo, soy consciente de que puedo apretar la flecha para convertirlo en 1 solo bloque, pero no entiendo porque se debe tener un "layer properties" y una lista cuando solo quiero poner objetos que ya fueron programados, ni siguiera me deja darle propiedades únicas al objeto como "creation code", me da la sensación de que :GMS: 2 esta mas limitado que  :GMS: 1 al momento de hacer escenarios y que es menos intuitivo.
31
 Siguiendo un tutorial de escuela de video juegos he armado su código de defensa de la torre.

obj_Jugador
CREATE////////////////////////
[gml]
/// Variables
disparar = true;
victoria = room_speed * 30;
alarm[1] = 5;  // Crear primer enemigo en...
[/gml]
ALARM0//////////////////////////
[gml]
/// Disparar de nuevo
disparar = true;
[/gml]
ALARM1//////////////////////////
[gml]
/// Crear enemigo
enemigo = instance_create(850,455,obj_Enemigo);
enemigo.hspeed = random_range(-2,-0.5);

// Siguiente enemigo en...
alarm[1] = random_range(1,2.5)*room_speed;
[/gml]
GLOBAL LEFT BUTTON (NO EXISTE ESTE EVENTO EN  :GMS: 2)//////////////////////////
[gml]
/// Procesar disparo
if (mouse_x > x+25 and disparar){

    // http://gmc.yoyogames.com/index.php?showtopic=523427
   
    direccion = point_direction(x,y,mouse_x,mouse_y); // Dirección de la flecha
    distancia = point_distance(x,y,mouse_x,mouse_y); // Distancia hasta destino
   
    flecha = instance_create(x,y,obj_Flecha);
    flecha.speed = distancia/room_speed; // Velocidad en base distancia/steps de vida
    flecha.direction = direccion+random_range(-5,5); 
    flecha.gravity_direction = 270;
    flecha.gravity = 0.05;
   
    disparar = false;
    alarm[0] = room_speed*0.75; // siguiente disparo en...
}
[/gml]
DRAW//////////////////////////
[gml]
/// Jugador, dirección de ataque y marcador
draw_self();

// Dirección de la flecha
var dir = point_direction(x,y,mouse_x,mouse_y);
if (mouse_x > x+25){
    draw_sprite_ext(spr_Jugador_Direccion,0,x,y,1,1,dir,c_white,1);
} else {
    draw_sprite_ext(spr_Jugador_Direccion,1,x,y,1,1,dir,c_white,1);
}

/// Marcador y victoria
if (victoria<=0) {
    show_message("Has ganado!");
    game_restart();   
} else {
    victoria--;
    draw_set_color(c_black);
    draw_set_font(fnt_Marcador);
    draw_text( 25,25,"Victoria en " + string(ceil(victoria/room_speed)));
}
[/gml]
obj_Flecha (depth -5)
STEP//////////////////////////
[gml]
/// Angulo del sprite
image_angle = direction;
[/gml]
COLLISION obj_Enemigo//////////////////////////
[gml]
/// Matar enemigo (cambiar sprite)
if (other.sprite_index != spr_Enemigo_Muerto) instance_destroy();
other.sprite_index = spr_Enemigo_Muerto;
other.speed = 0;
[/gml]
OUTSIDE ROOM//////////////////////////
[gml]
/// Liberar memoria
if (x<0 or x> room_width or y>room_height) instance_destroy();
[/gml]
obj_Enemigo
CREATE//////////////////////////
[gml]
/// Variables
image_speed = 0.1;
hspeed = -0.5;
[/gml]
STEP//////////////////////////
[gml]
/// Destrucción de instancia
if (x < -100) instance_destroy();
if (sprite_index == spr_Enemigo_Muerto) image_alpha-=0.01;
if (image_alpha <= 0) instance_destroy();
[/gml]
COLLISION obj_Jugador//////////////////////////
[gml]
/// Jugador pierde
show_message("Has perdido!")
game_restart();
[/gml]

Pero da error en  :GMS: 2.
32
 Bueno como muchos me han dicho cosas como que  :GMS: no tendrá soporte en 2018 y que las licencias de distribución dejaran de servir, he pensado en que deberia cambiarme a  :GMS: 2, la verdad es que ha pasado serca de 1 año desde su lanzamiento, por lo que hay tutoriales para volver a aprender  :).


Estoy seguro de que puedo trasladar todas las imágenes que he creado en  :GMS:, pero tengo estas preguntas.

1.-¿Las room tendré que volver a hacerlas y programarles las opciones y códigos que tenían en el "creation_code?

2.-¿Tendré que volver a programar los códigos desde 0?

3.-¿Se pueden importar los códigos de  :GMS: a  :GMS: 2?

4.-¿Vale la pena seguir programando en  :GMS:?

Cualquiera que lleve años en este foro sabe que estoy en esto desde 2016, mas de 1 año y muy cerca de llegar al 2°, al entender la lógica puedo hacerlo mas rápido, pero costara tener ayuda.
33
yoyogames ha cambiado mucho tu pagina web durante este año, por lo que necesito que alguien me diga donde se compran las licencias para  :GMS:, ya que solamente veo anuncios y mensajes de  :GMS: 2.
34
Bueno estoy probando 2 nuevas funciones que he visto y no he usado bien en el manual de  :GMS:.

¿Se supone que se entienden así estas funciones?

instance_activate_object() //activa el objeto
instance_deactivate_object() //desactiva el objeto

NOTA: Pueden copiar y pegar este código para ver su funcionamiento sin la necesidad de escribirlo.

por ejemplo la "room" tiene el objeto "obj_Modo_Linterna" (persistente sin sprite)
[gml]
CREATE//////////////////////////////////////////////////////////////////////////////
///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();
[/gml]
[gml]
STEP/////////////////////////////////////////////////////////////////
///Control de la oscuridad
if (surface_exists(superficie)){
    surface_set_target(superficie);
   
    //conjunto oscuridad
    draw_set_colour(c_black);
    draw_set_alpha(0.9); //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 (objJugador) {
        draw_circle(x + random_range(-1,1), y + random_range(-1,1), 120 + random_range(-1, 1), false);
       
        }
       
        draw_set_colour(c_white);
        draw_set_alpha(1);
       
        with (objJugador) {
        draw_circle(x + random_range(-1,1), y + random_range(-1,1), 80 + 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();
}
[/gml]

[gml]
ROOM_END//////////////////////////////////////////////////////
/// destruir la superficie
if (surface_exists(superficie)) {
    surface_free(superficie);
}
[/gml]

[gml]
DRAW////////////////////////////////////////////////////
///Dibuja la superficie
if (!surface_exists(superficie)) {
    superficie = surface_create(room_width, room_height);
} else {
    if (view_current == 0) {
        draw_surface(superficie, 0, 0);
    }
}
[/gml]

¿Como puedo hacer que se desactive cuando la "room" se llama "X" nombre y se active cuando "X" nombre tiene la "room"? no quiero destruirlo ni quitarle lo persistente, simplemente que deje de funcionar en "X" lugar.

Por ejemplo

rom_Zona_Nexo (activo)
rom_jefe_Espectador (activo)
rom_jefe_Cazador (activo)
rom_Zona_Espectador (desactivo)
rom_Zona_Cazador (desactivo)
35
Un día pregunte por las opciones de  :GMS:, después el usuario "cristopher2545" me respondió con esto:

si lo tienes en ingles

file/preferences/forms/room forms/When closing, remove instances outside the room (desmarca esa opcion)

si tienes el game marker en español

archivo/preferencias/formularios/formularios de cuarto/cuando se cierra/remover instancias fuera del cuarto  (desmarca esa opcion)

Después el usuario "rpgamer97" pregunto.

Disculpen la intromisión pero no puedo evitar preguntar, ya existe gane maker en español oficial o hablas de una traducción pirata?

Al igual que "rpgamer97" tengo la duda de si  :GMS: tiene el motor disponible en español, al menos de forma oficial y legal.
36
Bueno se que este mensaje sale cuando hay objetos fuera de la "room", también se que es una medida que tiene  :GMS: para eliminar objetos que ocupen recursos fuera de la "room", pero yo los estoy colocando "INTENCIONALMENTE" fuera de este, porque escondo secretos que no están en el escenario.



¿Donde y que opción debo desactivar para que  :GMS: no me de advertencias de que hay objetos fuera del escenario?
37
Tengo un objeto que tiene un sprite de color violeta, este cambia con este código.

ROOM_START/////////////////////////////////////
image_blend=choose(c_blue,c_fuchsia,c_green,c_lime,c_maroon,c_olive,c_orange,c_purple,c_red,c_yellow);

¿Pero como le programo algo como esto a un background/tile?

Nota: Esto es para que el nivel se sienta diferente con el mismo background/tile cada vez que el jugador entra.
38
El objJugador de mi juego es persistente, tiene mas 6.238 lineas de código para funcionar con su entorno.

¿Como creo un objeto con todas sus características de jugador sin ser persistente?

NOTA: este objeto creado es el muñeco de prueba que debe quedarse en la "room" donde fue encontrado.

39
Tengo un botón que al presionar el mouse, este envía al jugador a la habitación de inicio.

///Volver
room_goto(rom_Inicio);
effect_create_above (ef_firework,x,y,1,c_yellow);

Mi problema es que mi menú tiene sub-categorías, por lo tanto el jugador es enviado al inicio en vez de volver de la ultima habitación que estuvo, como es innecesario crear un botón por cada habitación, ya que usan el mismo sprite, la idea es que pueda programarle su destino al ser presionado por el mouse.

¿Como debería programar el botón para que me permita usar el "creation code" como selector de "room"?
40
Preguntas y respuestas / ¿Como se interpreta esto?
Octubre 30, 2017, 09:09:21 PM
Digamos que programado un contador de tiempo global, este estará presente en todo el juego de principio a fin si lo coloco persistente.

///Efecto del tiempo 0
if(global.tiempo < 0) //Si la variable es menor a 0 se activa el evento
{
    global.tiempo = 0 //Sin tiempo
    global. vida = 0 //Muerte jugador
    game_restart("partida.sav") //¿Reiniciar el juego y/o borrar partida?
}

La idea es que al llegar a 0 el jugador pierda absolutamente todo, es decir que el juego debe evitar que el jugador pueda cargar la partida, obligando a jugar como si estuviera recién empezando.

¿Entonces como se interpreta todo lo que programe en esta linea?

NOTA: Esto es un modo de juego que estoy creando llamado contra reloj, el cual consiste en terminarse el juego en menos de 1 hora.