MS Small Basic: Respuesta a eventos (código)


rebotar_pelota

Juego “Rebotar la pelota”

El objetivo del juego es mantener a la bola por encima del suelto tanto tiempo como sea posible.

Observe cómo utilizar los eventos del mouse para impedir que la pelota toque el suelo. La pelota responde a los clics del mouse para mantenerse a flote.

__________________________________________________________________________________________________________________________________________________________

‘ Copyright (c) Microsoft Corporation. Todos los derechos reservados. GraphicsWindow.Hide()

anVent = 450

alVent = 400

GraphicsWindow.CanResize = “Falso”

GraphicsWindow.Width = anVent

GraphicsWindow.Height = alVent

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

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

GraphicsWindow.Title = “Rebotar la pelota”

GraphicsWindow.Show()

velocidad = 15

imgSuelo = Program.Directory + “\suelo.png”

imgPelota = Program.Directory + “\pelota.png”

GraphicsWindow.FontSize = 14

Controls.ButtonClicked = OnClicked

ángulo = 30

seg = 0

min = 0

anVent = GraphicsWindow.Width

alVent = GraphicsWindow.Height

y = anVent – 86

x = 210

GraphicsWindow.BrushColor = “Black”

GraphicsWindow.DrawText(10, 10, “Tiempo: 00:00”) 

instrucciones = Shapes.AddText(“Haga clic en la pelota para comenzar a jugar.”)

Shapes.Move(instrucciones, 100,130)

pelota = Shapes.AddImage(imgPelota)

suelo = Shapes.AddImage(imgSuelo)

Shapes.Move(suelo, 0, alVent – 50)

botónPelota = Controls.AddButton(“”, x, y)

Controls.SetSize(botónPelota, 36, 36)

Shapes.Move(pelota, x, y)

Shapes.Move(botónPelota, x, y)

Shapes.SetOpacity(botónPelota, 0)

Sub AlEmpezar

  pX = 1

  pY = -2

  númAleat = Math.GetRandomNumber(200)

  topy = númAleat

  Bucle:

  y = y + pY

  anVent = GraphicsWindow.Width

  alVent = GraphicsWindow.Height

  If x >= anVent – 16 Or x <= 0 Then

    pX = -pX

  EndIf

  If y <= númAleat Then

    pY = -pY

  EndIf

  Shapes.Move(pelota, x, y)

  Shapes.Rotate(pelota, ángulo+ 30)

  Shapes.Move(botónPelota, x, y)

  Program.Delay(velocidad) 

  MostrarPuntuación()

  If (y < alVent – 86) Then 

    Goto Bucle

  EndIf

  Fin:

  GraphicsWindow.ShowMessage(“Rebotó la pelota durante ” + strMin + “:” + strSeg + ” segundos.”, “FIN”)

  Program.End()

EndSub

Sub OnClicked

  Shapes.HideShape(instrucciones)

  velocidad = velocidad – 0.5

  MostrarPuntuación()

  AlEmpezar()

EndSub

Sub MostrarPuntuación 

  seg = seg + 0.01

  If seg < 60 And min < 1 Then

    strMin = “00”

    If seg < 10 Then 

      strSeg = Text.Append(“0”, Math.Floor(seg))

    ElseIf seg > 10 Then

      strSeg = Text.Append(“”, Math.Floor(seg))

    EndIf

  Else

    If min < 10 Then 

      strMin = Text.Append(“0”, min)

    ElseIf min > 10 Then

      strMin = Text.Append(“”, min)

    EndIf 

    If seg < 10 Then 

      strSeg = Text.Append(“0”, Math.Floor(seg))

    ElseIf seg > 10 Then

      strSeg = Text.Append(“”, Math.Floor(seg))

    EndIf 

  EndIf

  GraphicsWindow.BrushColor = “White”

  GraphicsWindow.FillRectangle(50, 10, 200, 20)

  GraphicsWindow.BrushColor = “Black”

  GraphicsWindow.DrawText(54, 10,”” + strMin + “:” + strSeg) 

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