Septiembre 07, 2018, 09:55:02 PM Ultima modificación: Septiembre 07, 2018, 09:57:58 PM por Luis En
Buenas querida comunidad!!

Sorry que pregunte esto, habiendo una guía en YoyoGames.com, pero no entiendo muy bien como lo explican.
Alguien que me pueda explicar de manera más clara y concisa lo que significa, y sus parámetros, a qué se refieren?

[gml]
move_contact_solid(dir,maxdist)

//dir <---- ??
//maxdist <----Máxima distancia de qué con qué???
[/gml]

Se agradecería mucho la ayuda.

Saludos!




Lo que hace es mover al objeto en la direccion(dir) y velocidad(maxdist) que le des hasta que entre en contacto con un objeto solido.

Puedes emular esa funcion para un objeto en especifico usando:
[gml]
while !place_meeting(x+1,y,pared) {x+=1}
[/gml]
Asi no estas limitado a solo solidos o todos los objetos.

Cita de: 3dgeminis en Septiembre 08, 2018, 07:34:08 PM
Lo que hace es mover al objeto en la direccion(dir) y velocidad(maxdist) que le des hasta que entre en contacto con un objeto solido.

Puedes emular esa funcion para un objeto en especifico usando:
[gml]
while !place_meeting(x+1,y,pared) {x+=1}
[/gml]
Asi no estas limitado a solo solidos o todos los objetos.
Y la dirección como la establezco? osea si pongo direction que significa? y si pongo 14 estaría yendo a la derecha?
Y la maxdist, si pongo 12 irá a más velocidad que cuando ponga 6?

[gml]
while !place_meeting(x+1,y,pared) {x+=1}
[/gml]

Aquí significa que:
Mientras no colisione con la pared, no se detendrá no?, y como sería éste ejemplo pero con move_contact_solid (ya se que aquí es para todos los solidos, pero quiero saber como se colocarían los parámetros)

Gracias por responder!!!

Al usar el while si lo pruebas veras que es instantaneo, aparece pegado al otro objeto.
Si usas direction y como por defecto esta en 0 se movera a la derecha, a menos que la cambies. Un circulo tiene 360 grados asi que si le pones 90 ira arriba, 180 izquierda 270 abajo 3600 a la derecha y asi.
En el ejemplo con move_contact seria move_contact(0,-1)

Cita de: 3dgeminis en Septiembre 08, 2018, 11:10:06 PM
Al usar el while si lo pruebas veras que es instantaneo, aparece pegado al otro objeto.
Si usas direction y como por defecto esta en 0 se movera a la derecha, a menos que la cambies. Un circulo tiene 360 grados asi que si le pones 90 ira arriba, 180 izquierda 270 abajo 3600 a la derecha y asi.
En el ejemplo con move_contact seria move_contact(0,-1)

Entiendo, y porque -1 en maxdist? en máxima distancia se pone un número como velocidad?

Si escribes -1 o 0, maxdist se establece en 1000. Es mejor escribir un número pequeño que sea igual a la máxima velocidad del objeto. Si se usa un número muy grande la función realizará demasiadas iteraciones y ralentizará el juego. De cualquier forma, no es recomendable utilizar las funciones move_contact_* ni move_outside_*.

Cita de: Clamud en Septiembre 10, 2018, 12:55:36 AM
Si escribes -1 o 0, maxdist se establece en 1000. Es mejor escribir un número pequeño que sea igual a la máxima velocidad del objeto. Si se usa un número muy grande la función realizará demasiadas iteraciones y ralentizará el juego. De cualquier forma, no es recomendable utilizar las funciones move_contact_* ni move_outside_*.

Entiendo, entonces es mejor no usar el move_contact, y para reemplazarlo utilizariamos el place_meeting entonces?

Cita de: Clamud en Septiembre 10, 2018, 12:55:36 AM
Si escribes -1 o 0, maxdist se establece en 1000. Es mejor escribir un número pequeño que sea igual a la máxima velocidad del objeto. Si se usa un número muy grande la función realizará demasiadas iteraciones y ralentizará el juego. De cualquier forma, no es recomendable utilizar las funciones move_contact_* ni move_outside_*.

Che, yo también tengo dudas con esto. Porque en el manual de gamemaker dice que maxdist sólo puede tener dos valores: 0 ó -1. Pero he visto cientos de veces ejemplos que llevaban esa función, en la cuál tenían, por ejemplo, el número 12 o el 6. No entiendo por qué. Incluso he probado en variar ese valor pero no noté cambio alguno.

-Depende de lo que vayas a hacer, segun la situacion lo puedes usar o no. Yo lo usaba cuando empeze a usar el programa y usaba objetos SOLIDOS.

-Lo que dice el manual segun entiendo es que si pones 0 o -1 game maker pone el valor de 1000 pixels por defecto. Por ejemplo 0 es el valor por defecto de direction a menos que cambies su valor.