Haciendo un puzzle- Cuarta parte: Manejando grupos de piezas

1

Index

Fichiers attachés

Les fichiers suivants ont été attachés à ce tutoriel:

.capx

tutorial-puzzle-3.capx

Télécharger maintenant 2.56 MB
.capx

tutorial-puzzle-final.capx

Télécharger maintenant 2.59 MB
.capx

tutorial-puzzle-final-manycomments.capx

Télécharger maintenant 2.59 MB

Statistiques

8,957 visites, 12,058 vues

Outils

Partager

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 17 Nov, 2013. Last updated 25 Feb, 2019

Configuración en un entorno de producción

Antes de que haga un "producto final", debería eliminar todo el código usado para pruebas, como las acciones "flash" en los eventos "ActualPiece on Drop", las acciones que cambian el objeto textbox "Credits", y hacer "desaparecer" los objetos de ayuda como "Pin", cambiando su visibilidad a "invisible".

También debería revisar la configuración del puzzle para asegurarse de que funcionará en distintas resoluciones de pantalla. Considere también la posibilidad de añadir desplazamiento (scroll) o zum a la pantalla para que funcione en cualquier dispositivo.

Tutorial_puzzle_final_manycomments.capx (adjunto a este tutorial) contiene una hoja de eventos totalmente comentada [en inglés], y tiene todas las funciones de prueba desactivadas (pin es invisible, los créditos no cambian, las piezas solo cuando el puzzle se completa).

Borde de piezas

Quizá se haya dado cuenta de que las piezas necesitan algún tipo de bordes para ser encontradas con mayor facilidad. En mi aplicación jigsawpuzzle, añadí tal borde fijando una copia más grande del sprite "Piecemask" debajo del objeto "ActualPiece", uniendo ambas con "Pin". Debería haber una forma más fácil de hacer esto con el objeto Canvas (de modo que en pantalla haya la mitad de objetos), pero no la he encontrado.

Inventario de piezas

Una alternativa a los bordes de piezas podría ser la siguiente: todas las piezas "no encajadas" se guardan en un "inventario de piezas" que es una barra en un lateral o debajo del juego (una capa ("layer") con su propio scroll) , y se arrastran las piezas desde ahí hacia la capa principal.

Cargar imagen desde archivo

Otra mejora es una imagen cargada desde archivo. Puede simplemente almacenar una lista de imágenes en un objeto listbox y cargar el sprite deseado en el objeto "Pic". Si incluye imágenes de terceros (con su permiso), debería reconocer su autoría con créditos.

Recuerde que todas las imágenes tienen que estar en la misma ruta que la aplicación, así que permitir que el usuario emplee sus propias imágenes es un poco complicado. He hecho experimentos para abrir archivos remotos desde un servidor usando la función "file" de pho, pero puede llevar a brechas de seguridad y quejas sobre el uso de "links profundos" (deeplinks).

Usar distintas formas de puzzle

Añadir más formas de puzzle desde imágenes es complicado. Si desea tener varios patrones de puzzle, le sugiero que las cargue durante el diseño del juego como distintas "animaciones" dentro del objeto Piecemask. Recuerde almacenar los valores para su altura, anchura, número de piezas en cada dirección y márgenes. Las formas de puzzle pueden "tematizarse": imagine formas de puzzle con motivos de boda para una foto de boda. He visto formas como esas en internet (y también las he diseñado).

Más allá del puzzle

La lógica empleada en este tutorial de Puzzle puede ser usada para diseñar un pasatiempo español relativamente popular: la "Mesa de Relojero", en la cual las letras de un texto se "recortan" en formas parecidas a las del tetris y hay que unirlas después. En este caso, cada pieza sería una letra, y los grupos iniciales contendrían varias piezas unidas entre sí, con distintas formas tipo tetris.

.CAPX

tutorial-puzzle-3.capx

Download now 2.56 MB
.CAPX

tutorial-puzzle-final.capx

Download now 2.59 MB
.CAPX

tutorial-puzzle-final-manycomments.capx

Download now 2.59 MB
  • 0 Comments

Want to leave a comment? Login or Register an account!