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

1
Preguntas y respuestas / Re: Bufanda con "fisicas"
Julio 22, 2021, 04:24:26 PM
oh ya había visto algo parecido y pensé en usar fisicas pero hay un problema, seguí un tutorial y todo bastante bien, pero la cuerda es demasiado "elástica" se estira demasiado al moverla no se si eso sea algo normal pero me gustaría que sea un poco mas "firme" comprendo debes limitar la tensión pero honestamente es algo que no entiendo dejo el código que usaba

create del objeto spawner
[gml]
offset_y = 0;
host = self;
next_rope = instance_create(x, y + offset_y, obj_Rope);

attach = physics_joint_distance_create(host, next_rope, host.x, host.y, next_rope.x, next_rope.y, false);;
physics_joint_set_value(attach, phy_joint_damping_ratio, 1);
physics_joint_set_value(attach, phy_joint_frequency, 10);

with(next_rope){
    parent = other.id;
}

repeat (30){

    offset_y += 1;
    last_rope = next_rope;
    next_rope = instance_create(x, y + offset_y, obj_Rope);
   
    link = physics_joint_distance_create(last_rope, next_rope, last_rope.x, last_rope.y, next_rope.x, next_rope.y, false);
    physics_joint_set_value(link, phy_joint_damping_ratio, 1);
    physics_joint_set_value(link, phy_joint_frequency, 10);
   
    with(next_rope){
        parent = other.last_rope;
    }

}
[/gml]

prácticamente con eso se crea una cuerda pero como digo esta es demasiado elástica, no mantiene sus "dimensiones" soy consiente que se debe limitar pero honestamente no se como haha gracias por responder!
2
Preguntas y respuestas / Bufanda con "fisicas"
Julio 22, 2021, 07:34:57 AM
Hola a todos!

estaba practicando un poco con las físicas que trae game marker con la finalidad de crear una bufanda que esta pegada al jugador y que tenga gravedad para interactuar con el entorno, no me gusta la idea de que el juego tenga físicas solo por una cosa tan sencilla, hay alguna forma de replicar un efecto parecido con objetos?

por ejemplo que se cree 6 objetos unidos entre si los cuales tengan gravedad y sigan conectados entre si, que modifiquen su angulo dependiendo de el estado en el que se encuentren, exactamente lo que pasa cuando creas una cuerda con fisicas. cual seria la manera mas sencilla de tener algo parecido

de antemano gracias!
3
Cita de: Void en Junio 14, 2021, 10:18:57 PM
Los scripts get_ortho_* no estan regresando nada, tenias que agregar un return para px y py respectivamente.

Dejo el editable arreglado.


maestro!, muchas gracias compañero me sacaste de este apuro!,  te lo agradezco muchísimo!
4
hola! gracias por responder!, añadí los códigos para probarlo y algo super extraño ocurrió, no funcionaba para nada, cambie las variables "iso_mouse_x" por "mouse_x" y empezo a funcionar parcialmente, el cursor se ve no centrado es decir que aunque no este sobre las tiles este funciona y es extraño trate de modificar variables y distancias pero nada, al menos ahora funciona parcialmente y eso esta genial!

te dejo el proyecto para que veas a lo que me refiero! y de nuevo gracias!
5
hola a todos! estoy creando un juego estilo restauran city con vista isométrica, y todo iba bastante bien hasta que me tope con una pared la cual no puedo cruzar por mi propia cuenta espero ustedes puedan darme una mano!


estoy proyectando los sprites "normales" para que se vean como isométricos usando el código a continuación, y todo perfecto pero cuando quiero interactuar con los objetos estos usan las coordenadas de los sprites "normales" en vez de las nuevas coordenadas isométricas por ende no esta funcionando como debería, entiendo que debo usar una formula para convertir las coordenadas cartesianas en coordenadas isométricas pero honestamente no logro entenderlo.

aquí esta el código para proyectar


variables del objeto control muestra los tamaños de los sprites normales y los isometricos
[gml]
global.isoview=false

global.width_ortho=32
global.height_ortho=32
global.width_iso=78
global.height_iso=40

[/gml]

si aprietas espacio la vista cambia a isométrico y se ejecuta este código que esta dentro del objeto "vista cartesiana"

[gml]
if global.isoview=true
{
var isox,isoy;
isox=get_iso_x(x,y)
isoy=get_iso_y(x,y)

draw_sprite(s_iso_tile,0,isox,isoy)
[/gml]


los scrips "get_iso_x" y "get_iso_y" contienen lo siguiente respectivamente

[gml]
var xx,yy,px,py;
xx=(x - room_width/2)/global.width_ortho
yy=(y - room_height/2)/global.height_ortho

px=(xx-yy)*(global.width_iso/2) + room_width/2
py=(yy+xx)*(global.height_iso/2) + room_height/2

return px
[/gml]


[gml]
var xx,yy,px,py;
xx=(x - room_width/2)/global.width_ortho
yy=(y - room_height/2)/global.height_ortho

px=(xx-yy)*(global.width_iso/2) + room_width/2
py=(yy+xx)*(global.height_iso/2) + room_height/2

return py
[/gml]

usando ese codigo proyectas la vista y creas la ilusión de que es isométrico pero las coordenadas del mouse siguen estando igual, alguna idea de como arreglarlo?, adjunto el proyecto por si es mas sencillo verlo , estando abierto el juego aprieta la tecla arriba para cambiar al modo isométrico de antemano gracias!
6
vaya y yo lo estaba haciendo como lo haces en minecraft pones la ip a la cual quieres fijar el servidor,  siempre aprendes algo nuevo


lobal.Server = -1;//instance_create(0,0,oServer);
global.connectip="127.0.0.1";
global.InitObject = id;
global.haveserver = false;
global.ServerType = network_socket_tcp;


// Create a server and listen on our broadcast port....
global.broadcast_server = network_create_server( network_socket_udp, 6511, 100 );



entiendo ese es el codigo que maneja la creacion del networking no estoy seguro
7
Estoy usando la v4 la que está estructurada como xx.xx.145.89 tengo el firewall totalmente desactivado ya que tengo entendido que causa problemas con este tipo de cosas

La ip la pongo en la parte donde se crea el server y al darle esa IP a un amigo dentro de la misma red del Hamachi este no logra conectarse

En la consola me aparece que se creo el servidor y hasta ahí llega la cosa
8
hola gracias por responder! lo probe antes de postear pero no funciono correctamente, siempre que intento algo fuera de mi red local incluso usando hamachi no funciona, parece ser que algo estoy haciendo mal pero no se que podria ser, talvez es algo muy insignificante que no puedo ver jaja
9
hola a todos!

hace unos días me baje un ejemplo de la pagina de yoyo games sobre el multijugador local, nada serio solo me interesaba aprender un poco y entender como funciona esa tecnología dentro de un juego y me pareció bastante interesante pero me surgieron muchas dudas y este no es un tema tan extenso en la internet, aparte tomando en cuenta que no muchos hablan de las cosas tan especificas que quiero preguntar espero puedan despejarme! dejare el ejemplo del que hablo abajo.

primero que nada, entiendo que ese ejemplo es exclusivamente para usarlo en una conexión local, pero existe alguna manera de convertirlo a multiplayer online? entiendo que debo usar una ip externa y hacer port forwarding, pero al tratar de hacerlo y mandarle el ejemplo a otra persona esta no se puede conectar.

entonces pensé en usar hamachi para hacer la conexion un poco mas directa, mi duda aqui es como funciona ese procedimiento alguien lo a hecho?, entiendo que el server debe tener la ip que sale en hamachi, y el cliente que quiera conectarse debe tener esa misma ip, aunque no lo e intentado me gustaria saber si alguien a tenido alguna experiencia usando ese combo, por ejemplo que puerto debo usar con el hamachi dentro de game marker para que funcione correctamente.

otra cosa que no comprendo es, siempre es nesesario abrir los puertos para una coneccion entre 2 computadores en diferentes paises? hay alguna fomra de que todo sea mas automatico )sin el uso de hamachi en este caso) alguien tiene o a experimentado con eso? me gustaria aprender!

realmente no me importa si uso algun programa externo para esto ya que solo estoy probando alternativas y descubriendo cosas nuevas, entiendo que un juego multiplayer no es sencillo y requiere tiempo y esfuerzo, antes de empezar me encantaria saber alternativas y solventar mis dudas! espero puedan apoyarme!

de antemano gracias!
10
Preguntas y respuestas / Problema fullscreen
Septiembre 06, 2020, 10:40:49 PM
hola a todos! gracias a la ayuda que me han otorgado e logrado hacer muchas cosas interesantes dentro del juego que estoy creando pero nuevamente me topo con un problema que esta fuera de mi conocimiento y espero que alguien experimentado pueda apoyarme al respecto!

me dedique a investigar un poco y decidí crear un juego alejado de los pixeles (invertí un poco en las herramientas para dibujar arte digital y animarla en adobe animate cc) para hacer algo con un estilo diferente pero me tope con algo inesperado y es el manejo de las resoluciones. aqui les dejo el ejemplo de mi personaje, el tamaño mostrado es el tamaño que el juego usa para dibujar las cosas.

https://imgur.com/a/GomGRfh

la idea aquí es que el jugador pueda escoger la resolución a la que desea jugar pero el problema radica al entrar en modo pantalla completa los sprites se ven algo borrosos, no exageradamente mal pero puedes notar que los colores y las lineas se ven mal, como si tuvieran un filtro encima, tengo activada la opcion "interpolate colors betewn pixels"  porque si la desactivo el juego se ve peor se ve super pixelado y no me convence para nada.

mi pregunta es, se puede de alguna manera proyectar la pantalla de una forma que los colores se noten en "HD" y que los graficos nos e vean borrosos? algun plugin o alternativa? porque en modo ventana a 600x600 el jueog luce muy bonito pero al ponerlo a pantalla completa se va la magia!

trate de usar imagenes en vector pero a la minima que trato de compilar el juego con una imagen de esas el game marker me crashea sin darme ningun error o aviso ya lo desinstale y hice de todo pero no parece funcionar, habia experimentado con vetores antes pero las imagenes lucen peor que los png a pesar de usar el codigo adecuado.

espero puedan ayudarme o darme un consejo para solucionar este pequeño problema estetico! y de antemano gracias.
11
Preguntas y respuestas / Re:variables con memoria
Septiembre 06, 2020, 07:45:17 PM
Cita de: Tylag en Agosto 09, 2020, 09:26:49 AM
Buenas,
Lo primero de todo ten cuidado con llamar a tus variables igual que algunas palabras reservadas del Game Maker, en este caso score es una variable built-in, si intentas llamar a tu variable de esta forma: global.score ,al intentar compilar el proyecto deberia darte un error.

Te recomiendo no usar una variable global por cada score que quieras guardar, yo usaría un array, lista, mapa, lo que sea para almacenarlo. en lugar de tener global.score_congelado, global.score_congelado2, global.score_congelado3, etc, etc...

Algo así:


[gml]
//CREATE
global.my_score = 0;
global.scores_congelados = ds_list_create();
[/gml]


[gml]
//STEP
if (global.my_score >=500 && is_undefined(global.scores_congelados [| 0])) {
   ds_list_add(global.scores_congelados , 500);
}

if (global.my_score >=700 && is_undefined(global.scores_congelados [| 1])) {
   ds_list_add(global.scores_congelados , 700);
}
[/gml]

De este modo tendrias almacenado en la posicion 0 y 1 de tu lista los valores 500 y 700, pudiendo ampliar la lista lo que quieras.
Luego si quieres mostrar u operar con estos valores solo tendrias que acceder a la posicion de la lista que quieras.

Por cierto, ¿puede ser que no te estuviese funcionando porque estabas pisando continuamente el valor de global.score_congelado?
Si tenías algo así:

[gml]
if (global.score >500)
global.score_congelado= global.score;
[/gml]

global.score_congelado se estaría actualizando constantemente al valor de global.score

Espero que te sirva, un saludo.


perdona por la tardanza colega pero me sirvió de maravilla pude hacer todo un sistema usando tu código y te lo agradezco mucho!
12
hola a todos! lindo día el que hay afuera!


tengo un pequeño problema y espero tenga solución y que puedan ayudarme :) porque ya le di vueltas hasta el cansancio, tengo una variable llamada:

global.score=0

esta variable guarda los puntos del jugador durante la partida hasta ahi todo correcto me gustaria tener 3 variables cada cierto tiempo estas 3 variables congelen la puntuacion algo asi como recordar la puntuacion que tenias en ese momento usando la variable global.score pero sin que cambie ninguna de la svariables congeladas por ejemplo

global.score=500

global.score_congelado= global.score // en este caso eran 500

si el jugador gana mas puntos por ejemplo

global.score=700

recordando que el anterior score era 500 entonces

global.score=700

global.score_congelado= global.score // en este caso eran 500
global.score_congelado2= global.score // en este caso eran 700

espero los ejemplos ayuden la idea es usar una variable base, y congelar o guardar en ciertos momentos ese valor sin que se modifique una vez guardado, ojala puedan hecharme una mano! o si esto es posible porque creo estoy soñando mucho! de antemano gracias!
13
Cita de: Clamud en Mayo 31, 2020, 03:05:51 PM
Pon una variable en el objeto mesa que indique si está ocupada
[gml]
ocupada = false;
[/gml]

El objeto cliente puede buscar una mesa vacía así
[gml]
mesaObjetivo = noone; // al principio no hay objetivo

with (objMesa) {// revisar todas las mesas
    if (ocupada == false) {// si una mesa no está ocupada
        other.mesaObjetivo = id; // se convierte en objetivo
        ocupada = true; // ahora está ocupada
        break; // terminar de revisar las mesas
    }
}
[/gml]

funciona de maravilla! al iniciar cada cliente escoje una mesa vacia y se va a ella, muchas gracias!
14
hola a todos! me puse a practicar un rato con el pathfinding que trae game marker por defecto y todo muy bien hasta ahi pero me surgio un pequeño problema tengo 5 objetos llamados "objetivo" que es un objeto duplicado 5 veces y tengo un objeto "A.I" duplicado 5 veces

la tarea del objeto A.I es ir hacia un "objetivo" y marcarlo como reservado es decir que quiero que desde que el juego inicie cada A.I vaya hasta un objeto que no este ocupado por otra instancia A.I

por ejemplo digamos que el "objetivo" es una mesa vacía y el "A.I" es un cliente que quiere ocupar esa mesa cuando corro el código todos los clientes se quieren sentar en una sola mesa, lo que me gustaría hacer es que si un  cliente elige una mesa, los otros vayan escogiendo mesas al azar hasta que todos terminen sentados en las 5 mesas sin amontonarse todos en una misma.

intente asignar una variable que haga target al azar y compruebe si esa mesa ya esta tomada por otro cliente pero no obtuve resultados cual seria el método correcto para hacerlo?

gracias por la ayuda de antemano!
15
Preguntas y respuestas / Re:multijugador CO-OP
Abril 22, 2020, 02:55:55 AM
Cita de: dixon en Abril 22, 2020, 01:52:12 AM
Hola, gusto en saludarlos.

BssString tiene razón,  debí especificar que para establecer conexión deben cumplirse con ciertos requisitos  :-[. Ahora bien, después de conocer el proceso que nos permite establecer conexión con los servidores podremos lograr lo siguiente.

1.   Que se creen distintos servidores
2.   Que se visualice una lista de servidores disponibles
3.   Que se permita el acceso a uno de esos servidores con tan solo un click.
4.   Que se solicite contraseña antes de conectarse a uno de los servidores de la lista.
5.   Que se borren de la lista los servidores que ya no tienen conexión.

Esto se puede lograr de la siguiente manera:

1. Para que el usuario visualice los servidores disponibles tiene que haberse conectado a un servidor que permita visualizar los disponibles y almacene los datos de acceso a ellos, a este servidor lo llamaremos servidor madre.
2. Entonces el usuario conectado al servidor madre, escoge el servidor que más le guste y se le devuelven los datos necesarios para establecer la conexión.
3. Si no se permite estar conectado a dos servidores distintos entonces con los datos obtenidos debe salir del servidor madre y acceder al servidor elegido.

Ahora bien, ¿cómo enviar los datos de un servidor a otro servidor administrador o madre?

Primer caso:
1. El usuario que crea un servidor,  almacena en diversas variables los datos de acceso al servidor y antes de crear el servidor se conecta a un servidor madre para enviar los datos de acceso, e indicarle al servidor madre que ya existe como servidor, luego se desconecta del servidor madre y se crea el nuevo servidor.
2. El usuario que no tiene intención de crear servidor, se conecta automáticamente al servidor madre para visualizar los servidores disponibles, entonces escoge uno y se le devuelven los datos de acceso, se desconecta del servidor madre y se conecta en el servidor seleccionado.
Segundo caso:
1. Dos usuarios crean servidores distintos cuyos datos ya fueron almacenados en el servidor madre. El servidor madre indica que ya existen dos servidores creados.
2. Un usuario entra automáticamente al servidor madre y selecciona y observa que son dos servidores los que están disponibles, escoge uno y automáticamente se desconecta del servidor administrador o madre y se conecta al servidor seleccionado.

Ahora surge otro problema: ¿Cómo detecta el servidor administrador o madre que uno de los servidores ya no tiene conexión?
1.   Los que pueden reportar el estado del servidor son los mismos usuarios. Por eso cuando un usuario intenta entrar en un servidor y no consigue hacerlo, reporta el estado al servidor madre y se borra de la lista de servidores disponibles.


agradezco la respuesta! bastante interesante la teoria entiendo que ahora debo crear un servidor maestro que me permita visualizar todos los servidores creados por usuarios, la cosa aqui es como hostear ese servidor madre para manejar toda esa carga de datos, entiendo que el juego debe estar abierto como servidor en alguna computadora central. esto es mas complicado de lo que yo me imaginaba jaja pero estoy deseoso de aprender la verdad