Haciendo un puzzle- Cuarta parte: Manejando grupos de piezas

1
  • 0 favourites

Index

Tagged

Attached Files

The following files have been attached to this tutorial:

.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

Stats

8,418 visits, 11,084 views

Tools

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.

Barajando las piezas

Barajar las piezas al comienzo del juego es tan fácil como cambiar la posición inicial de cada una. Vamos al final del evento "For 'TileV' from 0 to logicalh-1", dentro del evento "On layout start" y añadimos:

    ActualPiece.Set Position  to random(Pic.Width), random(Pic.Height)

(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).

Añadimos esta acción:

    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".

  • 0 Comments

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