![]() |
|||||
|
Para explicar como pausar un juego vamos a utilizar
el programa desarrollado en los ejercicios con sprites donde el Ovni dispara un
misil. Este es el código del programa: Program OvniPausa Structure Imagen x As Int y As Int incX As Int incY As Int End Structure Define
ovni As Imagen Define
misil As Imagen Define
hayMisil As Bool =
False Define
TiempoImagen As Int[6] = {40, 40, 40, 40, 40, 40} Method
cargarOvni() LoadSprite("OVNI", "UFO.gif") ovni.x = 50 ovni.y = 50 ovni.incX = 5 ovni.incY = 5 MoveSpriteToPoint("OVNI", ovni.x, ovni.y) SetSpriteAnimationTimeline("OVNI", True, TiempoImagen) ShowSprite("OVNI") End Method Method
cargarMisil() LoadSprite("MISIL", "missile1.gif") ScaleSprite("MISIL", 0.8) SetSpriteAnimationTimeline("MISIL", True, TiempoImagen) RotateSprite("MISIL", 90) misil.incY = 5 End Method Method
moverMisil() If misil.y < ScreenHeight() +
GetSpriteHeight("Misil") Then MoveSpriteByAmount("MISIL", 0, misil.incY) misil.y = misil.y + misil.incY Else hayMisil
= False HideSprite("MISIL") End If End Method Method
tecla() If IsKeyDown("UP") And ovni.y > 0 Then ovni.y = ovni.y - ovni.incY End If If IsKeyDown("Down") And ovni.y < ScreenHeight() - GetSpriteHeight("OVNI") Then ovni.y = ovni.y + ovni.incY End If If IsKeyDown("Right") And
ovni.x < ScreenWidth() - GetSpriteWidth("OVNI") Then ovni.x = ovni.x + ovni.incX End If If IsKeyDown("Left") And ovni.x > 0 Then ovni.x = ovni.x - ovni.incX End If If IsKeyDown("A") And hayMisil = False Then hayMisil
= True misil.x = ovni.x misil.y = ovni.y MoveSpriteToPoint("MISIL", misil.x, misil.y + GetSpriteHeight("OVNI")) ShowSprite("MISIL") End If MoveSpriteToPoint("OVNI", ovni.x, ovni.y) End Method // Para crear el efecto de pausa en el juego incluimos este método Method Pausar() If IsKeyDown("Space") Then // Se espera a que se
suelte la barra espaciadora While IsKeyDown("Space") RefreshScreen() End While // Se imprime el
mensaje de PAUSA SetFont("Arial", 64, True, False, False) Color(137) Pen(False) MoveTo(100,
100) Rectangle(500,
200, True) MoveTo(120,
120) Color(20) Rectangle(460,
160, True) Color(139) MoveTo(117,
150) Print("PAUSADO") RefreshScreen() // Se espera a que se
vuelva a presionar y soltar la // barra espaciadora. De esta manera el programa se // queda bloqueado en un ciclo de ejecución infinito // hasta que se retire la pausa While IsKeyDown("Space") = False RefreshScreen() End While While IsKeyDown("Space") RefreshScreen() End While // Se borra el
mensaje de PAUSA BorrarPantalla() End If End Method // Este método vuelve a pintar toda la pantalla de blanco // nuevamente ocultando el letrero de PAUSA Method BorrarPantalla() MoveTo(0, 0) Color(White) Rectangle(700,
390, True) End Method Method
cargarOvni() cargarMisil() Loop 10000 tecla() moverMisil() Delay(10) // Aquí se hace uso
del método que detiene el juego //
cuando se usa la pausa Pausar() End End Method End Program
|
|||||
|
|||||
![]() |
|||||