SlideShare una empresa de Scribd logo
Programación 3D
Agenda
 Ver como una clase está hecha de métodos y datos.
 Mostrar como los juegos son clases en C#.
 Describir como los métodos Draw y Update comparten
los datos.
 La diferencia entre variables locales en bloques y las
variables miembro en clase.
 Utilizar operadores para actualizar los valores de
colores cuando un juego que está en ejecución.
 Mostrar el “Overflow” de variables.
En el presente ejemplo del método Draw configura y recrea un color.
Nos gustaría además crear un programa que cambie el color todo el
tiempo.
Para poder hacer esto, es necesario comprender cómo trabajan los
juegos
protected override void Draw(GameTime gameTime)
{
Color backgroundColor;
backgroundColor = new Color(50, 70, 70);
GraphicsDevice.Clear(backgroundColor);
base.Draw(gameTime);
}
Juegos y las clases
 En C# los programas son creados por clases.
 Una clase es una colección de comportamientos
(métodos) y datos (variable).
 Los diseñadores de XNA crear una clase llamada Game
para aparecer después del juego.
 Los juegos se crean basándose en esta clase.
•Una clase contiene juntos métodos y datos.
•Las clases pueden ser muy grandes.
•Sus nombres reflejan de manera general su función.
• Game ese nombre para la clase en XNA utilizada para representar un
programa de juego.
•VS crea una clase de inicio “Game” , la cual es creada cuando
hacemos un nuevo proyecto del tipo juego.
•El juego se crea codificando esta clase.
Como se ejecuta el juego
el método Update
cambia los datos del
juego cada vez que el
reloj avanza
Update
Datos
del juego
Draw
Clase:Game1
Como se ejecuta el juego
el método Draw y lee
los datos del juego y
los dibuja en pantalla
Update
Datos
del juego
Draw
Clase:Game1
•Los métodos Draw y Update en un juego XNA son llamados 60 veces
por segundo.
• El Framework XNA lo hace automáticamente.
• Esto pasa en los juegos, es totalmente imperceptible.
•Si el método Update cambia los datos cada vez que es llamado, el
juego dan la apariencia de movimiento.
•Para crear un fuego es necesario codificar los métodos Update y Draw
El programa como una clase
 Los datos del juego y los métodos Draw
y Update son conjuntados dentro de C#
en una construcción a la que llamamos
clase.
 Una clase es una unidad fundamental
de un programa C#.
 Esta contiene datos (variables) y
comportamientos (metros).
 La clase que XNA crea para un nuevo
juego está localizado dentro de un
archivo llamado Game1.cs
Update
Game
Data
Draw
Game1.cs
•El mundo para un juego está compuesto por valores de rojo,
azul y verdecomo para los colores que serán mostrados..
•Es posible almacenar estos valores en variables de tipo byte,
conocemos que un tipo Color puede ser construido tres valores
del tipo byte.
•Estas variables conectadas como cualquier otra, con un hombre
para el tipo seguido por el identificador.
byte redIntensity;
byte blueIntensity;
byte greenIntensity;
Almacenar valores de datos en la
memoria
 Cuando un programa se ejecuta las
variables que éste utiliza como son
vaciadas a localizaciones particulares
de memoria.
 El sistema de tiempo de ejecución
para el programa tiene el cuidado de
donde están actualmente
almacenados estos datos.
 Todos los temas son almacenados en
una manera parecida a esta
Game
Data
class Game1
{
byte redIntensity;
byte blueIntensity;
byte greenIntensity;
protected override void Draw(GameTime gameTime)
{
}
protected override void Update gameTime)
{
}
}
Utilizando los valores dentro del
método Draw
Game
Data
class Game1
{
byte redIntensity;
byte blueIntensity;
byte greenIntensity;
protected override void Draw(GameTime gameTime)
{
Color backgroundColor;
backgroundColor = new Color (redIntensity,
blueIntensity, greenIntensity );
GraphicsDevice.Clear(backgroundColor);
}
}
•Pensemos en una clase como una oficina
• conEste contiene personas que desempeñan los métodos y
escritorios con ítem se almacenan los datos de los miembros.
•Esto además contiene micrófonos para llamar un método
Variables locales
 Crear una variable local llamada backgroundColor
dentro del método Update
 Este es utilizado para almacenar el color con el cual se
llena la pantalla.
 Esta variable es local para el método Update, y no
puedo ser utilizada en ningún otro lugar.
protected override void Draw(GameTime gameTime)
{
Color backgroundColor;
backgroundColor = new Color (redIntensity,
blueIntensity, greenIntensity );
GraphicsDevice.Clear(backgroundColor);
}
•Esta versión del juego
utiliza variables del
mundo para almacenar los
colores que serán
mostrados.
•Note que en C# un
miembro de un dato tipo
byte es inicializado en
“cero” cuando es creado
Actualizar los colores
 Hasta este momento las pantallas color negra.
 Esto es porque los valores iniciales, todos son cero.
 Nos planteamos el caso en el cual la pantalla debe de
cambiar de color progresivamente, conforme pase el
tiempo.
 Podemos utilizar sentencias de adición en el
métodoUpdate , del cual incrementa los valores para
los colores
•VS siempre va a crear un método vacío llamado Update.
•Para lograr lo que nos propusimos anteriormente, el código
deberá ser colocado dentro de este mes
protected override void Update(GameTime gameTime)
{
// Allows the game to exit
if (GamePad.GetState(PlayerIndex.One).
Buttons.Back == ButtonState.Pressed)
this.Exit();
// TODO: Add your Update logic here
base.Update(gameTime);
}
Salir del método Update
 En esta primera parte del método se verifica que el
botón Back se esté presionando.
 Si el botón ha sido presionado se sale del juego.
protected override void Update(GameTime gameTime)
{
// Allows the game to exit
if (GamePad.GetState(PlayerIndex.One).
Buttons.Back == ButtonState.Pressed)
this.Exit();
// TODO: Add your Update logic here
base.Update(gameTime);
}
•Esta versión del método Update incrementa la intensidad para
los colores rojo, verde y azul.
•++ es un operador que incrementa el valor de una variable en
uno
protected override void Update(GameTime gameTime)
{
// Increase the intensity values
redIntensity++;
blueIntensity++;
greenIntensity++;
base.Update(gameTime);
}
Demostración
 En esta versión del
juego, se actualiza
la intensidad de los
valores dentro del
metro Update.
 Esto causa que la
pantalla cambie
progresivamente.
Cada ítem es almacenado
dentro de una localización de
memoria de un tipo en
particular.
Un tipo byt de es almacenado
en una singular localización de
8 bits.
Esto quiere decir que solamente
se pueden almacenar valores
entre cero y 255.
Cuando el programa intenta
colocar el valor de 250 dentro de
la variable, el valor es regresado
a cero
Overflow de las variables
 El overflow ocurre porque un programador utiliza un
tipo de datos en particular de una manera incorrecta.
 Note que el programa por sí mismos no mostrará se
produzca.
 Este es el peor tipo de error en tiempo de ejecución.
 Es claro que la computadora no sabe que algo extraño
está ocurriendo.
 Es necesario tener cuidado para que este tipo de
problemas no ocurran.
• Un programa XNA es actualmente una clase en C# que
almacena los datos del mundo del juego, y los métodos Draw y
Update.
•Los datos del el mundo están hechos de variables las cuales
son declaradas como miembros de las clases y éstas pueden ser
utilizadas por todos los métodos.
•El método Draw dibuja el mundo, y el método Update lo
actualiza 60 veces por segundo.
•Los programas en C# pueden además utilizar variables
declaradas dentro de bloques particulares y ser utilizado
solamente dentro de ellos.
•Todas las variables son más creadas dentro de localizaciones de
memoria
Verdadero o falso
 Un juego XNA es almacenado dentro de una clase en C#
 En XNA, el método Update es llamado siempre antes del
método Draw.
 Un dato miembro es similar a una oficina.
 El mundo del juego es almacenado dentro de variables
locales.
 El tipo de datos byte es almacenado en 8 bits de memoria.
 Un programa se tiene automáticamente cuando una
variable causa un Overflow.
Verdadero o falso
 Un juego XNA es almacenado dentro de una clase en C#
 En XNA, el método Update es llamado siempre antes del
método Draw.
 Un dato miembro es similar a una oficina.
 El mundo del juego es almacenado dentro de variables
locales.
 El tipo de datos byte es almacenado en 8 bits de memoria.
 Un programa se tiene automáticamente cuando una
variable causa un Overflow.
Verdadero o falso
 Un juego XNA es almacenado dentro de una clase en C#
 En XNA, el método Update es llamado siempre antes del
método Draw.
 Un dato miembro es similar a una oficina.
 El mundo del juego es almacenado dentro de variables
locales.
 El tipo de datos byte es almacenado en 8 bits de memoria.
 Un programa se tiene automáticamente cuando una
variable causa un Overflow.
Verdadero o falso
 Un juego XNA es almacenado dentro de una clase en C#
 En XNA, el método Update es llamado siempre antes del
método Draw.
 Un dato miembro es similar a una oficina.
 El mundo del juego es almacenado dentro de variables
locales.
 El tipo de datos byte es almacenado en 8 bits de memoria.
 Un programa se tiene automáticamente cuando una
variable causa un Overflow.
Verdadero o falso
 Un juego XNA es almacenado dentro de una clase en C#
 En XNA, el método Update es llamado siempre antes del
método Draw.
 Un dato miembro es similar a una oficina.
 El mundo del juego es almacenado dentro de variables
locales.
 El tipo de datos byte es almacenado en 8 bits de memoria.
 Un programa se tiene automáticamente cuando una
variable causa un Overflow.
Verdadero o falso
 Un juego XNA es almacenado dentro de una clase en C#
 En XNA, el método Update es llamado siempre antes del
método Draw.
 Un dato miembro es similar a una oficina.
 El mundo del juego es almacenado dentro de variables
locales.
 El tipo de datos byte es almacenado en 8 bits de memoria.
 Un programa se tiene automáticamente cuando una
variable causa un Overflow.

Más contenido relacionado

PDF
Fundamentos de Analisi y Diseño de Algoritmos FADA
DOCX
PPTX
Fundamentos de GIt y Github
PPTX
Programacion juegos 3d combinada
PDF
Curso mysql modificado
PDF
Curso node.js
PDF
Intro Pygame Capitulo 6
Fundamentos de Analisi y Diseño de Algoritmos FADA
Fundamentos de GIt y Github
Programacion juegos 3d combinada
Curso mysql modificado
Curso node.js
Intro Pygame Capitulo 6

Similar a Presentacion05 (20)

PDF
Computación 2 c++
PDF
Computación 2
PPTX
Xna game studio presentación 01
PPTX
Presemtacion1110
PPTX
Presemtacion1110
PPT
PDF
Computación 2 c++
PPTX
Presentacion04
PPTX
Presentacion04
PPT
PPTX
Presentacion610
PPTX
Presentacion610
PDF
Computación 2
PDF
Computación 2 sept 2012
PDF
Computación 2 sept 2012
PDF
Computación sb
PPTX
Arenas Camacho-Practica web sesión 8.pptx
PDF
Fundamentos de programacion
PDF
Greenfoot 8
PDF
Jf 3 8_sg_esp(2)(3)
Computación 2 c++
Computación 2
Xna game studio presentación 01
Presemtacion1110
Presemtacion1110
Computación 2 c++
Presentacion04
Presentacion04
Presentacion610
Presentacion610
Computación 2
Computación 2 sept 2012
Computación 2 sept 2012
Computación sb
Arenas Camacho-Practica web sesión 8.pptx
Fundamentos de programacion
Greenfoot 8
Jf 3 8_sg_esp(2)(3)
Publicidad

Más de Titiushko Jazz (20)

PPTX
Unidad vii esp parte 3 clase de inteligencia de negocios (datawarehouse)
PPTX
Unidad vii esp parte 3 clase de datawarehouse ( ing. doño)
PPTX
Unidad vii esp parte 2 introduccion a data warehouse y datamining
PPTX
Unidad vi esp parte 2 procesimientos en plsql y transact sql
PPTX
Unidad ii esp parte 2
PPTX
Unidad ii esp parte 1
PPTX
Unidad i esp parte 2
PPTX
Unidad i esp parte 1
PPTX
Tarea pronosticos eily
PPTX
Sociedades limitadas
PPTX
Qué es un proyecto
PPTX
Proyecto teórico práctico
PPTX
Presentacion1630
PPTX
Presentacion1410
PPTX
Presentacion1310
PPTX
Presentacion1210
PPTX
Presentacion1220
PPTX
Presentacion1001
PPTX
Presentacion810
Unidad vii esp parte 3 clase de inteligencia de negocios (datawarehouse)
Unidad vii esp parte 3 clase de datawarehouse ( ing. doño)
Unidad vii esp parte 2 introduccion a data warehouse y datamining
Unidad vi esp parte 2 procesimientos en plsql y transact sql
Unidad ii esp parte 2
Unidad ii esp parte 1
Unidad i esp parte 2
Unidad i esp parte 1
Tarea pronosticos eily
Sociedades limitadas
Qué es un proyecto
Proyecto teórico práctico
Presentacion1630
Presentacion1410
Presentacion1310
Presentacion1210
Presentacion1220
Presentacion1001
Presentacion810
Publicidad

Presentacion05

  • 2. Agenda  Ver como una clase está hecha de métodos y datos.  Mostrar como los juegos son clases en C#.  Describir como los métodos Draw y Update comparten los datos.  La diferencia entre variables locales en bloques y las variables miembro en clase.  Utilizar operadores para actualizar los valores de colores cuando un juego que está en ejecución.  Mostrar el “Overflow” de variables.
  • 3. En el presente ejemplo del método Draw configura y recrea un color. Nos gustaría además crear un programa que cambie el color todo el tiempo. Para poder hacer esto, es necesario comprender cómo trabajan los juegos protected override void Draw(GameTime gameTime) { Color backgroundColor; backgroundColor = new Color(50, 70, 70); GraphicsDevice.Clear(backgroundColor); base.Draw(gameTime); }
  • 4. Juegos y las clases  En C# los programas son creados por clases.  Una clase es una colección de comportamientos (métodos) y datos (variable).  Los diseñadores de XNA crear una clase llamada Game para aparecer después del juego.  Los juegos se crean basándose en esta clase.
  • 5. •Una clase contiene juntos métodos y datos. •Las clases pueden ser muy grandes. •Sus nombres reflejan de manera general su función. • Game ese nombre para la clase en XNA utilizada para representar un programa de juego. •VS crea una clase de inicio “Game” , la cual es creada cuando hacemos un nuevo proyecto del tipo juego. •El juego se crea codificando esta clase.
  • 6. Como se ejecuta el juego el método Update cambia los datos del juego cada vez que el reloj avanza Update Datos del juego Draw Clase:Game1
  • 7. Como se ejecuta el juego el método Draw y lee los datos del juego y los dibuja en pantalla Update Datos del juego Draw Clase:Game1
  • 8. •Los métodos Draw y Update en un juego XNA son llamados 60 veces por segundo. • El Framework XNA lo hace automáticamente. • Esto pasa en los juegos, es totalmente imperceptible. •Si el método Update cambia los datos cada vez que es llamado, el juego dan la apariencia de movimiento. •Para crear un fuego es necesario codificar los métodos Update y Draw
  • 9. El programa como una clase  Los datos del juego y los métodos Draw y Update son conjuntados dentro de C# en una construcción a la que llamamos clase.  Una clase es una unidad fundamental de un programa C#.  Esta contiene datos (variables) y comportamientos (metros).  La clase que XNA crea para un nuevo juego está localizado dentro de un archivo llamado Game1.cs Update Game Data Draw Game1.cs
  • 10. •El mundo para un juego está compuesto por valores de rojo, azul y verdecomo para los colores que serán mostrados.. •Es posible almacenar estos valores en variables de tipo byte, conocemos que un tipo Color puede ser construido tres valores del tipo byte. •Estas variables conectadas como cualquier otra, con un hombre para el tipo seguido por el identificador. byte redIntensity; byte blueIntensity; byte greenIntensity;
  • 11. Almacenar valores de datos en la memoria  Cuando un programa se ejecuta las variables que éste utiliza como son vaciadas a localizaciones particulares de memoria.  El sistema de tiempo de ejecución para el programa tiene el cuidado de donde están actualmente almacenados estos datos.  Todos los temas son almacenados en una manera parecida a esta
  • 12. Game Data class Game1 { byte redIntensity; byte blueIntensity; byte greenIntensity; protected override void Draw(GameTime gameTime) { } protected override void Update gameTime) { } }
  • 13. Utilizando los valores dentro del método Draw Game Data class Game1 { byte redIntensity; byte blueIntensity; byte greenIntensity; protected override void Draw(GameTime gameTime) { Color backgroundColor; backgroundColor = new Color (redIntensity, blueIntensity, greenIntensity ); GraphicsDevice.Clear(backgroundColor); } }
  • 14. •Pensemos en una clase como una oficina • conEste contiene personas que desempeñan los métodos y escritorios con ítem se almacenan los datos de los miembros. •Esto además contiene micrófonos para llamar un método
  • 15. Variables locales  Crear una variable local llamada backgroundColor dentro del método Update  Este es utilizado para almacenar el color con el cual se llena la pantalla.  Esta variable es local para el método Update, y no puedo ser utilizada en ningún otro lugar. protected override void Draw(GameTime gameTime) { Color backgroundColor; backgroundColor = new Color (redIntensity, blueIntensity, greenIntensity ); GraphicsDevice.Clear(backgroundColor); }
  • 16. •Esta versión del juego utiliza variables del mundo para almacenar los colores que serán mostrados. •Note que en C# un miembro de un dato tipo byte es inicializado en “cero” cuando es creado
  • 17. Actualizar los colores  Hasta este momento las pantallas color negra.  Esto es porque los valores iniciales, todos son cero.  Nos planteamos el caso en el cual la pantalla debe de cambiar de color progresivamente, conforme pase el tiempo.  Podemos utilizar sentencias de adición en el métodoUpdate , del cual incrementa los valores para los colores
  • 18. •VS siempre va a crear un método vacío llamado Update. •Para lograr lo que nos propusimos anteriormente, el código deberá ser colocado dentro de este mes protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One). Buttons.Back == ButtonState.Pressed) this.Exit(); // TODO: Add your Update logic here base.Update(gameTime); }
  • 19. Salir del método Update  En esta primera parte del método se verifica que el botón Back se esté presionando.  Si el botón ha sido presionado se sale del juego. protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One). Buttons.Back == ButtonState.Pressed) this.Exit(); // TODO: Add your Update logic here base.Update(gameTime); }
  • 20. •Esta versión del método Update incrementa la intensidad para los colores rojo, verde y azul. •++ es un operador que incrementa el valor de una variable en uno protected override void Update(GameTime gameTime) { // Increase the intensity values redIntensity++; blueIntensity++; greenIntensity++; base.Update(gameTime); }
  • 21. Demostración  En esta versión del juego, se actualiza la intensidad de los valores dentro del metro Update.  Esto causa que la pantalla cambie progresivamente.
  • 22. Cada ítem es almacenado dentro de una localización de memoria de un tipo en particular. Un tipo byt de es almacenado en una singular localización de 8 bits. Esto quiere decir que solamente se pueden almacenar valores entre cero y 255. Cuando el programa intenta colocar el valor de 250 dentro de la variable, el valor es regresado a cero
  • 23. Overflow de las variables  El overflow ocurre porque un programador utiliza un tipo de datos en particular de una manera incorrecta.  Note que el programa por sí mismos no mostrará se produzca.  Este es el peor tipo de error en tiempo de ejecución.  Es claro que la computadora no sabe que algo extraño está ocurriendo.  Es necesario tener cuidado para que este tipo de problemas no ocurran.
  • 24. • Un programa XNA es actualmente una clase en C# que almacena los datos del mundo del juego, y los métodos Draw y Update. •Los datos del el mundo están hechos de variables las cuales son declaradas como miembros de las clases y éstas pueden ser utilizadas por todos los métodos. •El método Draw dibuja el mundo, y el método Update lo actualiza 60 veces por segundo. •Los programas en C# pueden además utilizar variables declaradas dentro de bloques particulares y ser utilizado solamente dentro de ellos. •Todas las variables son más creadas dentro de localizaciones de memoria
  • 25. Verdadero o falso  Un juego XNA es almacenado dentro de una clase en C#  En XNA, el método Update es llamado siempre antes del método Draw.  Un dato miembro es similar a una oficina.  El mundo del juego es almacenado dentro de variables locales.  El tipo de datos byte es almacenado en 8 bits de memoria.  Un programa se tiene automáticamente cuando una variable causa un Overflow.
  • 26. Verdadero o falso  Un juego XNA es almacenado dentro de una clase en C#  En XNA, el método Update es llamado siempre antes del método Draw.  Un dato miembro es similar a una oficina.  El mundo del juego es almacenado dentro de variables locales.  El tipo de datos byte es almacenado en 8 bits de memoria.  Un programa se tiene automáticamente cuando una variable causa un Overflow.
  • 27. Verdadero o falso  Un juego XNA es almacenado dentro de una clase en C#  En XNA, el método Update es llamado siempre antes del método Draw.  Un dato miembro es similar a una oficina.  El mundo del juego es almacenado dentro de variables locales.  El tipo de datos byte es almacenado en 8 bits de memoria.  Un programa se tiene automáticamente cuando una variable causa un Overflow.
  • 28. Verdadero o falso  Un juego XNA es almacenado dentro de una clase en C#  En XNA, el método Update es llamado siempre antes del método Draw.  Un dato miembro es similar a una oficina.  El mundo del juego es almacenado dentro de variables locales.  El tipo de datos byte es almacenado en 8 bits de memoria.  Un programa se tiene automáticamente cuando una variable causa un Overflow.
  • 29. Verdadero o falso  Un juego XNA es almacenado dentro de una clase en C#  En XNA, el método Update es llamado siempre antes del método Draw.  Un dato miembro es similar a una oficina.  El mundo del juego es almacenado dentro de variables locales.  El tipo de datos byte es almacenado en 8 bits de memoria.  Un programa se tiene automáticamente cuando una variable causa un Overflow.
  • 30. Verdadero o falso  Un juego XNA es almacenado dentro de una clase en C#  En XNA, el método Update es llamado siempre antes del método Draw.  Un dato miembro es similar a una oficina.  El mundo del juego es almacenado dentro de variables locales.  El tipo de datos byte es almacenado en 8 bits de memoria.  Un programa se tiene automáticamente cuando una variable causa un Overflow.