PDF de programación - Programación de juegos en BASIC Sinclair I - Creando un juego de marcianitos

Imágen de pdf Programación de juegos en BASIC Sinclair I - Creando un juego de marcianitos

Programación de juegos en BASIC Sinclair I - Creando un juego de marcianitosgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 5 de Noviembre del 2017)
2.394 visualizaciones desde el 5 de Noviembre del 2017
238,0 KB
11 paginas
Creado hace 15a (11/01/2009)
------------------------------------------------------------------------------------------------------------------------

Programación de juegos en BASIC Sinclair

I

Aracnav paso a paso – Creando un juego de marcianitos.

(Compatible con ZX Spectrum 48k)

------------------------------------------------------------------------------------------------------------------------

© 1996-2008 Palamar Software - Mariano Chiaverano

www.speccy.org/czarg

Introducción

Animarme a escribir un tutorial sobre creación de juegos para Spectrum parece una gracia debido
a que seguramente no estoy a la altura de otros que podrían enseñarle mas, y no es que me este
tirando abajo, simplemente tengo que reconocer que el trabajo en 48k de muchos otros
programadores es realmente admirable. Pero desgraciadamente o por suerte, ellos están en otro
punto de la escena y pocos son los que prestan atención a los iniciados o aquellos que quieren
hacer algo y poseen dudas. Lo que quiero decir es que no soy un programador de alto rango, pero
tampoco un iniciado, así que eso es lo que me lleva a tener ganas de escribir este tutorial. Otra
pauta a tener en cuenta es la poca o desperdigada información que existe en Internet acerca de
programación de esta índole.
Asi que bien, Basic, es un lenguaje muy sencillo y si le ha puesto ya las manos encima en una
Spectrum, un emulador o interprete, de seguro no tendrá problema en seguir este sencillo tutorial.
¿Qué no sabe que es Basic?, primero lea la historia en CZArg y luego abra el manual del Spectrum,
no tardará en estar nuevamente por aquí.
Para el aprendizaje que iremos viendo en esta y las futuras entregas, he decidido elegir como
punto central, juegos que yo haya programado, con el fin de poder otorgarle más detalle acerca de
cómo usted puede programar algo similar y modificarlo a su gusto. Sin embargo no descartaré el
uso de rutinas externas (de otros juegos) para ejemplificar sucesos. Como editor de Basic Sinclair
para PC usaré Basin, el cual, entre otras características, no se basa en los comando por letras, es
práctico y realmente flexible.
Bien, manos a la obra.

Basin R14d

Nota: Para simplificar y resumir algunas explicaciones, he optado que los caracteres “>>”
signifiquen ir o accionar un menú o acción correspondiente. Las notas en Azul serán aclaratorias y
las rojas pertenecerán a las advertencias. Las instrucciones (Comandos claves) de Basic se
expresarán en Negritas y color azul, mientras que las variables se expresarán en Negritas y rojo.
Los datos importantes se remarcarán con Negritas y en cursivas.

Primeros pasos

Vamos a empezar aclarando que juegos como Aracnav son extremadamente sencillos de
programar. El juego participó en el concurso 2006 de Basic Bytemaniacos y poseé solo 10 líneas. El
juego se basa en no dejar que los arácnidos toquen “el suelo” (la parte inferior de la pantalla). Esto
lo logrará poniendo la “nave” debajo de los mismos y disparando para deshacer la bajada.
Entenderá mejor la explicación si lo juega.
Sin embargo, explicar un juego con palabras es quizás una de las mejores maneras de empezar, por
ejemplo, cuando usted dice “Si estoy debajo del arácnido y disparo, entonces el arácnido muere y
entonces sumaré puntos”; en realidad esta mencionando, en este caso, la parte más importante
del juego, por lo que Básicamente ya lo tiene.
Una vez que vio cuál es la lógica del juego, comenzará a darle forma. Lo primero será definir los
caracteres gráficos del usuario o GDU. Hoy en día la mejor forma que he encontrado para hacer
esto es usar el editor GDU de Basin, el cual luego de crear los caracteres, permite generar los DATA
y los POKES correspondientes. En este caso son 2, el de la nave y el de la araña.
En la práctica es realmente sencillo, abra Basin y siga estos pasos:

>> Tools (Herramientas)

>> Graphics/Sprite Editor (Editor de Gráficos/Sprites).
>> File (Archivo)

>> New (Nuevo)

Pantalla de creación de gráficos GDU en Basin

En la pantalla que aparece cambie el valor de No of Graphics por el valor de 2. Esto sirve para
poder informar al editor que va a redefinir 2 gráficos en vez de 21. Dibujará ambos, asignando la
letra A a la nave y B a la araña.

Una vez terminados le resta enviar los datos al programa, para así, cargar los graficos cuando el
juego se ejecute.

Para enviarlos vaya al menú:

>> File
>> Export (Exportar).

La pantalla a continuación muestra la forma en la que puede exportar los gráficos. En este caso
enviará los datos como DATA Dec.
Rellene los datos siguientes con estos valores:

Bytes per line: 10 (Bytes por linea)

Start: 9000 (Comenzar en la linea 9000)
Step: 10 (Saltar de 10 en 10)

Y como ultimo debería marcar la casilla Include POKEs, para incluir las sentencias. Le da a Okay y
estará listo para seguir.
Ya tiene las primeras líneas listas, al ejecutar el listado obtendrá los caracteres gráficos en A y en B
para usarlos en su juego. Debería ejecutarlas, así cada vez que tenga que incluir los caracteres
gráficos le será más sencillo.

Más adelante deberá incluir un Gosub a la línea 9000 para cargar desde un principio los gráficos.

El resto es comenzar a tipear en el Basin, de forma directa, igual que lo haría en cualquier editor de
textos. Las palabras se le irán completando en caso de que introduzca un comando.

IMPORTANTE: Esta rutina puede borrarse mientras la creación del juego está en marcha, pero debe
incluirse en la versión final para ver correctamente el juego.

El Bucle

Sea cual sea el juego que este haciendo, tiene que saber que todos los juegos se basan en lo que
se llama Game Loop o bucle de juego. Un bucle es algo que se repite una y otra vez hasta que, por
alguna razón previamente instaurada por el programador (en este caso usted), se detenga. En
dicha repetición se hacen varias cosas, que en general siempre son las mismas:

 Mover los personajes (Gdu u otros)
 Comprobación de cosas (Vidas, tiempo, etc)
 Mostrar gráficos

(No necesariamente en este orden)

Aracnav, pese a tener 10 líneas, no es la excepción. Si mira el listado, dicho bucle se encuentra
entre las líneas 10, a partir de la instrucción For, y la línea 70 con la instrucción Next .
Es ese el lapso en el que el juego sucede, o sea, todo lo que entre esas líneas sucede es lo
realmente relevante, el resto es pura decoración. En la línea 5 está la presentación y explicación de
las bases del juego, en la línea 9000 empezará la creación de GDUs.

Definir las variables

Ya sabe cómo está estructurado el programa, ahora verá que es lo que hace cada linea.

Entender las variables de un juego es extremadamente importante para saber cómo funciona el
mismo.

Algunas variables de Aracnav se encuentran fuera del bucle principal, esto hace que mientras el
juego se esté ejecutando, las variables no regresen a su valor inicial.

Las variables especifican varias cosas tales como lugar de la nave, lugar del enemigo, puntaje, etc.
Las variables de Aracnav son:

Definidas primeramente fuera del Bucle principal:

Y= 15 Posición de nuestra nave en horizontal, el valor 15 significa que de un principio
apareceremos en la columna 15.
Punt=0 Puntos logrados, en principio 0.

Equiv=0 Equivocaciones en los disparos, en principio 0.
Las últimas dos variables son puestas en pantalla en la línea 10 mediante instrucciones Print antes
de comenzar el bucle principal

Definidas primeramente dentro del bucle principal

A Valor en vertical que irá tomando la araña (de 0 a 19)

B Valor aleatorio horizontal que irá tomando la araña (de 0 a 30)
C$ Imprime el arácnido.

Quizás las 2 variables más importantes sean Y y B, ya que cuando estas son iguales y al mismo
tiempo se efectúa un disparo, efectivamente el valor de Punt aumenta.

El juego

Ya hablamos del bucle y las variables de forma conceptual, ahora le explicaré como conjugarlos
para lograr que el juego funcione.
Discriminando la primera linea que dejaré a su imaginación, empezaré por la sentencia For de la
linea 10, donde comienza el bucle.

Programa:

10 PRINT #0;" ARACNAV ";"RES:
";equiv;" PUNTOS: ";punt:
FOR a=1 TO 19:
BEEP .001,a+10:
IF punt=200 THEN
PRINT AT 10,4;"GANASTE, MISION
CUMPLIDA!":
BEEP .1,6:
BEEP .6,2:
BEEP .2,5:
BEEP .4,3:
INPUT #0;"Teclea m para volver a
empezar ";l$:
IF l$="m" THEN CLS :
GO TO 1
20 IF a=1 THEN
LET b=INT (RND*30)
30 LET c$="A":
PAUSE 2:
PRINT AT a,b; INK 2;c$:
PRINT AT 21,y; INK 1;"B":
LET equiv=equiv+1:
IF equiv=400 THEN

PRINT AT 10,0;" PERDISTE, LOS
ARACNIDOS HAN TOMADO LA
CIUDAD":
BEEP .1,-20:
INPUT #0;"Teclea m para volver a empezar
";l$:
IF l$="m" THEN
CLS :
GO TO 1

El For de la linea 10 hace variar a la variable A de 1 a 19, eso hace que el bucle se repita 19 veces,
en esas veces pasarán varias cosas.

 Se ejecuta un sonido que va en escala a medida que se modifica A (de 0 a 19)
 Se verifica si la variable Punt es igual a 200 y muestra un mensaje, o sea, si hizo 200 puntos,
entonces se mostrará en pantalla que ha ganado, se ejecutará una rutina musical mediante
Beeps y se esperará a que teclee “m” para recomenzar.

 En la linea 20 encontrará un If, el cual verifica si la variable A esta en uno (o sea al principio
del bucle); si es asi elige una posición (número) de 0 a 30 al azar y la almacena en B, para
luego posicionar el arácnido, el cual esta almacenado en la variable C$, en la posición A,B.
Por ejemplo, sabe que A va a ser 1,2,3,4…19; esto simulará que la araña venga “cayendo” y
B al ser aleatorio hará que la araña caiga en 2,8,9,4, o en cualquier otra posición que no
supere los 30. Claro esta que este ultimo número se da por el tamaño de pantalla en baja
resolución de la Spectrum.

 En la linea 30 se imprime el arácnido y luego la nave. La posición de la nave no es aleatoria
como la del arácnido. La nave tiene e
  • Links de descarga
http://lwp-l.com/pdf7387

Comentarios de: Programación de juegos en BASIC Sinclair I - Creando un juego de marcianitos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad