Diciembre 20, 2013, 08:28:51 AM Ultima modificación: Diciembre 30, 2013, 01:11:47 PM por softsing
Otra pregunta.
Como se hace para que el objeto que se pulsa con el ratón caiga dando vueltas (rotando sobre si mismo)
Me refiero a como se hace con codigo, no con sprites.

A eso lo podes hace en dos partes. Primero, que caiga, hay muhjas formas de hacer que caiga, la más fácil es usar gravedad. En el create podés usar "gravity_direction=270" para hacer que el objeto caiga a 270 grados, que sería hacia abajo y "gravity=0.5" para poner la gravedad a 0,5. Podés probar otros valores para la gravedad, mientras menos, más lento cae
Y para hacer que gire en el evento step escribís "image_angle += 5", eso va a hacer que en cada step se sume 5 al ángulo de rotación del objeto, acá también podes probar con otros valores
El Manual

- Ley de la gravitación selectiva: toda herramienta se caerá donde produzca el mayor daño.
- Si todo parece estar bien, es obvio que uno no encontró el problema
- Todo aquello que se corte a medida resultara ser demasiado corto.
- Todo archivo borrado era necesario, todo archivo conservado es inutil
- Cuando a usted se le ocurra la solución ideal, alguien habrá resuelto ya el problema.

                                                               Murphy


Gracias por la respuesta.
Pero tengo más preguntas...

Tengo objetos padres e hijos. ¿La gravedad tengo que ponerla en cada objeto?
No se como  colocar el evento Step despues de pulsar el raton.
Si creo un evento Step en el objeto se me crea antes de la pulsación.
Te envio un ejemplo para ver si me  das un poco de luz.

También me gustaría, si puedes que me enseñases como hacer que los objetos aparezcan aleatoriamente y no se superpongan.

Gracias de antemano, para los novatos vuestra ayuda es muy. muy importante.

Usando GMS 1.2.1224

No puedo abrir el ejemplo porque no tengo GMS, pero sí se puede arreglar

La gravedad se debe poner en todos los objetos que deban caer en el momento en donde uno quiere que comiencen a caer. Si hay objetos padre e hijo creo que con ponerlo en lso objetos padera ya basta, porque el objeto hijo contendrá todo lo que tiene el padre

Por lo que entiendo el problema que tenés es que comienzan a caer y girar antes de tiempo. Entonces lo que yo haría es:
Poner en el Create "gravity_direction=270", esto le indica al objeto hacia dónde caer, pero no lo hace comenzar a caer
En el momento en que el objeto deba caer debes poner "gravity=0.5", esto puede ir en un evento Mouse Click para que comience a caer al hacerle click por ejemplo
Y en step para que sólo gire mientras cae debemos agregar una condición a lo de "image_angle += 5". Sería algo así: "if (gravity != 0) image_angle += 5". Eso se traduce a: "Si la gravedad no es igual a 0, girar"

Para hacer que los objetos aparezcan aleatoriamente te recomiendo crear un nuevo tema, ya que depende mucho de las condiciones que necesitás
El Manual

- Ley de la gravitación selectiva: toda herramienta se caerá donde produzca el mayor daño.
- Si todo parece estar bien, es obvio que uno no encontró el problema
- Todo aquello que se corte a medida resultara ser demasiado corto.
- Todo archivo borrado era necesario, todo archivo conservado es inutil
- Cuando a usted se le ocurra la solución ideal, alguien habrá resuelto ya el problema.

                                                               Murphy



Funciona perfecto. 8) Mil gracias.

Lo de que aparezcan aleatoriamente:

Tengo varios objetos y dos path (path1 y path2)
Los objetos entran en la room cogiendo uno de los dos path

Puedo hacer que el objeto elija el path con  path_start(choose(path1,path2),1,1,4)
Pero el problema es que aparecen unos encima de otros. Se superponen.

Tengo que hacer que salgan en un espacio que este sin ocupar por otro objeto. Y no se como hacerlo  :(

No se cómo se podría hacer, pero depende de cómo sea la cosa
¿Los objetos deben agregarse en el punto inicial del path o en cualquier lugar?
¿El punto inicial del path es siempre el mismo? Si es así antes de colocar un objeto en el path podés hacer place_free para fijarte si el lugar está libre
El Manual

- Ley de la gravitación selectiva: toda herramienta se caerá donde produzca el mayor daño.
- Si todo parece estar bien, es obvio que uno no encontró el problema
- Todo aquello que se corte a medida resultara ser demasiado corto.
- Todo archivo borrado era necesario, todo archivo conservado es inutil
- Cuando a usted se le ocurra la solución ideal, alguien habrá resuelto ya el problema.

                                                               Murphy


Gracias Mgbu por tu tiempo.
Deben aparecer al principio del path.
El punto inicial del path es siempre el mismo.
El asunto es la comprobación con place_free y que si esta ocupado se mueva hacia atras o adelante.
Pero no consigo hacerlo  :'(

Mmmm no se :-\, lo que yo haría es ir probando diferentes posiciones hasta encontrar una libre, pero place_free necesita las coordenadas y yo no sé cómo obtenerlas, porque la posición en el path no está medida en coordenadas.
A lo mejor hay otra forma pero no se me ocurre, me parece que conviene abrir un nuevo tema para ver si a alguien se le ocurre algo
El Manual

- Ley de la gravitación selectiva: toda herramienta se caerá donde produzca el mayor daño.
- Si todo parece estar bien, es obvio que uno no encontró el problema
- Todo aquello que se corte a medida resultara ser demasiado corto.
- Todo archivo borrado era necesario, todo archivo conservado es inutil
- Cuando a usted se le ocurra la solución ideal, alguien habrá resuelto ya el problema.

                                                               Murphy