Navegación


 Cursos de ComuPPT


 Volver al foro

ComuPPT   

Macro para pausar, reanudar y reiniciar la partida

Jesalcof | Publicado en miér Dic 06, 2017 6:12 pm

¿Para qué nos serviría?

Para que nuestro juego tenga la opción de poder pausar y reanudar la partida. Y sí se desea, también reiniciarla.

El código es:

Sub PausarReanudarReiniciar(btn As Shape)
    With SlideShowWindows(1).View
        Select Case btn.Name
            Case "pausar"
                .State = ppSlideShowPaused
            Case "reanudar"
                .State = ppSlideShowRunning
            Case "reiniciar"
                .GotoSlide .CurrentShowPosition, msoTrue
        End Select
    End With
End Sub

Expliquemos para que sirven...

Sub es para marcar donde iniciar el procedimiento (y al final del código hay End Sub, que significa dónde termina el procedimiento), "PausarReanudarReiniciar" es el nombre que le dimos a nuestro procedimiento, macro o código, aunque podría llamarse de otra manera mientras el nombre no se repita. Y "(btn As Shape)" nos sirve para que la variable "btn" funcione como una figura (Shape), más concretamente, tomando todas las propiedades de nuestra figura seleccionada o poseedora de la macro.


Cuando se quiere trabajar con varias propiedades de una misma instrucción hacemos uso de With para no tener que volver a escribir la misma instrucción varias veces... En este caso, usamos With para evitar escribir SlideShowWindows(1).View.State dos veces, y para evitar escribir SlideshowWindows(1).view.GotoSlide SlideShowWindows(1).view.CurrentShowPosition.

De este modo, conseguimos un código más compacto, si no usaramos "With" para estos casos el código tal vez hubiese sido:

Select Case btn.Name
   Case "pausar"
       SlideShowWindows(1).View.State = ppSlideShowPaused
   Case "reanudar"
       SlideShowWindows(1).View.State = ppSlideShowRunning
   Case "reiniciar"
       SlideShowWindows(1).View.GotoSlide SlideShowWindows(1).View.CurrentShowPosition, msoTrue
End Select

Ambos códigos funcionan, tanto el que pasamos en un principio como este, la diferencia es que el del principio al ser más corto y ahorrarse escribir lo mismo en más de una ocasión luce más elegante y es mejor trabajar con el ya que no hay que leer tanto para entenderlo.

Nos permite evaluar una expresión para después trabajar con las diferentes posibilidades (casos; Case) de ella. En nuestro código, lo que evaluamos es nombre de nuestra figura seleccionada (btn.name).

Una vez evaluada la expresión (name) es necesario identificar las posibles variaciones de esta para sabe qué ocurrirá sí el caso de la expresión se cumple.

En nuestro código evaluamos los 3 distintos casos de nombres que le damos a los 3 botones que poseen esta macro, cada botón se llama "pausar", "reanudar", y "reiniciar" respectivamente. Mas adelante explicaremos cómo cambiar el nombre de las figuras.

Veamoslo por partes...


Pausar

Case "pausar" nos dice que si la figura se llama "pausar" entonces el estado de la diapositiva estará en Paused (pausado o en pausa).

With SlideShowWindows(1).View
    Select Case btn.Name
        Case "pausar"
            .State = ppSlideShowPaused
    End Select
End With


Reanudar

Case "reanudar" nos dice que si la figura se llama "reanudar" entonces el estado de la diapositiva estará en Running (corriendo).

With SlideShowWindows(1).View
    Select Case btn.Name
        Case "reanudar"
            .State = ppSlideShowRunning
    End Select
End With


Ahora una que cambia un poco...


Reiniciar

Case "reiniciar" nos dice que sí la figura se llama "reiniciar" entonces vamos a ir a la diapositiva (.GotoSlide, para entenderse mejor léase "Go to slide") actual (.CurrentShowPosition, léase como Current Show Position, que significa Mostar Posición Actual) y, acto seguido, se reiniciarán sus animaciones con el comando ", msoTrue" (siguiendo la sintaxis debe ser así, no es obligatorio considerar este comando si no se quieren reiniciar las animaciones de la diapositiva a la que se está yendo).

With SlideShowWindows(1).View
    Select Case btn.Name
        Case "reiniciar"
            .GotoSlide .CurrentShowPosition, msoTrue
    End Select
End With

Como sabemos que es un poco complicado de interpretar, recordemos que SlideShowWindows(1).View significa la diapositiva que se está mostrando en pantalla (solo puede ser una a la vez), y lo que queremos ver en esta diapsitiva (.view) es...

Select Case btn.name, que significa que vamos a evaluar el nombre de nuestra figura (btn), y case "reiniciar", que al evaluar que la figura se llama "reiniciar" lo que va a hacer es ir a la diapositiva actual y reincirla, osea, reiniciar sus animaciones, .GotoSlide .CurrentShowPosition, msoTrue.


Una vez dicho todo esto, veamos...


Cómo cambiar el nombre de las figuras para que sean "pausar", "reanudar" y "reiniciar"

Antes que nada es importante aclarar que las figuras deben ser llamadas tal cual como se marqué en el código, o el código debe tener los nombres escritos tal cual se les nombraron, así que por esto entendemos que sí en el código se escribió "pausar" es porque la figura se llama realmente "pausar" y no "PAUSAR" o "Pausar" o "pausa", de lo contrario, al evaluar el nombre no ocurrirá el evento correspondiente, ya que no hay ninguna evaluación que diga que el nombre debe ser distinto a como se le identificó en el código.

Para cambiar el nombre de una figura es necesario

  1. Seleccionarla, para que aparezca una nueva ficha (pestaña) llamada Formato, de herramientas de dibujo, vamos a ella...
  2. Una vez dentro, identificamos el grupo de herramientas llamado "Organizar", algunas herramientas de ese grupo son "Traer al frente", "Alinear", "Agrupar"... Una vez identificado el grupo, vamos a seleccionar la herramienta llamada "Panel de selección", se abrirá una ventana...
  3. En esa ventana veremos todas las figuras de la diapositiva actual, con los nombres que las identifican por defecto... Con nuestra figura seleccionada debemos buscar en la lista el nombre que aparezca resaltado, cuando lo encontremos daremos un clic sobre el y borraremos el nombre que tiene para ponerle el nombre correspondiente al botón, si el botón es de pausa la llamaremos "pausar", si es de reanudar o continuar jugando la llamaremos "reanudar" y si es para reiniciar la diapositiva la llamaremos "reiniciar" y seleccionaremos otro botón para ponerle su nombre correspondiente, una vez hecho esto con los 3 botones podemos cerrar el panel de selección...


Cómo aplicar las macros a cada botón

  1. Seleccionamos nuestro botón (figura) y vamos a la ficha (pestaña) insertar
  2. Ahora seleccionamos la herramienta "Acción" (ubicada en el grupo de herramientas llamado "Vínculos"), se abrirá una ventana
  3. En la pestaña llamada "Al hacer clic" buscamos la opción que dice "Ejecutar macro", y la macramos
  4. Si es la única macro que tenemos en nuestra presentación solo queda pulsar el botón de aceptar y repetir este proceso para cada botón, pero sí no es la única macro que tenemos en nuestra presentación es necesario que desplegemos la lista y seleccionemos la macro "PausarReanudarReiniciar", dar en aceptar y luego repetir este proceso para cada botón


Ya con todo esto tenemos 3 botones que cumplen la función de pausar, reanudar y reiniciar nuestra partida!

¡Muchas gracias por su atención! Esperamos que esta información les sea de utilidad :D

Sobre el Autor