errm eerrm
Hola mis compa?eros makeros n_n
antes que nada quiero agradecer a este foro y sobre todo a ustedes porque sin ustedes y sin el foro yo jamas ubiera podido hacer buenos juegos en game maker >w<
y ammm he tenido una pregunta hace unos dias n.n
y ya no los hare esperar mas ahi les va........
si yo tengo un sprite ke es un rectangulo.......
y le digo a un objeto "cosa" ke estara siempre en el punto x+15 & y+5 por ej....
y le cambio la image_angle a 45? o.o
el objeto "cosa" se movera tambien a los 45? estando en la posision x,y de el objeto girado?
o se kedara ahi? o_o
?lo avian intentado? X3
Citarel objeto "cosa" se movera tambien a los 45? estando en la posision x,y de el objeto girado?
Nop, la variable
image_angle es independiende de cada objeto, obvio podes hacer que no sea haci utilizando:
[gml]image_angle = objRectangulo.image_angle[/gml]
Citar
?lo avian intentado? X3
Sip, hace unos a?os (Cuando apenas sabia programar, hice este peque?o ejemplo) (Si queres despues te lo paso), con el investige como girar un objeto al rededor de otro y al mismo tiempo que el solo gire su sprite
Supongamos que un objeto "Sol" tiene un sprite y queremos que solo el sprite gire, en ese caso vamos a colocar en el evento step, [gml]image_angle+=1[/gml] Eso si el punto de aplicacion del sprite del sol, tiene que estar en el centro, caso contraria se crea una falsa ilucion de traslacion, pero se puede comprobar que realmente esta quieto utilizando una tecla, por ejemplo que al pulsar <Enter>, nos diga [gml]show_message("x:"+string(x)+"#y:"+string(y))[/gml].
Okey, hacemos exactamente con un objeto "Tierra", le ponemos[gml] image_angle+=1 [/gml]y el sprite va a empezar a girar. Eso si, NO se va a mover al rededor del sol. Solo va a estar quieto. Para hacer que la tierra se traslade alrededor del sol, no es necesario utilizar image_angle , vas a utilizar:
Evento Step[gml]
Distancia = 64
Angulo += 1
x = Sol.x+sin(Angulo)*(Distancia)
y = Sol.y+cos(Angulo)*(Distancia)
image_angle += 1[/gml]
Entonces, la tierra si va a cambiar de posicion girando alrededor del sol, y tambien va a estar girando en su propio eje (Solo el sprite). Es mas podemos hacer lo mismo con la "Luna", solo que reemplazamos el valor "Sol"
Te recomiendo ese experimento !!!! :-[
Dentro de todo es sencillo !
:-[ Perdon si me fui de tema. Pero en el caso de que te estes planteando hacer algo similar te va a venir muy bien. =D
Nos vemos! segui intentando!
Segun lo que comprendo :-\
Quieres que un objeto mantenga el angulo del sprite que tenga con otro objeto o punto?
Si es eso, lo puedes hacer de la siguiente forma:
//En Step:
variable = point_direction(x1,y1,x2,y2)
image_angle = variable
/*
Donde x1 y y1 seria el punto inicial y x2 y y2 serian el punto al que se debe calcular el angulo, dicho de otra manera: calcular el angulo de (x1,y1) a (x2,y2)
Y image_angle simplemente cambia el angulo del sprite al obtenido.
*/
Si no es eso, expl?cate mejor D:
Hi! n-n
De nuevo en la comunidad despu?s de tanto tiempo =P...
Bueno, espero contestar tu pregunta. El sistema de coordenadas no se altera, sigue siendo el mismo aunque el objeto tenga o no un ?ngulo. Si para el movimiento de otro objeto u otra cosa necesitas que se mueva con ese ?ngulo, deber?s de especificarlo.
Me parece algo bastante facil de probar, intentalo y despu?s nos cuentas =)
Espero te haya servido de ayuda :)
-ByE-
P.D: Me ganaron de mano =P
No te entiendo bien, pero si usas image_angle s?lo rotaras el objeto sobre su propio eje, por lo que no se mover? en x e y a aunque no se que pasar?a si la imagen no estuviera centrada si no en una esquina o un lado.
quisas esta imagen ayude a entender mi pregunta.....
(http://www.majhost.com/gallery/superblinky/nada/ssdasfa.png)
image 1
si se dan cuenta ahi se ve una flechita, que no tiene animacion
image_angle=0
y hay una carita ke esta situada ahi porque en el evento step dice ke ahi debe estar y pues es ovediente XDDDD
image 2
erm erm se le modifico el image_angle a unos no se amm 45 o.o
la pregunta es el otro objeto "carita" se moveria automaticamente?
porque tiene las coordenadas x,y en el step de ke debe seguirlo o se kedara ahi?
en ningun momento le estoy diciendo al otro objeto ke cambie su imagen angle,este no gira :P
?entendieron?? o_O
vuelvo a explicar?
.____.
no soy muy bueno explicandome o si? .-.
Nop, no te va a seguir. La carita es mala. Y ya entendi :-[ que queres hacer
esto es lo que pasaria:
Imagen Adjunta XD
En el evento step, de la cartita tendrias que usar:
Citarx = Flecha.x+sin(Flecha.image_angle)*(32)
y = Flecha.y+cos(Flecha.image_angle)*(32)
suponiendo que 32, es la distancia entre las dos puntas de la flecha
XD !
Worale para esto debes de ser muy bueno en matematicas o geometria ?no es asi? =O
MUCHAS GRACIAS! =)
Tambien puedes usar lengthdir_x() y lengthdir_y() en lugar de usar seno y coseno.
[gml]
x=flechita.x+lengthdir_x(32,flechita.image_angle)
y=flechita.y+lengthdir_y(32,flechita.image_angle)[/gml]
Y Ge no deberias de transformar el angulo a radianes antes de sacar su coseno o seno? as?
[gml]x=flechita.x+cos(degtorad(flechita.image_angle)*32;[/gml]
Citar
Y Ge no deberias de transformar el angulo a radianes antes de sacar su coseno o seno? as?
Es verdad me olvide XD .Si..si, primero hay que transformalo en RAD.
Perdon! :-[ ...y gracias brunoxzx
Citarmuy bueno en matematicas o geometria
No, para nada, no es necesario se un genio, lo unico que hacemos es robarle el conocimiento a aristoteles. XD por suerte el lo invento hace 2000 a?os.
OkiDoki!
que bueno que te sirva, y si usas mis formulas, acordate de usar degtorad(flechita.image_angle) en el valor del angulo. o como dice brunoxzx tambien podes usar
lengthdir_x
Cita de: brunoxzx en Marzo 08, 2011, 02:51:00 AM
Tambien puedes usar lengthdir_x() y lengthdir_y() en lugar de usar seno y coseno.
[gml]
x=flechita.x+lengthdir_x(32,flechita.image_angle)
y=flechita.y+lengthdir_y(32,flechita.image_angle)[/gml]
oye! muchas gracias por tu ayuda
pero o.o
?que crees?
NO FUNCIONA!!! D8
osea si funciona con X pero con Y creo que hay que cambiar algun valor porque no funciona owo
Enserio, ya hice la prueva y solo sigue el punto X en y se queda siempre ala misma altura.
Pues deber?a de funcionar asegurarte de que ayas puesto lengthdir_y() en lugar de lengtdir_x() si no funciona postea el c?digo para ver que esta mal.