Hola comunidad tengo una dudad haber si alguien me la puede solucionar en mi juego le inclui alguna partes en las cuales hay agua, mi idea es hacer una especie de playa, ahora el problemas es el siguiente logre un buen resultado en el ejemplo que dejo para descargar (con una textura diferente), ahora como el escenario es muy grande cuando le aplico el agua al engine se realentiza el juego y si quito el objeto que crea el agua anda bien. estos son basicamente los codigos que utilizo con un solo objeto:
evento create:
AlphaAgua=0.80//Transparencia Del Agua
Mov=0//Movimento Del agua

evento Draw:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//VELOCIDAD DE MOVIMIENTO DEL AGUA
Mov-=0.20
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//FONDO DEL AGUA
draw_background_tiled_ext(suelo,0,0,1,1,c_white,1)
//AGUA
draw_background_tiled_ext(agua,0+Mov,0+Mov,0.50,0.50,c_white,AlphaAgua)
//AGUA "2"
//Efecto De Brillo
draw_set_blend_mode(bm_add);
draw_background_tiled_ext(agua,0-Mov,0-Mov,1,1,c_white,AlphaAgua)
draw_set_blend_mode(bm_normal);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

igualmente esta el ejemplo para que lo vean y me comenten.-

en pocas palabras mi idea seria conseguir el mismo efecto o mejor pero mejorar el rendimiento del juego, quizas el error esta en que utilizo fondos, no se lo que quiero es que solo en ciertas partes del juego halla agua y en el ejemplo que adjunto crea agua en todo el escenario aunque solo se vea en algunas partes del mismo porque lo demas es tapado por texturas de tierra y arena. bueno espero sus respuestas y gracias.-

Tenés 2 problemas de rendimiento ahí. Que el background tiled se dibuja en todo el room, y que al correr el background del eje central el juego procesa más info. Te voy a decir una cosa q hice con el editable y funcionó. Hice que el background fuera cuadrado con un stretch (128x128) y abajo del Mov+=0.20 le metí un if Mov<=-128 {Mov+=128}
Funcionó hasta para una velocidad de 60 en el room. Si ves q no te funciona andá mirando alternativas al draw_tiled. Ya sea hacer un background que abarque la vista o dibujar muchas veces el background a mano sobre el campo de la vista. La otra que podés hacer es crear una surface que mida. El ancho de la vista del juego+el doble del ancho del agua y lo mismo para el alto, dibujar sobre esa surface todos los sprites de agua y luego dibujar directamente la surface sobre la vista, acomodándola para que se mueva discretamente cuando se mueve el jugador.




Gracias Texic te comento que probe lo que me dijistes y funciona pero igualmente se pone lento dado que el escenario es grande, y probe hacer que se dibuje en la vista pero no consigo el evento deseado dado que cuando me muevo es como que el agua se mueve rapido y queda mal porq da la sensacion de que se mueve una imagen mas que agua, si podes explicarme mejor lo de las surfaces o darme algun ejemplo o algo te agradesco porque hasta ahora con el agua anda lento y sin ella va rapidisimo. gracias.-

#3 Junio 09, 2012, 06:44:59 AM Ultima modificación: Junio 09, 2012, 06:49:46 AM por Texic
Con surfaces y utilizando sólo la vista de view sería así (te lo dejo adjunto)
El principio que se usa para que al moverse ese fondo se vaya moviendo discretamente (con discretamente me refiero a en intervalos de 128 en x, 64 en y para que no se note el movimiento y parezca que es infinito) es más o menos lo mismo que usé al restar o sumar 128 y 64 en Movx y Movy. Fijate si lo podés hacer vos q no ando con mucho tiempo, en el ejemplo el room es de 5000x5000 y no se realentiza porque no se rellena todo el mapa (q es la idea, no hay q rellenar todo el mapa sino crear la ilusión de que está lleno). Si no te sale desp te muestro cómo se hace. Saludos!




Una vez mas muchas gracias por tu ayuda Texic, probe el ejemplo y esta muy bien ahora voy a probar implementarlo al engine. Salu2.-