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.

Mensajes - Hezz

61
Hola a todos. Esoty intentando hacer un juego online y es mi primer proyecto donde lo aplico, por lo que estoy bastante verde en el tema.
Mi duda es la siguiente: Quiero hacer un servidor y un cliente por aplicaciones separadas, y de momento los clientes se conectan y se desconectan de forma correcta. Pero al intercambiar datos sobre los estados de los clientes (posiciones "x" e "y", u otras variables) el servidor no recibe los datos, y por consecuencia, tampoco los demás usuarios conectados. Para ser más específico, los clientes se mueven en la room y todo, pero en el servidor no pasa nada; y si ahí no sucede nada, los clientes no reciben información sobre el estado de los otros usuarios. Creo que mi error puede estar en que los paquetes los envío desde el evento STEP y no desde el asincróncio NETWORKING, pero no sé mucho sobre el tema. En mi caso, tanto el cliente como el servidor envían los datos desde el evento STEP. Gracias de antemano.
62
Preguntas y respuestas / Re:balas y disparo
Julio 12, 2018, 02:47:43 AM
Es porque quedó el ...; Eso era para decir que ahí va todo el código que uses en ese lugar, junto con el cargador--;
63
Preguntas y respuestas / Re:balas y disparo
Julio 11, 2018, 11:34:46 PM
Podés crear una variable "municion" en tu personaje, con una cierta cantidad, por ejemplo 10.
En el evento step, donde dice:
if (mouse_check_button_pressed(mb_left))

añadirle:
if (mouse_check_button_pressed(mb_left) && municion > 0) {...; municion--;}

De esta forma tu personaje va a tener balas limitadas, pero si querés que tenga un cargador y balas de repuesto, vas a necesitar una variable para la municion del cargador, otra para la de repuesto y otra para la munición máxima del cargador, por ejemplo "cargador", "municion" y "cargador_max". Las balas que va a tener mi cargador va a ser 14, por lo tanto "cargador_max = 14". Entonces, en el evento step:
if (mouse_check_button_pressed(mb_left) && cargador > 0) {...; cargador--;}

Luego asignar una tecla para recargar, por ejemplo la tecla R:
if (keyboard_check_pressed(ord("R"))) {
    //Si tiene 14 o más balas de repuesto
    if (municion >= cargador_max) {
    municion -= cargador_max - cargador;  //Se hace esto por si todavía quedan balas en el cargador
    cargador = cargador_max;
    }
    //Si tiene menos de 14 balas de repuesto
    else if (municion < cargador_max) {
    cargador = municion;
    municion = 0;
    }
}

Luego, para obtener más balas, vas a necesitar que el personaje junte o consiga balas, y que siempre que se le sumen en la variable "municion".

No probé el código, pero creo que debería funcionar.
64
Preguntas y respuestas / Re:Shader reflectante
Julio 11, 2018, 07:10:16 PM
Eso as algo malo de game maker. Muchos efectos tenés que hacerlos desde 0 y no están pre-configurados, como en unity las físicas, por ejemplo. Estos efectos hay que rebuscárselas uno mismo, o con suerte encontrarlos por internet, pero cosas muy avanzadas no suelen encontrarse.
65
Preguntas y respuestas / Re:vida.
Julio 11, 2018, 07:06:49 PM
Disculpá, me equivoqué en algo. El código no era para usarlo en el draw_gui, era para el draw.
Creo que ahora debería estar. Adjunté tu proyecto con ese efecto ya puesto.
66
Preguntas y respuestas / Re:vida.
Julio 11, 2018, 06:47:48 PM
Podés intentar lo siguiente: En tu objeto pared añadí el evento draw y poné:
draw_set_alpha(1);
draw_self();

Y lo de la view, cambiá el 0 por el número de la view que estés usando en donde dice view_xview[0], view_yview[0], etc.
67
Preguntas y respuestas / Re:Shader reflectante
Julio 11, 2018, 06:11:36 AM
Hola Ikaro3d! Estoy seguro que sí se puede, ya que en programación el límite es la imaginación (y el conocimiento, y los recursos...  :-[).

Pero hacer una luz que sea reflejada es algo posible, aunque depende del enfoque de la cámara o si es un juego 2D/3D. Lo mejor para solucionar este tipo de dudas es aplicar matemáticas clásicas. Relacioná algunas variables con valores matemáticos (x, y, etc.) y guiate por páginas como wikipedia o demás para analizar fórmulas. Te dejo los videos de un youtuber que habla sobre matemáticas en programación, aunque sólo tiene 2:

Órbitas con trigonometría | Matemáticas para crear videojuegos #1: https://www.youtube.com/watch?v=SC0SmcBgScY
Predecir trayectorias de balas | Matemáticas para crear juegos #2: https://www.youtube.com/watch?v=YSOHzhIELfY

Espero que te sirva!
68
Preguntas y respuestas / Re:vida.
Julio 11, 2018, 03:32:54 AM
Podés intentar lo siguiente:
///Draw GUI
var xv = view_xview[0]; //Posición x de la view. Esta posición es la izquierda. Cambiá el 0 por el número de la view que estés usando.
var yv = view_yview[0]; //Posición y de la view. Esta posición es la parte de arriba.
var wv = view_wview[0]; //Ancho de la view.
var hv = view_hview[0]; //Alto de la view.

//Hacer que no se dibuje el efecto
draw_set_alpha(0);

//Si la vida es menor a 25, entonces...
if vida <= 25 {
    //Cambiar la visibilidad del efecto
    var alpha;
    alpha = (25-vida)/100;
    draw_set_alpha(alpha);
}

//Color del efecto
draw_set_color(c_red);

//Dibujar el efecto
draw_rectangle(xv, yv, xv + wv, yv + hv, false);


Si querés, echale un vistazo al proyecto donde hice las puebas.
69
Voy a probar. Muchas gracias!!
70
Hola a todos. Tengo un problema con mi juego, y es que quiero hacer que mi enemigo se mueva de forma aleatoria por el nivel, antes de que el jugador se acerque y lo detecte, como un modo idle. Este efecto está en algunos juegos RPG, pero no puedo replicarlo, ¿alguna ayuda?

Este es el código que estoy probando:
///Create
//Stats del enemigo
hp = 10;
dmg = 3;
speed = 1;

//Valores para movimiento aleatorio
xr = 0;
yr = 0;

//Iniciar la randomizacion del movimiento
alarm[0] = 90; //1.5 seg

///Alarm[0]
xr = random(196) * choose(1,-1) + x;
yr = random(196) * choose(1,-1) + y;

mp_potential_step(xr,yr,speed,false);

sprite_index = spr_skeleton_walking;
image_speed = 0.2;

///Step
depth = -y;
if (mp_potential_step(xr,yr,speed,false)){
    alarm[0] = 120 + random(120);
    sprite_index = spr_skeleton_idle;
}

///Game start
randomize();