(Cambiar posición de ActualPiece a número aleatorio de 0 a ancho de Pic, número aleatorio de 0 a altura de Pic).
He usado Pic.Width porque en este puzzle el viewport (ventana de visualización, parte del juego que se ve en la pantalla) incluye por lo menos de 0,0 a (Pic.Width,Pic.Height). Asegúrese de que emplea valores que coloquen sus piezas dentro del viewport, de modo que el usuario pueda ver todas las piezas..
#Detectando si el puzzle está terminado
Algo muy importante que debe hacer es detectar si el jugador ha ganado, si ha completado el puzzle. Puesto que estamos añadiendo todas las piezas "unidas" a un grupo, el jugador gana cuando todas las piezas pertenecen al mismo grupo.
Para hacer una rutina fácil de detección de victoria, vamos al evento vacío con la acción "Set MyGroup to ActualPiece.Group". Creamos un nuevo evento ahí con dos condiciones:
System.Pick All ActualPiece
ActualPiece.Group=MyGroup
System.Compare ActualPiece.PickedCount = LogicalH*LogicalW
(Elija todos los objetos Actualpiece, donde la variable local Group sea MyGroup. Compare si el número de objetos elegidos es LogicalH*LogicalV).
ActualPiece.Flash 0.50 seconds off, 0.50 seconds on, duration 10 seconds.
(Parpadee 0.50 segundos apagado, .50 encendido, durante 10 segundos).
Finalmente, cierre el evento de debajo (clic al signo menos), para que podamos cambiar el orden de eventos y comprobar si el puzzle está entero después de que unamos las piezas. Eso significa que el evento con el "For..." debería estar encima de este otro:
(Evento vacío)
-->(subevento 1) Pick all ActualPiece / For each ActualPiece / ActualPiece Group=MyGroup
-->(subevento 2) Pick all ActualPiece / ActualPiece.Group=Mygroup / ActualPiece.PickedCount=LogicalH*LogicalW
Si juega al puzzle y lo completa, el puzzle debería parpadear por 10 segundos.
If you play the puzzle and complete it, it should flash for 10 seconds!
Le sugiero encarecidamente que haga su propia rutina de "victoria". Tenga en cuenta que el parpadeo (flash) produce una actividad neuronal inusual y puede tener efectos secundarios negativos tales como la epilepsia.
Puede ver el proyecto con todo lo que se ha dicho hasta este punto en el fichero adjunto "tutorial_puzzle_final.capx".