Detección de colisiones (2) – Código


manzana

Utilizando el concepto de detección de colisiones, crear un juego que contenga dos objetos: un cubo y unas manzanas. Las manzanas caerán al azar desde la parte superior de la pantalla. El jugador intentará capturar las manzanas con el cubo. El juego se ejecuta durante 30 segundos. Incluya un tablero de puntuación para mostrar el número total de manzanas atrapadas por el jugador en 30 segundos. El juego debería ser algo como esto:

Código:

‘  copyright (c) Microsoft Corporation.  Todos los derechos reservados.

GraphicsWindow.Hide()

ventanaAncho = 800

ventanaAlto = 600

GraphicsWindow.CanResize = “False”

GraphicsWindow.Width  = ventanaAncho

GraphicsWindow.Height = ventanaAlto

GraphicsWindow.Top = (Desktop.Height – ventanaAlto) / 2

GraphicsWindow.Left = (Desktop.Width – ventanaAncho) / 2

GraphicsWindow.Title = “Atrapar las manzanas”

GraphicsWindow.Show()

manzanasRestantes = 30

puntuaciónJuego = 0

imagenCubo = Program.Directory + “\cubo.png”

imagenManzana = Program.Directory + “\manzana.png”

GraphicsWindow.MouseMove = AlMoverMouse

CrearInterfaz()

While manzanasRestantes > 0

SoltarManzana()

manzanasRestantes = manzanasRestantes – 1

Shapes.SetText(manzasRestantesCuadroTexto, “Manzanas restantes: ” + manzanasRestantes)

EndWhile

GraphicsWindow.ShowMessage(“Su puntuación es: ” + puntuaciónJuego, “FIN”)

Program.End()

Sub CrearInterfaz

GraphicsWindow.BackgroundColor = “LightBlue”

cubo = Shapes.AddImage(imagenCubo)

manzana = Shapes.AddImage(imagenManzana)

GraphicsWindow.BrushColor = “Gray”

GraphicsWindow.FillRectangle(1, 1, ventanaAncho, 40)

GraphicsWindow.FontName = “Verdana”

GraphicsWindow.FontSize = 18

GraphicsWindow.BrushColor = “White”

GraphicsWindow.DrawText(350, 5, “Atrapar las manzanas”)

puntuaciónCuadroTexto = Shapes.AddText(“Puntuación: 0”)

Shapes.Move(puntuaciónCuadroTexto, 650, 5)

manzasRestantesCuadroTexto = Shapes.AddText(“Manzanas restantes: ” + manzanasRestantes)

Shapes.Move(manzasRestantesCuadroTexto, 5, 5)

GraphicsWindow.PenColor = “Black”

GraphicsWindow.DrawLine(0, 50, 800, 50)

Shapes.Move(cubo, 0, ventanaAlto – 40)

Mouse.HideCursor()

EndSub

Sub AlMoverMouse

cuboX = Math.Min(GraphicsWindow.MouseX, 570)

Shapes.Move(cubo, cuboX, ventanaAlto – 40)

EndSub

Sub SoltarManzana

manzanaX = Math.GetRandomNumber(600)

manzanaY = 50

While (manzanaY < ventanaAlto + 20)

Shapes.Move(manzana, manzanaX, manzanaY)

Program.Delay(15)

DetecciónAtrapar()

manzanaY = manzanaY + 5

EndWhile

EndSub

Sub DetecciónAtrapar

If manzanaY >= ventanaAlto – 40 And manzanaX < cuboX + 50 And manzanaX >= cuboX Then

puntuaciónJuego = puntuaciónJuego + 1

Shapes.SetText(puntuaciónCuadroTexto, “Puntuación: ” + puntuaciónJuego)

manzanaY = ventanaAlto + 20

EndIf

EndSub

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s