EL   OVNI   ATACA   LA   CIUDAD

 

Program Ovni

                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 autoDer As Imagen

                Define autoIzq As Imagen

                Define explosión As Imagen

                Define hayMisil As Bool = False

                Define cuadroExplosión As Int = 1

                Define TiempoImagen As Int[6]= {40, 40, 40, 40, 40, 40}

                Method cargarOvni()

                               LoadSprite("OVNI", "OVNI.gif")

                               ovni.x = 50

                               ovni.y = 50

                               ovni.incX = 5

                               ovni.incY = 5

                               MoveSpriteToPoint("OVNI", ovni.x, ovni.y)

                               SetSpriteZIndex("OVNI", 10)

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

                               LoadSprite("AutoDer", "CarD.gif")

                               autoDer.x = 0

                               autoDer.y = 450

                               autoDer.incX = 5

                               MoveSpriteToPoint("AutoDer", autoDer.x, autoDer.y)

                               ScaleSprite("AutoDer",0.5)

                               ShowSprite("AutoDer")

                End Method

                Method cargarAutoIzq()

                               LoadSprite("AutoIzq", "CarI.gif")

                               autoIzq.x = ScreenWidth()

                               autoIzq.y = 430

                               autoIzq.incX = 5

                               MoveSpriteToPoint("AutoIzq", autoIzq.x, autoIzq.y)

                               ScaleSprite("AutoIzq",0.5)

                               ShowSprite("AutoIzq")

                End Method

                Method animarExplosión()

                               If cuadroExplosión = GetSpriteFrameCount("BOOM") Then

                                               HideSprite("BOOM")

                               Else

                                               cuadroExplosión = cuadroExplosión + 1

                                               SetSpriteActiveFrame("BOOM", cuadroExplosión)

                               End If

                End Method

                Method moverAutoDer()

                               autoDer.x = autoDer.x + autoDer.IncX

                               If autoDer.x > (ScreenWidth() - GetSpriteWidth("AutoDer")) Then

                                               autoDer.x = 0

                               End If

                               MoveSpriteToPoint("AutoDer", autoDer.x, autoDer.y)

                End Method

                Method moverAutoIzq()

                               autoIzq.x = autoIzq.x - autoIzq.incX

                               If autoIzq.x < 0 Then

                                               autoIzq.x = ScreenWidth()

                               End If

                               MoveSpriteToPoint("AutoIzq", autoIzq.x, autoIzq.y)

                End Method

                Method moverMisil()

                               If hayMisil = True And misil.y < ScreenHeight() + GetSpriteHeight("MISIL") Then

                                               misil.y = misil.y + misil.IncY

                                               MoveSpritebyamount("MISIL", 0, misil.IncY)

                               Else

                                               hayMisil = False

                                               HideSprite("MISIL")

                               End If

                               If SpritesIntersect("MISIL", "AutoDer") Then

                                               hayMisil = False

                                               HideSprite("MISIL")

                                               destruirAuto("D")

                               End If

                               If SpritesIntersect("MISIL", "AutoIzq") Then

                                               hayMisil = False

                                               HideSprite("MISIL")

                                               destruirAuto("I")

                               End If

                End Method

                Method destruirAuto(auto As String)

                               PlaySound("Explosion1.wav")

                                               cuadroExplosión = 1

                                               If auto = "D" Then

                                                               MoveSpriteToPoint("BOOM", autoDer.x, autoDer.y)

                                                               autoDer.x = 0

                                               Else

                                                               MoveSpriteToPoint("BOOM", autoIzq.x, autoIzq.y)

                                                               autoIzq.x = ScreenWidth()

                                               End If

                                               ShowSprite("BOOM")

                End Method

                Method tecla()

                               If IsKeyDown("UP") And ovni.y > 0Then

                                               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("Space") 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

                Method Main()

                     SetScreenSize(600,480)

                               LoadSprite("CIUDAD", "CityScape.png")

                               MoveSpriteToPoint("CIUDAD",0,200)

                               cargarOvni()

                               cargarAutoDer()

                               cargarAutoIzq()

                               cargarMisil()

                               LoadSprite("BOOM", "Explosion.gif")

                               ShowSprite("Ciudad")

                               Loop 10000

                                               tecla()

                                               moverMisil()

                                               animarExplosión()

                                               moverAutoDer()

                                               moverAutoIzq()

                                               Delay(1)

                               End Loop 

                End Method

End Program