Buenas, pues una duda sobre actualizaci?n de posiciones en End Step. Yo s? que, si pones cambios de posiciones, por ej... x=100, y=100, en step o begin step, al moverse la view, se ver? el desplazamiento, ya sab?is... no es perfecto. Y si pones en End Step, es perfecto y nunca se mueve de su posici?n. A la hora de dibujarlo, osea, lo que dibujas en Draw, va perfecto... pero no s? porqu?, al setear una posici?n end End Step, los objetos no lo son. Osea, al moverse la View, se ve que se desplazan y no se encajan perfectamente en la posici?n, cuando lo he escrito en End Step! Hay alguna raz?n para la cual el End Step falle de esta manera? A m? siempre me ha funcionado. Vamos, el poner en End Step, x=objeto.x, y=objeto.y, el objeto se superpone al otro totalmente y sin fallos, eso lo tengo comprobado. Pero al hacer x=400, y=400, no va perfecto... O_o
No se si te periferes a lo que pienso, o m?s bien si entend? bien, pero, me ha pasado algo que, al colocar un objeto en la room, y en step escribir x=view_xview+10 y=view_yview+10 por ejemplo. Y a la hora que se mueve la room se mueve el objeto con "rastro" eso lo soluciono con: en draw escribo, draw_sprite(sprite_index, image_index,posici?n x,posici?n y)
El problema es que el End Step seg?n mi experiencia funciona algo as?:
Imagina que un objeto en x=0 e y=0 tiene una hspeed=1, por lo que se mueve 1 pixel a la derecha en cada Step:
Begin Step: Est? en x=0; y=0;
Step: sigue en x=0; y=0;
-Paso invisible- : x+=hspeed ;y+=vspeed; xfinal=x; yfinal=y;
End Step: Ahora est? en x=1 y=0
Draw: El objeto es dibujado dependiendo de "xfinal" e "yfinal"
Entonces si cambias la posici?n en el "End Step", el cambio no ser? dibujado hasta el otro frame, ya que la posici?n "final" del objeto se define entre el "Step" y el "End Step"
Y finalmente me imagino (en verdad es solo una teor?a) que la view se actualiza despu?s del "End Step", ya que si cambias la posici?n en el End Step la view tambien se mueve, pero el objeto es dibujado en la coordenada anterior por lo que al final parece que tiembla.
* Quis?s no entend? el problema, pero algo te podr? ayudar el comentario XD (no me crean completamente, es como yo creo que funciona el GM, quis?s este equivocado)
Entonces, simplemente tengo que dibujarlo con draw_sprite_ext en draw! No lo hab?a pensado... muchas gracias Masterkey, la respuesta era f?cil y ni se me ocurri? xD
lordgeorge, lo que dices es un poco lioso, ya que, cuando pongo en End Step x=obj.x, y=obj.y, funciona perfectamente, pero cuando pongo x=view_xview+50, y=view_yview+50, deja ese rastro. AUNQUE, por lo que dices de que la view quizas no se actualiza en el mismo momento, quizas lo que digas tenga sentido, no es lo mismo setear posiciones en End Step respecto posiciones, que es lo que funciona, que setearla respecto la view, la cual quizas se setea despu?s del End Step o algo as? como dices.
Bueno, lo hago con draw y problema solucionado :3 +Karma a ambos
@lordgeorge: tal vez esto te ayude con tu teoria.
CitarEn algunas situaciones es importante conocer el orden en el cual el Game Maker procesa los eventos. Como sigue.
? Eventos Begin Step
? Eventos Alarm
? Eventos Keyboard, Key press, y Key release
? Eventos Mouse
? Eventos Step normales
? (ahora todas las instancias son colocadas en sus nuevas posiciones)
? Eventos Collision
? Eventos End Step
? Eventos Drawing
Los eventos de creaci?n (create), destruir (destroy) y otros son generados en el momento pertinente.