Comentarios de código VB ¿Quién puede ayudarme?
Opción?Explícita
'La declaración debe definirse antes de poder utilizar la variable
Privada?Const?MERGEPAINT?= amp;HBB0226
Private?Const?SRCAND?=?amp;H8800C6
'MERGEPAINT y SRCAND no se utilizan en este código
Private?Const?SRCCOPY?=?amp;HCC0020
p>'Un operando en la función bitblt
¿Privado?Declarar?Función?BitBlt?Lib?"gdi32"?(ByVal?hDestDC?As?Long,ByVal?x?As ?Long, ByVal?y?As?Long, ByVal?nWidth?As?Long, ByVal?nHeight?As?Long, ByVal?hSrcDC?As?Long, ByVal?xSrc?As?Long, ByVal?ySrc?As?Long ,? ByVal?dwRop?As?Long)?As?Long
'Esta función se utiliza para realizar una conversión de bloques de bits en los píxeles del área especificada que se transferirán al área del objeto de destino.
'Variable de posicionamiento del balón.
'Las siguientes definiciones de variables y constantes se utilizan para controlar la posición, el movimiento y otros parámetros de la pelota
Private?Const?BallR?=?10'?Radius p>
¿Privado?Const?BallD?=?2?*?BallR? ?1?'?Diámetro
Privado?CurX?La coordenada x actual de la ubicación de la esfera
¿Privado?CurY ?La coordenada Y actual del círculo
Privado?¿OldX?As?Single?'?La coordenada X de la última vez que se dibujó el círculo
¿Privado? OldY?As?Single?'?Última vez Dibuja la coordenada Y del círculo
Privado?VelX?As?Single?'?Distancia de desplazamiento horizontal
Privado?VelY?As? ¿Único?'?Distancia de desplazamiento vertical
Privado? p>''DrawBall proceso de extracción de una bola
Privado?Sub?DrawBall()
''? Borrar el Blob original
BitBlt?picCanvas.hDC, ?_
OldX?-?BallR,?OldY?-?BallR,?BallD,?BallD,?_
picHidden.hDC,?OldX?-?BallR,?OldY ?-?BallR,?SRCCOPY
OldX?=?CurX
OldY?=?CurY p>
'¿Guardar la coordenada X y la coordenada Y del centro actual del círculo en OldX, OldY
'?¿Volver a dibujar el centro del círculo con ?curX, CurY? Dibujar una bola con radio ballR
picCanvas.Circle?(CurX,?CurY),?BallR
'?Actualizar el cuadro de imagen
picCanvas.Refresh
p>End?Sub
'?Inicializa información, como la ubicación del Blob, y dibuja el Blob
Private?Sub?Form_Load()
' ? ¿El tamaño de la ventana coincide exactamente con el tamaño del cuadro de imagen
Width?=?(Width?-?ScaleWidth)?picCanvas.Width
'Calculate? el ancho del formulario? = Ancho del cuadro de imagen Ancho del borde
Altura?=?(Altura?-?ScaleHeight)?picCanvas.Height
'¿Calcular la altura del formulario? = Alto del cuadro de imagen Alto del borde
Xmax?=?picCanvas.ScaleWidth?-?BallR
'La coordenada X que puede alcanzar el nuevo límite del círculo
Ymax ?=?picCanvas.ScaleHeight?-?BallR
'¿La coordenada Y que puede alcanzar el nuevo límite del círculo
'? Inicializa la posición y dirección de movimiento del círculo
Randomize'randomization
CurX?=?Int((Xmax?-?BallR? ?1)?*?Rnd? ?Ba
llR)
CurY?=?Int((Ymax?-?BallR? ?1)?*?Rnd? ?BallR)
' Genera aleatoriamente la X de las coordenadas centrales de el círculo en el marco, Y
OldX?=?CurX
OldY?=?CurY
'Guarda las coordenadas X e Y del centro del círculo actual en OldX y OldY
p>VelX?=?Int((10?-?5? ?BallR)
CurY?=?(10?-?5? ?1) ?*?Rnd? ?5)
VelY?=?Int((10?-?5? ?1)?*?Rnd? ?5)
'Genera VelX aleatoriamente y VelY, que es la distancia que se mueve el centro del círculo cada vez, y también la velocidad del movimiento
DrawBall
'Llama al procedimiento DrawBall para dibujar la bola p>
End?Sub
'?Mover la bola a través del cronómetro para animar el efecto de movimiento
Private?Sub?tmrBounce_Timer()
CurX ?=?CurX? ?VelX
'Calcular la coordenada X de la nueva bola
If?(CurX?gt;?Xmax)?Then
' Si la nueva coordenada X llega al marco de la imagen
CurX?=?Xmax
'Entonces establezca la coordenada X en el lado más derecho del marco de la imagen
VelX ?=?-VelX
'Cambiar la dirección del movimiento al sentido contrario, es decir hacia la izquierda
'Sonido de pitido
'Cancelar el comentario aquí , cuando la bola llegue al lado derecho del marco, ¿la dirección del movimiento cambiará al lado derecho del marco de la imagen?
'Beep
'Elimina el comentario aquí y la pelota llega al extremo derecho del cuadro de la imagen con un ruido sordo, igual que más adelante, ya no se describe
.ElseIf(CurX?lt;?BallR)?Then
'Si la nueva coordenada x llega al lado izquierdo del marco
CurX?=?BallR
'Cambiar el sentido del movimiento al sentido contrario, es decir a la derecha
VelX?=??-VelX
'Sonido de pitido
End?If
'Calcular la coordenada Y de la nueva bola
CurY?= ?CurY?VelY
'Si la nueva coordenada Y llega al mismo lado inferior del cuadro de imagen
If?(CurY?gt;?Ymax)?Then
'Entonces la coordenada Y se establece en el lado inferior del marco
CurY?= ?Ymax
'La dirección del movimiento se cambia a la dirección opuesta, es decir, hacia arriba
VelY?=?-VelY<
/p>
'Beep
ElseIf(CurY?lt;?BallR)?Then
'Si la nueva coordenada Y llega a la parte superior del cuadro de imagen
CurY?=?BallR
'Entonces la coordenada Y se establece en el lado superior del marco de la imagen
VelY?=?-VelY
'se moverá La dirección se cambia a la dirección opuesta, es decir, hacia abajo
'Beep
final? Si
'Obtiene el nuevo centro y luego vuelve a conectar la bola
DrawBall
¿Fin? De hecho, este programa no necesita ser tan complicado. Puedes guardar una gran cantidad de código siguiendo esto y no necesitas tantos controles.htm
Porque el punto lejano es demasiado pequeño. De acuerdo con el código anterior, el radio del círculo cambia. El resultado después de ejecutar es como se muestra en la figura: