Asteroids Source code in VB.NET and Csharp

New product

Source code of the game Asteroids. Written in VB.NET and C #

Asteroids - Código fuente


Asteroides es clásico de los video juegos por lo simple, tan simple que las primeras versiones fueron realizadas con electrónica discreta, nada de microprocesadores para el barrido en pantalla, es por esto que decidí hacer un tributo al mismo como vemos a continuación:

Para este juego, quise hacer uso de solo polígonos, nada de usar sprites, esto fue solo para programar en objetos la estructura básica de un objeto las cuales son:

Estructura asteroids vb.net cs

Estas ESTRUCTURAS, se basan en POLIGONOS y finalmente los polígonos contienen las LINEAS que es la base de pintado de los objetos espaciales.

Por otro lado, está el MUNDO, el cual contiene a los objetos espaciales y se encarga de:

- Actualizar el movimiento de los objetos espaciales.

- Los organiza y les envía la orden de pintado en pantalla.

- Posee las funciones para detectar las colisiones entre objetos.

- Gestiona la cámara y la destrucción y creación objetos de los mundos.

Aporta los eventos a los hereditarios NIVELES como:

- Inicio del mundo.

- Actualización del mundo.

- Pintado del mundo.

- Destrucción de nave principal.

De esta forma el hereditario solo tiene que programar los asuntos del nivel como:

- Velocidad de aparición de asteroides.

- Las vidas de nuestra nave.

- Otras cosas que se nos ocurran.

mundo en asteroids vb.net cs

Entonces, si queremos hacer un objeto espacial como por ejemplo un cuadrado, solo tenemos que escribir unas cuantas cosas y listo. Un ejemplo de esto es:


Ver código

Public Class Cuadrado
Inherits Estructura

'Poligono
Private cuadrop As Poligono

'Constructor del objeto. En este caso un cuadrado.
Sub New(eMundo As Mundo, ePosicion As PointF, tamaño As SizeF)

'Registrando al mundo para que se procesen los mensajes del mismo.
_Mundo = eMundo

'creando el poligono
cuadrop = New Poligono()

'En este caso, se agrega un rectangulo al poligono.
cuadrop.ContenedorFormas.AddRect(New Point(0, 0), tamaño)
cuadrop.AnchoLinea = 1

'Una vez se construye el poligono, se agrega a la estructura
AgregarPoligono(cuadrop, "cuadro")

'Se ajusta la posicion de la estructura.
Xpos = ePosicion.X
Ypos = ePosicion.Y

'Se calculan los limites de la estructura para
'su uso en el sistema de colision.
CalcularEstructura()

End Sub

'''
''' Este llamado ajusta el color del poligono.
'''

'''
''' Es usado por el sistema de efectos.
Public Sub AjustarColor(colorCuadro As Color)
cuadrop.ColorPoligono = colorCuadro
End Sub

End Class

Nivel.

Igual para programar los niveles. Solo hay que ponerle empeño solo a las acciones del nivel como, velocidad de creación de asteroides, cuantos van a salir, vidas del usuario. De la mecánica se encarga la base, que este caso es Mundo. Un ejemplo de esto se ve a continuación:

Ver código

'''
''' Control del nivel Numero 1.
''' No he pensado aun si dejar el nivel asi..por clases
''' o aqui mismo realizar las
'''

'''
Public Class Nivel1
Inherits Mundo

'''
''' El nivel es creable.
'''

'''
Public Sub New()
MyBase.New()
End Sub

Private
PasoTeclaEliminar As Integer

Private
PasoTiempoAsteroides As Integer
Private
NAsteroidesGenerados As Integer

'''
''' Se debe actualizar la logica del nivel.
'''

'''
Private Sub Nivel1_ActualizarMundo() Handles Me.ActualizarMundo

PasoTiempoAsteroides = PasoTiempoAsteroides + 1
PasoTiempoAsteroides = PasoTiempoAsteroides
Mod 100

'Creación automatica de 3 asteroides aleatorios durante el nivel.
'Cuando el paso pasa a 0, se crea un asteroide
If PasoTiempoAsteroides = 0 Then
PasoTiempoAsteroides = 0
If NAsteroidesGenerados < 2 Then
NAsteroidesGenerados += 1
GenerarAsteroide(NumeroAleatorio(0, 3))
'arriba, abajo, izquierda,derecha
End If
End If

'Creacion manual de asteroides con la tecla N
If PasoTeclaEliminar < 20 Then PasoTeclaEliminar += 1
If ControlTeclado.EstaPresionada(Keys.N) Then
If
PasoTeclaEliminar > 10 Then
PasoTeclaEliminar = 0
GenerarAsteroide(NumeroAleatorio(0, 3))
End If
End If

End Sub

'''
''' Se deben agregar los enemigos iniciales.
'''

'''
Private Sub cNivel1_InicioCompleto() Handles Me.InicioCompleto
'Iniciando los asteroides iniciales.
For i = 0 To 3
GenerarAsteroide(i)
Next
_numeroAsteroides = 4
End Sub
End Class

Descarga el código fuente:




Descarga el código fuente

Bueno, es todo por los momentos, cualquier duda que tengan. Abajo en la sección de comentarios.


Escrito por:
Elimar D.
Eli-Programa.
28/01/2019

Grade 
01/29/2019

Excelente

Gran post

    Write your review!

    Write a review

    Asteroids Source code in VB.NET and Csharp

    Asteroids Source code in VB.NET and Csharp

    Source code of the game Asteroids. Written in VB.NET and C #

    Ask a question

    NO registration required!

    If the question you have has not yet been answered here, use the form below to ask something about this addon.

    (optional)
    *(Required to be notified when an answer is available)

    If the download link redirects to another product that is not described in the article or is broken, report it using our Reporting Form