Holas a tod@s ...
Mi primer post y es para preguntar.
Estoy probando de crear un mini-juego de plataformas pero no encuentro una forma de que, al cambiar de "una room" a otra, el jugador mantenga la posición X, Y.
En principio no parece difícil. Es más, si las "habitaciones" tienen la mismas medidas no hay demasiados problemas.
La cosa está en que al pasar de una room de 1024x480 a otra de 640x480 y volver a la anterior (la de 1024x480) las coordenadas son las de la segunda "habitación" (la de 640x480) por lo que el jugador aparece en las coordenadas 640, y.
No sé si me explico a ver con un vídeo:
http://youtu.be/cUULN9HOT3U
Una de las intenciones es poder comenzar un salto al final de la room 1 y que este termine al principio de la room 2.
(http://i.imgur.com/e6yZ5z2.png)
Y saludo y gracias.
Esto pasa porque el objeto jugador es persistente, y al cambiar de habitación mantiene los valores de sus variables internas. Quizás esto funcione (o quizás no :-[): utilizar una variable, por ejemplo hab_actual que en CREATE se inicie en cero. Esta variable indica cuál es la habitación más reciente. En STEP hago:
if hab_actual != room
hab_actual = room //actualizar a la habitación más reciente
evento [ROOM START]
if hab_actual == room_640
x = room_width
Suponiendo que se pase de la segunda a la primra habitación, el evento room start se ejcuta antes que el primer step en la nueva habitación, la variable hab_actual todavía contiene el valor de la habitación de 640, pero ese valor es distinto al de la habitación de 1024 a la que se acaba de entrar, por lo que movemos al jugador al extremo derecho de la habitación.
Obviamente esto requerirá que vayas agregando más condiciones al evento según el número de habitaciones, pero claro que esto se pude mejorar para hacerlo más automático, aunque requiere pensar un poquito más
Cita de: penumbra en Julio 08, 2014, 11:58:42 AM
Esto pasa porque el objeto jugador es persistente, y al cambiar de habitación mantiene los valores de sus variables internas. Quizás esto funcione (o quizás no :-[): utilizar una variable, por ejemplo hab_actual que en CREATE se inicie en cero. Esta variable indica cuál es la habitación más reciente. En STEP hago:
if hab_actual != room
hab_actual = room //actualizar a la habitación más reciente
evento [ROOM START]
if hab_actual == room_640
x = room_width
Suponiendo que se pase de la segunda a la primra habitación, el evento room start se ejcuta antes que el primer step en la nueva habitación, la variable hab_actual todavía contiene el valor de la habitación de 640, pero ese valor es distinto al de la habitación de 1024 a la que se acaba de entrar, por lo que movemos al jugador al extremo derecho de la habitación.
Obviamente esto requerirá que vayas agregando más condiciones al evento según el número de habitaciones, pero claro que esto se pude mejorar para hacerlo más automático, aunque requiere pensar un poquito más
No quería contestar antes de haber solucionado el problema, pero en vista de que mi cutre-proyecto ha cambiado bastante, creo que ya es hora de como mínimo agradecer tus comentarios ... aunque haya pasado más de
¡UN MES! :-[ :-[ :-[
¿He dicho que soy una persona despistada?
No quería hacer el típico
"hago una pregunta y hasta luego" ...
Con suerte antes de final de mes igual puedo enseñar algo decente (o
semidecente) de lo que estoy haciendo.
Saludos y perdón.