Visual Basic - Ver aquí para Juegos con colisiones

Life is soft - evento anual de software empresarial
 
Vista:

Ver aquí para Juegos con colisiones

Publicado por Adán (79 intervenciones) el 29/05/2001 06:03:17
Es más fácil si utilizas API's, puedes hacerlo funcionar hasta con triángulos y figuras complejas:

'En un módulo coloca esto:
Type POINT_TYPE
X As Long
Y As Long
End Type

Declare Function PtInRegion Lib "gdi32.dll" (ByVal hRgn As Long, ByVal X As Long, ByVal Y As Long) As Long
Declare Function CreatePolygonRgn Lib "gdi32.dll" (lpPoint As POINT_TYPE, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Declare Function DeleteObject Lib "gdi32.dll" (ByVal hObject As Long) As Long

'Ahora coloca esto en tu form:
Const ALTERNATE = 1

Dim hRgn As Long
Dim estadentro As Long
Dim retval As Long
Dim Puntos() As POINT_TYPE
Dim NumPts

Sub Form_Load()
Puntos(0).X=100
Puntos(0).Y=100
Puntos(1).X=200
Puntos(1).Y=100
Puntos(2).X=200
Puntos(2).X=200
Puntos(3).X=100
Puntos(3).X=200
NumPts = UBound(Puntos)

'Creas el polígono
hRgn = CreatePolygonRgn(Puntos(0), NumPts, ALTERNATE)
End Sub

estadentro = PtInRegion(hRgn, X, Y) '¿el punto esta dentro del poligono?
If estadentro Then
..............'todo lo que tú quieras: como detener el incremento en X, es decir el movimiento horizontal
.................
End If

Private Sub Form_Unload(Cancel As Integer)
retval = DeleteObject(hRgn)
End Sub

...Pero si quieres juegos buenos con poca programada, usa Div Games Studio o Dark Basic; pero si aún no te desanimas, vas a tener que usar puras API's y si quieres algo mejor (3D), DirectX.

Suerte
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder