La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Clase Nº1 Métodos, texturas, rectángulos. Introduccion ¿Que vamos a aprender en el taller? Programar juegos Un poco de historia…

Presentaciones similares


Presentación del tema: "Clase Nº1 Métodos, texturas, rectángulos. Introduccion ¿Que vamos a aprender en el taller? Programar juegos Un poco de historia…"— Transcripción de la presentación:

1 Clase Nº1 Métodos, texturas, rectángulos

2 Introduccion ¿Que vamos a aprender en el taller? Programar juegos Un poco de historia…

3 1950’s En 1952 sale el primer videojuego conocido, llamado OXO. Es un juego de TaTeTi. Se demostro como una aplicación de posible interaccion entre usuario y computadora. En 1958 sale el primer videojuego con gráficos, predecesor al Pong – es llamado Tennis for Two.

4 1960’s Sale el primer videojuego que logra tener un mínimo grado de popularidad. Es llamado Spacewar! y es un juego PvP en el que cada jugador debe destruir al otro manejando una nave espacial

5 1970’s Nacen los fichines. Salen como alternativa a las maquinas de flipper que eran muy populares en el momento. Tienen un éxito considerable y funcionaban teniendo a una computadora potente manejando a 8 maquinas clientes simultáneamente.

6 1970’s Sale la primer consola de sobremesa, llamada Magnavox Odyssey. Fue una innovación debido al bajo precio de $100. No tenia ni CPU ni RAM – solo transistores, resistencias y capacitores.

7 El disparo de las consolas Luego del nacimiento de la Odyssey, y la innovación de poder tener una consola que corra cualquier cantidad de juegos, comenzaron a evolucionar tanto las consolas como los juegos

8 Evolución de las consolas

9 ¿Qué es XNA? XNA es un conjunto de herramientas para desarrollar principalmente juegos (es una API) Con XNA, se puede crear un juego para XBOX 360, PC y Windows Phone 7, usando código similar entre ellos Sin mucho problema, se puede insertar código de Silverlight en XNA Esta muy bueno

10 Haciendo un juego en 2D Los objetos son representados en la pantalla por su textura correspondiente La posición del objeto que contiene a esta textura, esta definida por un X y un Y que representan la posición en la pantalla

11 Texture2D Representa una textura en dos dimensiones Una textura es una imagen que se usa para cubrir una superficie de un objeto virtual Un texel es la mínima representación de una textura

12 Texture2D Ejemplo: Texture2D texMario; texMario = Content.Load ("./mario"); (…) spriteBatch.Draw(texMario, posicion, Color.White);

13 Vector2 Un Vector2 es una estructura, que define una posición en un espacio de dos dimensiones X, Y Se puede usar al Vector2 para definir la posición de cualquier tipo de objeto gráfico Texture2D Letras (tipografía) Etcétera Se puede usar al Vector2, modificándolo para mover a un objeto

14 Vector2 Ejemplo: // Declaramos e inicializamos el vector… Vector2 vector = new Vector2(50,50); (…) // Y luego lo dibujamos… spriteBatch.Draw(texMario, vector, Color.White);

15 Rectangle Un Rectangle es una estructura que define un rectángulo El rectángulo contiene cuatro propiedades Tamaño (en X e Y) Posición (en X e Y) El rectángulo nos sirve, entre otras cosas, para Definir la posición de un objeto gráfico (como un Vector2) Definir el tamaño de este objeto Saber cuando un rectángulo colisiona con otro

16 Rectangle La linea roja sería el rectangle

17 Arrancando motores La interfaz de XNA está dividida en varios métodos. Estos son: Initialize LoadContent UnloadContent (opcional) Update Draw También se especifican dos objetos, el GraphicsDeviceManager y el SpriteBatch

18 Constructor En el constructor del programa se inicializa el GraphicsDeviceManager y se setea la ruta donde está el contenido de juego public Game1() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; }

19 GDM y SB en síntesis El GraphicsDeviceManager nos permite gestionar las operaciones con la tarjeta gráfica El SpriteBatch nos permite dibujar objetos en la pantalla (texturas, tipografias) public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; SpriteBatch spriteBatch;

20 LoadContent y UnloadContent El LoadContent nos permite cargar elementos a la memoria. También construye el manejador de texturas El Unload, nos permite descargar a los elementos ya cargados protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); // Ejemplo texMario = Content.Load ("./mario"); }

21 Initialize En este método podemos inicializar todo lo que queramos para cuando arranque el programa, esto puede ser, contadores de vida, posiciones de vectores, etc. protected override void Initialize() { // Ejemplo vidas = 5; posicionPersonaje = new Vector2(50, 250); base.Initialize(); }

22 Update Se repite todo el tiempo, hasta que se cierra el programa. En él, volcamos toda la lógica del juego Con lógica me refiero a Movimientos de personajes (jugables y no jugables) Interacciones entre objetos (colisiones) Etcétera Este es el método en el que van a escribir la mayoría del código

23 Update protected override void Update(GameTime gameTime) { KeyboardState keyboardState = Keyboard.GetState(); if (keyboardState.IsKeyDown(Keys.Left)) { recMario.X -= 5; } else if (keyboardState.IsKeyDown(Keys.Right)) { recMario.X += 5; } base.Update(gameTime); }

24 Draw Se repite todo el tiempo, al igual que el Update, aunque con menos frecuencia que este Por cada repetición, hay un fotograma En el, utilizamos al spriteBatch para dibujar todo lo que necesitemos Texturas Modelos 3D Letras (tipografía)

25 Draw protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); spriteBatch.Begin(); spriteBatch.Draw(texMario, recMario, Color.White); spriteBatch.DrawString(font, "Lives: " + vidas, new Vector2(50, 100), Color.White); spriteBatch.End(); base.Draw(gameTime); }

26 Usando el teclado Para usar el teclado, desde Update necesitamos obtener el estado en el que esta Este estado nos sirve para saber si hay alguna tecla presionada o levantada en el momento de la ejecución El estado del teclado se obtiene utilizando la función Keyboard.GetState() Una vez que tenemos el estado del teclado, obtenemos el estado de las teclas individualmente utilizando la siguiente función booleana: keyboardState.IsKeyDown/Up(Keys.Tecla)

27 Usando el teclado Ejemplo: KeyboardState keyboardState = Keyboard.GetState(); if (keyboardState.IsKeyDown(Keys.Left)) { recMario.X -= 5; }

28 Ayuda online http://www.xna.com/ http://xnacommunity.codeplex.com/ http://www.google.com/ http://www.riemers.com/ jbursztyn@ort.edu.ar


Descargar ppt "Clase Nº1 Métodos, texturas, rectángulos. Introduccion ¿Que vamos a aprender en el taller? Programar juegos Un poco de historia…"

Presentaciones similares


Anuncios Google