Programa tus juegos en Small Basic 0.2

Paso 1/5: Resumen de episodios anteriores

Small Basic es un lenguaje de iniciación a la programación que enfatiza la idea de divertirse mientras se programa. Es parte de esta nueva iniciativa de Microsoft para animar a los más jóvenes (de 7 a 77 años) a descubrir las alegrías de la programación. Para obtener más información, haga clic aquí — aquí –.

En nuestro primer episodio (ver aquí), presentamos elEntorno de desarrollodemostró que el software permite no sólo crear pequeñas aplicaciones simples (en modo consola), sino también las más sofisticadas capaces de consultar servicios Web tales como Flickr (aquí)

En el segundo episodio (ver aquí), estudiamos algunos conceptos fundamentales del lenguaje tales como variables, bucles y pruebas. Los ilustramos con el Misterioso juego de números (ver aquí).

En el tercer episodio (ver aquí), vimos que Small Basic se inspiró en el lenguaje LOGOTIPO para ofrecer instrucciones gráficas muy divertidas y educativas (ver aquí)!

En el cuarto episodio (ver aquí), descubrimos el papel de subprogramas y sentencia SUB y recreamos el famoso juego PONGel antepasado de los videojuegos modernos!

En este quinto episodio, descubriremos las novedades de la versión «0.2» de Small Basic así como las instrucciones que permiten animar sprites en pantalla.

Paso 2/5: Las nuevas características de la versión «0.2 Diciembre 2008

Como se prometió, Microsoft lanzó una actualización de su Small Basic: la versión 0.2 conocida como la «edición de diciembre de 2008» justo antes de Navidad.

Este corrige muchos pequeños problemas de la primera versión, y principalmente corrige el error que impedía a Small Basic trabajar en sistemas franceses sin cambiar los ajustes regionales!

Esta nueva versión también aporta su parte de mejoras al propio lenguaje:

Array (Tablas):
Apariencia de las funciones GetItemCount, ContainsIndex, ContainsValue y RemoveValue.

Escritorio:
Las funciones ScreenWidth y ScreenHeight permiten obtener la resolución del escritorio de Windows.

Archivo:
Apariencia de las funciones CreateDirectory, DeleteFile, GetFiles, GetDirectories y WriteContents.

GraphicsWindow (aplicación de gráficos):
Apariencia de AddTriangle, FillTriangle, RotateShape, CanResize, Left, Top y GetColorFromRGB.

Texto (Texto):
Apariencia de las funciones Append, GetCharater y GetCharacterCode.

TextWindow (aplicación de consola):
Aparece el comando Borrar para borrar la pantalla y los comandos Izquierda y Superior.

Tortuga:
Apariencia de los controles de ángulo (da el ángulo de la Tortuga) así como X e Y (da la posición de la Tortuga).

Paso 3/5: Descubrir las FORMAS

Uno de los conceptos esenciales para crear juegos en Small Basic son las FORMAS (o formas). Es algo parecido a la noción de «sprites», es decir, objetos que se animan y se mueven en la pantalla.

Las formas son formas geométricas: Rectángulo, Elipse, Triángulo y Línea.

Primero, estas formas pueden ser dibujadas (comandos de Dibujar) y rellenadas (comandos de Rellenar).

Preparación del color
GraphicsWindow.BackgroundColor = «Negro»
GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor()
Nos aseguramos de que el color del dibujo sea diferente del color de fondo.
Mientras que GraphicsWindow.PenColor = GraphicsWindow.BackgroundColor
GraphicsWindow.PenColor = GraphicsWindow.GetRandomColor()
EndWhile
Estamos preparando la ventana
GraphicsWindow.Top = 10
GraphicsWindow.izquierda = 10
H = Altura del escritorio – 100
GraphicsWindow.Width = H
GraphicsWindow.altura = H
«Dibujamos
H = H/2
Para i = 1 a H Paso 4
GraphicsWindow.DrawEllipse(H – i, H – i, H – i, i * 2, i * 2)
FinPara

Pero también pueden asignarse a variables y desplazarse en la pantalla mediante la función MoveShape:

GraphicsWindow.Top = 10
GraphicsWindow.izquierda = 10
GraphicsWindow.Width = 600
GraphicsWindow.altura = 400
Preparación de formas y denominación de las formas
GraphicsWindow.PenColor = «Blue»
Línea = GraphicsWindow.AddLine(10,10,100,10)
GraphicsWindow.PenColor = «Yellow»
Rect = GraphicsWindow.AddRectangle(20,50)
GraphicsWindow.PenColor = «Red»
Círculo = GraphicsWindow.AddEllipse(30,50)
GraphicsWindow.PenColor = «Green»
Trian = GraphicsWindow.AddTriangle(10,200,60,60,200,200,200,35,250)
Para i=1 a 200
GraphicsWindow.MoveShape(Línea, i+1,i+1)
GraphicsWindow.MoveShape(Rect, i+2, 50)
GraphicsWindow.MoveShape(Círculo, 30, i+2)
GraphicsWindow.MoveShape(Trian, 10, 200-i)
Programa de retardo(20)
FinPara

Paso 4/5: Animación de formas

El control GraphicsWindow incluye varias funciones para gestionar las formas.

Como vimos en el ejemplo anterior, los comandos Add permiten asociar una variable con una forma geométrica. En Small Basic a esto se le llama «nombrar» una forma.
Por ejemplo:
Trian1 = GraphicsWindow.AddTriangle(50,0,100,100,100,100,0,100)
define un triángulo llamado Trian1

El comando MoveShape se utiliza para posicionar la forma definida en las coordenadas especificadas.
Por ejemplo:
GraphicsWindow.MoveShape(Trian1,200,200)
posiciona el triángulo llamado Trian1 (y define arriba) en la posición x=200, y=200 en la pantalla.

El comando AnimateShape anima automáticamente una forma. No se trata realmente de una animación, sino más bien de un movimiento fluido al especificar un destino y el tiempo que tarda en llegar a su destino.
Por ejemplo:
GraphicsWindow.MoveShape(Trian1,0,0,0,1000)
anima el triángulo moviéndolo a la posición[0.0] en 1 segundo (1000 milisegundos).

El control RotateShape rota la forma sobre sí mismo.
Por ejemplo, la siguiente secuencia imprime un desplazamiento y rotación al triángulo Trian1:
Para i = 0 a 360
GráficosVentana.MoveShape(Trian1,i,i,i,i)
GráficosVentanaRotarForma(Trian1,i)
Programa de retardo(10)
FinPara

Los comandos GetLeftOfShape y GetTopOfShape dan las coordenadas de la esquina superior izquierda de un rectángulo que rodearía la forma. Se utiliza para la detección de colisiones de formas.
Por ejemplo……
CollX = GraphicsWindow.GetLeftOfShape(Trian1)

Finalmente, el comando RemoveShape le permite eliminar una forma de la pantalla. Esto es muy útil en un juego para eliminar de la pantalla a un enemigo que ha sido destruido, por ejemplo.
Por ejemplo;
GraphicsWindow.RemoveShape(Trian1)
Elimina el objeto Trian1 de la pantalla.

El siguiente ejemplo muestra una bola y un triángulo en la pantalla para ilustrar cómo funcionan las diferentes funciones Shape:

inicializaciones
GraphicsWindow.MouseDown = OnClick
GraphicsWindow.Top = 10
GraphicsWindow.izquierda = 10
GraphicsWindow.Width = 600
GraphicsWindow.altura = 400

GraphicsWindow.pencolor=»Verde»
GraphicsWindow.BrushColor=»LightGreen»
Trian = GraphicsWindow.AddTriangle(50,0,100,100,100,100,0,100)

GraphicsWindow.pencolor=»Azul»
GraphicsWindow.BrushColor=»LightBlue»
Bola = GraphicsWindow.AddEllipse(50,50)

XT = 0
XB = 0
YB = 0
DeltaXT = 1
ÁnguloT = 1
DeltaXB = 1
DeltaYB = 1

GW = GraphicsWindow.Width
GH = GraphicsWindow.Height

LAZO PRINCIPAL» LAZO PRINCIPAL
Hebilla:
AnimeLeTriángulo()
AnimeLeCercle()
DetecteColisión()
GraphicsWindow.MoveShape(Trian,XT,200)
GráficosVentana.RotarForma(Trian,AngleT)
GraphicsWindow.MoveShape(Ball,XB,YB)
Programa de Retraso(5)
Hebilla Goto

Gestión de triángulos

Sub AnimeLeTriángulo
XT = XT + DeltaXT
Si (XT >= GW-50 o XT DeltaXT = -DeltaXT
Endif
ÁnguloT = ÁnguloT+1
Si el ángulo > 360 entonces
ÁnguloT = 1
FinSi
FinSub

Gestión de Círculos

Sub AnimeCircle
XB = XB + DeltaXB
Si (XB >= GW-50 o XB DeltaXB = -DeltaXB
Endif
YB = YB + DeltaYB
Si (YB >= GH-50 o YB DeltaYB = -DeltaYB
Endif
FinSub

Colisión simplificada
Colisión de subdetección
collX = GraphicsWindow.GetLeftOfShape(Trian)
collY = GraphicsWindow.GetTopOfShape(Trian)
Si (XB+50 >= collX y XB = collY YB deltaYB = -DeltaYB
FinSi
FinSub

Nos vamos cuando el usuario hace clic

Sub OnCLick
Fin de programa()
FinSub

Paso 5/5: Ejemplos de juegos en Small Basic

Los usuarios más activos de Small Basic publican las fuentes de sus aplicaciones en el foro de Small Basic. En particular, hay algunos ejemplos de juegos que pueden inspirarte y ayudarte a crear tus propios juegos:

* El juego de la vida de Christian Jacob (busque «GOL.SB» en esta página)

* Juego de apuntar y disparar de McLeod (busque «-SHOOT» en esta página)

* Versiones mejoradas de PONG (buscar «B0ff1n» y «Dan Do» en esta página)

* El juego de mármol Nidzo (busque «Nidzo» en esta página)

* Un juego de Serpientes (SNAKE clone) que encontrarás siguiendo este enlace.

No Responses

Write a response