Buenash! Pues tengo esta gran duda, pues no es normal que el juego se me ralentice sin casi tener nada...
no uso tiles, sino objetos. Es necesario pues las tiles deben ser dinámicas: a parte de modificar su xscale, modifican su x según una variable local que ellas tienen (con un valor distinto en cada tile) y demás cosas. Pero claro, me va lento. Cada objeto sólo tiene, en el draw, dos draw_sprite_ext (1 para la tile en sí y otra para dibujar sombra encima) pero parece que eso lo ralentiza.
Podría hacer varias cosas. Que el objeto no use el evento draw, y en su lugar cree un segundo objeto para la sombra. Duplicar el número de objetos para no usar evento draw, pero no parece viable.
Mirando, he visto que puedes modificar las coordenadas y el image_xscale de las tiles. Sería genial si pudiera decirlo para todas, pero sólo funciona dando el id...
así que, habría alguna manera... de decir, teniendo un objeto controlador para todas las tiles, cuando ese objeto reaccione (cuando cierta variable tome cierto valor) que diga:
with(tile1) {
//código que sume la coordenada x o cambie el image_xscale según los resultados de unos if's else's
} with(tile2) {
//código que sume la coordenada x o cambie el image_xscale según los resultados de unos if's else's
}
Pero claro, PODRÍA FUNCIONAR pero necesito la ID.
Quizás, al crear la room, meter en un array las id's de todas las tiles del mismo tipo o algo así...
a ver, quizás sería más eficiente, pues podría usar tiles y sólo 1 objeto controlador (al parecer el evento draw lo hace superlento aunque sólo tenga 2 draw_sprite), pero no sé cómo hacerlo pues sólo funciona con las id's, y debería poder decirle "haz esto para todas las tiles llamadas tal"
Vale, creo que lo estoy solucionando, al final hago un objeto controlador, con un array de las id's de todas las tiles. O sea, un objeto por tile que pongo en la room, ese objeto crea la tile, guarda su id en el controlador y se destruye, así tengo todas las tiles y sus ids guardadas para trabajar con ellas.
Cuando lo pruebe (que lleva su tiempo prepararlo todo) comento si el juego no se ralentiza, de momento pinta que es posible, falta ver si es más eficiente