No se muy bien como explicar el problema a si que he hecho un vídeo :-[
https://www.youtube.com/watch?v=V8uvN5riVpk&feature=youtu.be&ab_channel=fdsfds (https://www.youtube.com/watch?v=V8uvN5riVpk&feature=youtu.be&ab_channel=fdsfds)
Cualquier proyecto que hago se ve así y marea bastante cuando empiezo a añadir texturas, no se porque puede estar pasando y me estoy desesperando.
Gracias por leerme :)
Cual es el problema, como deberia verse ?
Lo dices, por el background. No??
Si, lo digo por el background. Ponedlo en pantalla completa y a 720p para notarlo bien.
Qué fps tienes?
Prueba a cambiar el color a 16bits. Qué tamaño de texturas tienes? Prueba 1024x1024.
Cita de: Dublan en Mayo 25, 2017, 06:57:31 PM
Qué fps tienes?
Prueba a cambiar el color a 16bits. Qué tamaño de texturas tienes? Prueba 1024x1024.
Los FPS se mantienen siempre en 30. He probado con varios tamaños de texturas y no hay ningún cambio ???
Esto ocurre cuando le digo al background que siga la view https://www.youtube.com/watch?v=asurszeMFuM&feature=youtu.be&ab_channel=fdsfds (https://www.youtube.com/watch?v=asurszeMFuM&feature=youtu.be&ab_channel=fdsfds)
No es normal, ¿verdad?
¿Alguien me ayuda?
La verdad es que no se lo que quieres hacer al 100%, pero la idea que rescato. Es que quieres hacer un efecto de paralax.
Todavía no he programado este efecto en mi vida, pero te puedo decir que el error del primer vídeo es que el background es mas chico que la room, por ello se repite varias veces. Y en el segundo es que el background esta siguen de forma activa a la bola roja.
Supongo que para hacer un efecto de paralax medio decente tendrías que tomar un punto medio de una room, por ejemplo una de 1280, su punto medio es 640. Y ya sabiendo esto idear algún sistema que desplaza el background dependiendo en que mitad de la room este el personaje.
Espero esto te de una idea de como hacerlo.
//Esto va en el step del personaje/bola roja y el background es 20 pixeles mas grande que la room, para tener margen de movimiento en este caso. Puede que para un ejemplo real sea necesario mas.
if x > room_width/2
{background_x = -10}
if x < room_width/2
{background_x = 10}
Le falta una buena parte de codigo para que el movimiento sea suave, pero creo que sirve para una idea básica.
Cita de: TheJaj en Mayo 27, 2017, 04:07:47 AM
La verdad es que no se lo que quieres hacer al 100%, pero la idea que rescato. Es que quieres hacer un efecto de paralax.
Todavía no he programado este efecto en mi vida, pero te puedo decir que el error del primer vídeo es que el background es mas chico que la room, por ello se repite varias veces. Y en el segundo es que el background esta siguen de forma activa a la bola roja.
Supongo que para hacer un efecto de paralax medio decente tendrías que tomar un punto medio de una room, por ejemplo una de 1280, su punto medio es 640. Y ya sabiendo esto idear algún sistema que desplaza el background dependiendo en que mitad de la room este el personaje.
Espero esto te de una idea de como hacerlo.
//Esto va en el step del personaje/bola roja y el background es 20 pixeles mas grande que la room, para tener margen de movimiento en este caso. Puede que para un ejemplo real sea necesario mas.
if x > room_width/2
{background_x = -10}
if x < room_width/2
{background_x = 10}
Le falta una buena parte de codigo para que el movimiento sea suave, pero creo que sirve para una idea básica.
Gracias por responder pero creo que no lo has entendido, siento no haberme explicado bien :-[
Mi problema es con el rendimiento, en el segundo video el codigo que utilizo es este:
background_x[0] = view_xview[0]
background_y[0] = view_yview[0]
Según tengo entendido este código debería hacer que el background se mueva junto a la view pero no es lo que ocurre ???
En el primer vídeo quería resaltar que los objetos con el sprite cuadrado se ven a saltos(no se que adjetivo ponerle XD), marea un poco sobretodo en otros proyectos donde tengo mas texturas mas grandes moviéndose a la vez
Espero haberme explicado mejor esta vez.
Tras esto decirte que la idea del efecto paralax me ha llamado poderosamente la atención y me gustaría profundizar mas en el tema :)
Emmm, la verdad es que no noto los saltos que mencionas. Pero se que en algunos experimentos que he hecho con views he visto que los objetos "saltan" pero se suele solucionar reduciendo la velocidad con la que se mueve la view o el personaje que guié a la view.
Lo que se ve en el primer video es normal, es el efecto tearing, sucede porque los frames se dibujan antes de que se complete el barrido vertical de la pantalla, entonces a veces queda la mitad de un frame y la mitad del siguiente. Se puede disminuir activando la sincronización vertical, pero pueden bajar los fps.
http://docs.yoyogames.com/source/dadiospice/001_advanced%20use/global%20game%20settings/windows%20tab.html (http://docs.yoyogames.com/source/dadiospice/001_advanced%20use/global%20game%20settings/windows%20tab.html)
http://docs.yoyogames.com/source/dadiospice/002_reference/windows%20and%20views/display_reset.html (http://docs.yoyogames.com/source/dadiospice/002_reference/windows%20and%20views/display_reset.html)
En teléfonos no ocurre el efecto tearing.
Una mejor opción es incrementar los fps de las rooms.
El problema del fondo que no sigue a la view correctamente se debe al orden de los eventos. El fondo se coloca en la posición de la view, pero ya se dibujó en la posición anterior. Debes posicionar la view y el fondo antes de que inicie el evento Draw.
[gml]
//Evento End Step
view_xview[0] = obj_player.x - 200;
view_yview[0] = obj_player.y - 100;
background_x[0] = view_xview[0];
background_y[0] = view_yview[0];
[/gml]
Cita de: Clamud en Mayo 27, 2017, 07:45:27 PM
Lo que se ve en el primer video es normal, es el efecto tearing, sucede porque los frames se dibujan antes de que se complete el barrido vertical de la pantalla, entonces a veces queda la mitad de un frame y la mitad del siguiente. Se puede disminuir activando la sincronización vertical, pero pueden bajar los fps.
http://docs.yoyogames.com/source/dadiospice/001_advanced%20use/global%20game%20settings/windows%20tab.html (http://docs.yoyogames.com/source/dadiospice/001_advanced%20use/global%20game%20settings/windows%20tab.html)
http://docs.yoyogames.com/source/dadiospice/002_reference/windows%20and%20views/display_reset.html (http://docs.yoyogames.com/source/dadiospice/002_reference/windows%20and%20views/display_reset.html)
En teléfonos no ocurre el efecto tearing.
Una mejor opción es incrementar los fps de las rooms.
El problema del fondo que no sigue a la view correctamente se debe al orden de los eventos. El fondo se coloca en la posición de la view, pero ya se dibujó en la posición anterior. Debes posicionar la view y el fondo antes de que inicie el evento Draw.
[gml]
//Evento End Step
view_xview[0] = obj_player.x - 200;
view_yview[0] = obj_player.y - 100;
background_x[0] = view_xview[0];
background_y[0] = view_yview[0];
[/gml]
Muchísimas gracias, he solucionado ambos problemas gracias a tu comentario :D
Me estaba desesperando, llevo poco tiempo usando GameMaker y estaba muy perdido :-[
Un saludo y un abrazo para ti compañero :)