Directo al grano  :)
¿como puedo ajustar la profundidad de un sprite si lo modifico en algun momento del step?

Me explico:
Mi jugador tiene profundidad - 5 y el sprite de ataque también,  pero cuando lo llamo en el código step,  este se antepone a todo.  Supongo que es porque es lo último que se 'dibuja'.  Lo que quiero es mantener esa profundidad.

Lo que tiene profundidad es el objeto, no la sprite. Si qres que uno quede mas atras ponele un numero mas grande y sino mas chico. Podes manipular esa variable, se llama depth (haciendo por ejemplo depth=-5)
Cuando dibujes varias cosas en un mismo draw recorda que lo que esta mas abajo se dibuja encima del resto de las cosas dibujadas en ese draw




#2 Febrero 27, 2013, 02:12:21 PM Ultima modificación: Febrero 27, 2013, 02:18:29 PM por Domenec
Cita de: Texic en Febrero 27, 2013, 01:59:12 PM
Lo que tiene profundidad es el objeto, no la sprite. Si qres que uno quede mas atras ponele un numero mas grande y sino mas chico. Podes manipular esa variable, se llama depth (haciendo por ejemplo depth=-5)
Cuando dibujes varias cosas en un mismo draw recorda que lo que esta mas abajo se dibuja encima del resto de las cosas dibujadas en ese draw

Si, tienes razon, error mio. Me referia a un objeto. Cuando lo cree en el recuadro pertinente le di el valor de -5.
La linea en la que lo llamo es "sprite_index=attack", asi que no uso objeto para ello, ni el comando draw. Simplemente cambio el sprite.

Y cuando cambiás la sprite debería cambiar la profundidad del objeto en el entorno? Bueno podrías usar un depth=5 o el número deseado y cambiarla, luego cuando no esté esa sprite lo devolvés a depth=-5




Cita de: Texic en Febrero 27, 2013, 03:52:08 PM
Y cuando cambiás la sprite debería cambiar la profundidad del objeto en el entorno? Bueno podrías usar un depth=5 o el número deseado y cambiarla, luego cuando no esté esa sprite lo devolvés a depth=-5


No,  precisamente lo que quiero es que mantenga la profundidad que ya viene asignada previamente.
Tal vez si pongo {depth=-5 sprite_index=attack}  se solucionaría?  Estoy en el curro y no puedo probarlo aun y le voy dando vueltas a la cabeza.  :)

eso deberia servir pero primero el sprite index luego la depth

Cita de: fatalfury en Febrero 27, 2013, 06:03:38 PM
eso deberia servir pero primero el sprite index luego la depth

Ok,  lo tendré en cuenta.
Luego edito a ver que tal ha ido.

Si querés que conserve la profundidad por defecto entonces no tenés que cambiar nada, solamente se van a superponer a él objetos con un depth menor. No termino de entender qué necesitás. Si buscás que el objeto tenga un depth según la sprite es muy simple, lo cambiás con depth, si buscás que no cambie no hagas nada, dejás la variable como está, si la cambiaste en el step por alguna extraña razón y querés reestablecerla a la original simplemente ponés depth=-5
Me resulta confuso el problema porque no sé cuál es exactamente ni el objetivo que querés lograr




Cita de: Texic link=topic=18310.msg87142#mopciones date=1361985742
Si querés que conserve la profundidad por defecto entonces no tenés que cambiar nada, solamente se van a superponer a él objetos con un depth menor. No termino de entender qué necesitás. Si buscás que el objeto tenga un depth según la sprite es muy simple, lo cambiás con depth, si buscás que no cambie no hagas nada, dejás la variable como está, si la cambiaste en el step por alguna extraña razón y querés reestablecerla a la original simplemente ponés depth=-5
Me resulta confuso el problema porque no sé cuál es exactamente ni el objetivo que querés lograr

Me intentaré explicar algo mejor...
Tengo un personaje que tiene deph - 5 y un muro sólido que esta en - 10. Por lo tanto,  el muro de colisión esta por delante del personaje.  A - 15 tengo un efecto de agua para que parezca que esta dentro. Hasta ahí,  todo bien.
El problema está cuando doy un espadazo al muro (uso el sprite_index para cambiar el sprite (que no tiene objeto)  cuando pulso la tecla de ataque).  Entonces,  la espada se ve por delante del agua y del muro.
Ese es el problema.
Para las colisiones con la espada he pensado usar una máscara en vez de una colisión directa con el sprite.  Por eso no he creado el objeto del sprite de ataque.
Esta noche pruebo lo de forzar un deph dentro del código step a ver que tal,  pero pensé que con la casilla correspondiente que hay cuando abres un objeto en el gm ya bastaría.

Bueno, he probado lo de poner el deph despues del sprite_index y sigue igual.
Espero que cuando meta los tiles encima de los bloques de colisiones estos solapen la espada si golpeo contra la pared.  :-[
Es mi ultima esperanza.  :)

Si, debería bastar, la espada no forma parte de otro objeto? Es una técnica común en los juegos de hack'n'slash para que los enemigos no mueran en contacto con el personaje sino con la espada




Cita de: Texic en Febrero 27, 2013, 11:04:53 PM
Si, debería bastar, la espada no forma parte de otro objeto? Es una técnica común en los juegos de hack'n'slash para que los enemigos no mueran en contacto con el personaje sino con la espada

La espada es un sprite con el personaje más la espada englobado en el objeto player (en mi caso).
Si algun dia de estos doy por finalizado el engine (por así decirlo)  y me lio a los tiles ya diré el que...
Gracias por la ayuda a todos una vez más.
La verdad es que tengo muchos frentes abiertos en estos momentos y me da miedo querer abarcar más de lo que soy capaz de hacer  :)