Hola alguien me puede explicar que son las surfaces y que puedo hacer con ellas?

Basicamente son canvas en los que puedes dibujar sobre ellos y luego dibujarlos a ellos... es decir, digamos que tienes un fondo en el escenario el cual se compone de muchas imagenes individuales, sin embargo el fondo no se mueve durante el juego así que tendrías que dibujar cada imagen individualmente durante cada frame del juego... o, puedes dibujar todas esas imagenes en un surface y luego dibujar ese surface como si fuera una sola imagen.

Para usarlos primero debes crear el surface "surface_create" y luego es simplemente decirle al GM: dibuja el siguiente sprite (o grupo de sprites) sobre este surface "surface_set_target" y luego cuando terminas reinicias el target para que GM dibuje normalmente "surface_reset_target" y dibujas el surface con el comando de "draw_surface" y listo.

Hay varias restricciones, y problemas que se pueden presentar los cuales hay que tener en cuenta, para esto es mejor que revises el manual sobre el tema de surfaces, ahí se explica todo con varios ejemplos.

Saludos

Checa mi canal de Youtube para tutoriales y charlas sobre desarrollo de videojuegos.


Las surfaces son "lienzos" sobre los cuales se puede dibujar mediante las funciones draw de GM. Permiten, por ejemplo, dibujar en tiempo real sobre la pantalla cosas persistentes (que no se borren al final del step), crear menus de pausa mostrando de fondo el juego congelado, crear sprites personalizados durante el juego y en general cualquier cosa donde se necesite crear un dibujo persistente y utilizarlo posteriormente. La misma imagen que muestra un juego, con todos sus sprites, backgrounds, etc., no es más que una surface llamada application_surface sobre la que GM dibuja el juego en cada step.