Consultas, desarrollo de programas y petición de presupuestos:

sábado, 2 de junio de 2012

Gambas: Programando Tu Primer Un videojuego "Salir de la Mansión" (Aventura Conversacional)


Gambas:

 Programando Tu Primer Un videojuego

 "Salir de la Mansión"


Muchos de los que empezaron con la programación era por el interés que les desperto los videojuegos, y la idea de hacer sus propios juegos.

He encontrado un libro  gratuito llamado Programacion de videojuegos con sdl para windows y linux (os lo podeis descargar pulsando en el enlace), donde el autor Alberto Garcia Serrano, explica como realizar varios juegos, detallando los pasos a seguir, esquemas, y codigos fuentes.



Os recomiendo su lectura para los que os querrais iniciaros o simplemente, tengais curiosidad en como se hacen los videojuegos.

 El primer ejemplo del libro lo he pasado a Gambas 3.1.1, ya que los ejemplos del libro estan en C, no os desanimeis por ello, ya que  no resulta complicado entender los ejemplos del libro, porque el autor los comenta muy detalladamente.

Os podeis descargar el código fuente en Gambas, de mi versión, en este enlace: EnlaceEjecutable en Gambas




Se trata de un juego tipo texto, donde tienes que moverte por las habitaciones de una mansión cogiendo objetos y usandolos, escribiendo las ordenes en un textbox.

He añadido una mejora, para que las habitaciones y objetos se coloquen aleatoriamente cada vez que jugamos. (haciendo que el juego nunca se repita :) )

Para ello, genero una lista que contiene un entero que indica el indice del array que va a contener cada habitación , y la desordeno aleatoriamente, obteniendo una disposicion siempre diferente ya que la llamo cada vez que se inicia el juego:

Public Function GeneraOrdenHabitaciones() As String[]




Dim lista As New Integer[]
Dim a As Integer
Dim obtener1 As Integer
Dim obtener2 As Integer
Dim temporal As Integer
'creo la lista
For a = 0 To 9
lista.Add(a)
Next




'barajo la lista
For a = 1 To 50 'barajo 50 veces
'obtengo nuevas posiciones...
obtener1 = Int(Rnd(1, 10))




obtener2 = obtener1 'hacemos esto para que el bucle se ejecute por lo menos una vez
While (obtener1 = obtener2)
obtener2 = Int(Rnd(1, 10))
Wend




'intercambiar
temporal = lista[obtener1]
lista[obtener1] = lista[obtener2]
lista[obtener2] = temporal




Next
Print "Lista obtenida de habitaciones: "
For a = 1 To 9
Print lista[a]; " ";
Next
Return lista




End

Esta funcion, devuelve una lista, que usare como el indice del array de habitaciones.

Todo el programa sigue el paradigma de programación estructural, son sus limitaciones y complicaciones para posteriores ampliaciones (algo muy tipico en los juegos..).

En una próxima entrega, realizaré este mismo juego basandome en el paradigma de Programación Orientada en Objetos, donde os mostraré que beneficios trae a la hora de programar y podreis aprecias las diferencias y beneficios (por ejemplo, sera muy facil añadir más objetos, ordenes, etc) al juego.


Espero que os guste y os resulte útil. Saludos

5 comentarios:

  1. Hola mi nombre es Mauricio Andrés
    Encontre tu antiguo programa de administración de cyber "Uwimbux", debido a que ya no le diste seguimiento tome su codigo fuente y lo estoy usando para crear un nuevo programa basado en el tuyo. (Todo el codigo es tuyo, estoy modificando su interfaz para ser mas intuitiva).

    Todo fue bien, hasta que me tope con el problema de crear un .deb.

    Gambas no me permite crearlo, marca el siguiente error:
    Package.MakeDebPackage.368: File or directory does not exist
    Espero me puedas guiar en esto, uso Ubuntu 12.04

    ResponderEliminar
  2. Puede ser por un problema con el nombre del archivo que tienes puesto al proyecto o en la ruta, ya que no se adminten espacios por parte de package.makedeb, a ver si es eso...

    ResponderEliminar
  3. No tiene espacios, la ruta donde lo quiero crear es:
    /home/miusuario/documentos/cyber/

    No se si existe alguna otra manera de crear el .deb.

    ResponderEliminar
  4. Preguntalo en gambas-es.org, a ver si te puede echar una mano el administrador, comenta en el post que hagas, la version de gambas que tienes.

    ResponderEliminar
  5. Nota:
    El programa Uwimbux no es mio, lo recopile de otro blog. Su autor es Mako.

    Saludos

    ResponderEliminar