xna 09 - escenarios

Anuncio
Creando
escenarios
en
XNA
Autora:
María
Concepción
Villar
Cuesta
Un
juego
basado
en
mosaicos,
en
inglés
Tile‐based
game,
usa
!les
como
parte
del
ambiente
gráfico.
Un
!le
es
una
pequeña
figura
que
repeDda
y/o
unida
a
otras,
pueden
formar
un
escenario.
Con
los
!les
se
pueden
crear
grandes
escenarios
opDmizando
el
espacio
ocupado
por
las
imágenes.
Videojuego
Final
Fantasy
VI
(1994),
desarrollado
por
Square
Enix.
Tile:
parte
gráfica
que
puede
uDlizarse
para
completar
un
escenario
o
background
del
juego.
Los
!les
son:
–  imágenes
diferentes
y
–  del
mismo
tamaño.
Tileset:
Conjunto
de
!les
organizados
en
un
arreglo,
Tpicamente
de
dos
dimensiones.
Representa
la
combinación
que
forma
los
escenarios
o
lugares
del
juego
(ej.:
laberintos,
ciudades,
paisajes,
etc.)
Los
4
!les
del
ejemplo:
1
2
3
4
Resultado:
Tileset
(4*10)
4
4
4
4
4
4
4
4
4
4
3
3
3
3
3
3
3
3
3
3
2
2
2
2
2
2
2
2
2
2
1
1
1
1
1
1
1
1
1
1
Imágenes
tomadas
de:
h8p://www.gp32spain.com/foros/blog.php?b=1991
•  Este
escenario
sirve
de
base
para
el
juego.
Imágenes
tomadas
de:
h8p://www.gp32spain.com/foros/blog.php?b=1991
PANTALLA
El
escenario
puede
ser
más
grande
que
la
pantalla.
Texture2D
uno,dos,tres,cuatro;
int[,]
mapa;
Crearemos
este
escenario
mapa = new int[4, 10]
{
{4,4,4,4,4,4,4,4,4,4},
{3,3,3,3,3,3,3,3,3,3},
{2,2,2,2,2,2,2,2,2,2},
{1,1,1,1,1,1,1,1,1,1},
};
uno = Content.Load<Texture2D>("1");
dos = Content.Load<Texture2D>("2");
tres = Content.Load <Texture2D >("3");
cuatro = Content.Load<Texture2D>("4");
int x = 0, y = 0;
int alto = graphics.GraphicsDevice.Viewport.Height /4;
int ancho = graphics.GraphicsDevice.Viewport.Width / 10;
spriteBatch.Begin();
for (int r = 0; r < mapa.GetLength(0); r++)
{ for (int c = 0; c < mapa.GetLength(1); c++)
{
if (mapa[r, c] == 1)
spriteBatch.Draw(uno, new Rectangle(x, y, ancho,alto),
Color.White);
else if (mapa[r, c] == 2)
spriteBatch.Draw(dos, new Rectangle(x, y, ancho, alto),
Color.White);
else if (mapa[r, c] == 3
spriteBatch.Draw(tres, new Rectangle(x,y, ancho,alto),
Color.White);
else
spriteBatch.Draw(cuatro, new Rectangle(x,y, ancho,alto),
Color.White);
x = x + ancho;
}
x = 0;
y = y + alto
}
spriteBatch.End();
Descargar