Código de laberinto súper simple VB
Función de declaración privada IntersectRect Lib "user32" (lpDestRECT As RECT, lpSrc1RECT As RECT, lpSrc2RECT As RECT) Siempre
Tipo Privado RECT
X1 Mientras Largo
Y1 Mientras Largo
X2 Mientras Largo
Y2 Mientras Largo
Tipo de finalización
Dim xyStart As RECT 'Define el área donde comienza el villano
Dim xyEnd As RECT 'Define el área donde el villano sale del laberinto, que se utiliza para determinar el éxito
p>Dim spRECT(12) As RECT 'Solo tengo 13 paredes dibujadas con formas, utilizadas para rastrear todas las áreas cubiertas por las paredes
Dim menRECT As RECT 'El área cubierta por el villano p>
Const bu As Long = 10 'Define el tamaño del paso del movimiento del villano
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Atenuar temperatura como RECT
Seleccione Case KeyCode
Case vbKeyUp
menRECT.Y1 = menRECT.Y1 - bu
menRECT.Y2 = menRECT.Y2 - bu
Si zq(menRECT) Entonces spMen..top = spMen.top - bu
Caso vbKeyDown
menRECT.Y1 = menRECT .Y1 + bu
p>
menRECT.Y2 = menRECT.Y2 + bu
Si zq(menRECT) Entonces spMen.X1 - bu
menRECT.X2 = menRECT.X2 - bu
p>Si zq(menRECT) Entonces spMen left = spMen.left - bu
Caso vbKeyRight
menRECT. .X1 = menRECT.X1 + bu
menRECT.X2 = menRECT.X2 + bu
Si zq(menRECT) Entonces spMen..left = spMen.left + bu
Fin de selección
menRECT.X1 = spMen.left
menRECT.Y1 = spMen.top
menRECT.
menRECT.Y2 = spMen.top + spMen.Height
p>Si IntersectRect(temp, menRECT, xyEnd) > 0 Entonces
MsgBox "Llegó al final"
Finalizar si
Finalizar sub
Sub privado Form_Load()
xyStart.Y1 = 0
xyEnd.X2 = Yo .ScaleWidth
xyEnd.Y2 = 360
Me.AutoRedr
aw = True
Line (xyStart.X1, xyStart.Y1)-(xyStart.X2, xyStart.Y2), vbYellow, BF 'Dibuja una marca de cuadro en la posición inicial
Línea (xyEnd.X1 - spMen.Width) / 2
menRECT.X1 = spMen.left 'Registra el área donde comienza el villano
menRECT.Y1 = spMen.top
menRECT.X2 = spMen.left + spMen.Width
menRECT.Y2 = spMen.top + spMen.Height
menRECT.Y3 = spMen.H1 = spMen.Height
menRECT.Y4 = spMen.H1 = spMen.Heighttop + spMen.Height
Para i = 0 A 12 'Registra el área de todos paredes al principio
spRECT(i).X1 = sp(i).left
spRECT(i).Y1 = sp(i).top
spRECT(i).X2 = sp(i).left + sp(i).Ancho
spRECT(i).Y1 = sp(i).top