Carregar apresentação
A apresentação está carregando. Por favor, espere
2
Estrutura de Dados André Augusto Nogueira Alves
Colaborador: Alexandre Tolstenko Nogueira
3
Papel e caneta na mão! Revisão
4
Revisão Diferença entre IDE, Framework, Engine e SDK;
Estrutura básica de um game em XNA; Rectangle vs Vector2; Desenhar uma imagem na tela; Desenhar um texto na tela; Colisão com com instersect.
5
Objetivos
6
Objetivos Entender um pouco de OO (Orientação Objeto);
Apresentação de algumas das estruturas de dados mais simples; Um novo jogo ao fim da aula, mas dessa usando os tópicos citados acima;
7
Orientação Objeto e EstRUTURA DE DADOS
8
Teoria Prática
9
Teoria POO História Conceitos Objetos PongOO Interação Listas Árvores Snake Apêndice Campeonatos
10
História Final da década de 60;
Possibilitar compartilhamento de códigos e desenvolvimento mais rápido;
11
Conceitos Desvendando os mistérios da Classe;
Abstração: Abstração é o processo ou resultado de generalização por redução do conteúdo da informação de um conceito ou fenômeno observável; Classe x Objeto; Alocar memória (construtores); DNA(assinatura da classe) x Humano(objeto);
12
Objetos Alta coesão, baixo acoplamento;
Tentativa de representar o mundo do ponto de vista humano de forma computacional; Semelhanças com Structs; Visibilidade; Criando um objeto;
13
Pong OO - Bola
14
Pong OO - Raquete
15
Interação – Acoplamento(?)
Juntando os objetos; Montando uma colisão;
16
Teoria POO Estruturas Enum Vetor Listas Árvores Snake Apêndice Campeonatos
17
Enum Diferenças entre C e C#; Usos do Enum;
18
Vetor Prós e Contras;
19
Teoria POO Estruturas Enum Vetor Listas List LinkedList Pilha Fila Árvores Snake Apêndice Campeonatos
20
Lista Exemplos de usos;
21
List List<Tipo> myList; Utilidade: agregar coisas sem garantir sequência
22
Lista Ligada LinkedList<Tipo> listTipo; LinkedListNode<Tipo> llnTipo; Uso: llnTipo.Next, llnTipo.Previous Utilidade: agregar coisas com com sequência.
23
Pilha Stack<tipo> stkTipo; Uso: stkTipo.Pop, stkTipo.Push Utilidade: Armazenar coisas temporariamente (ex. Gerência de tela, recursão)
24
Fila Queue<tipo> qTipo; Uso: qTipo.Pop, qTipo.Push Utilidade: guardar coisas enquanto elas esperam para serem executadas. Ex:
25
Teoria POO Estruturas Enum Vetor Listas Árvores Binárias Quadtree Octree BSP Snake Apêndice Campeonatos
26
Árvores Definição Árvore Binária; Quadtree (Octree); BSP;
27
... Lista de outras estruturas Splaytree Btree Red-black tree Hash table Grafos Dicionários
28
Estrutura de dados e classes
Classes que incluem vários objetos;
29
Modelagem Computacional
Teoria Classe vs Struct Listas Árvores Snake História Mecânica de jogo Modelagem Computacional Códigos Apêndice Campeonatos
30
Prática Prática: Desafio: Programar um SNAKE;
Opcional: transformar o Pong em um Breakout; Desafio: Mapear uma imagem usando uma quadtree; Defender;
31
Snake Time Jogo do dia: Snake; Programado usando OO não estruturada;
32
Análise de Jogo Elementos? Como anda? Como interage?
33
Mecânica de jogo A cobra tem que “comer” os pontos que aparecem na tela; A cada item comido, a cobra cresce de tamanho; A cobra anda somente para as direções Up, Left, Right e Down;
34
Modelagem Computacional
Classes a serem criadas; Métodos de cada uma dessas classes; Interação entre elas;
35
Teoria Classe vs Struct Listas Árvores Snake Apêndice Campeonatos XNA Challenge SBgames Arena Info Dreambuild Imagine Cup
36
Struct public struct RectangleFloatS { } public float X, Y;
public RectangleFloatS(float X, float Y) { this.X = X; this.Y = Y;} public Anda(Direcao dir) {switch(dir){ case Direcao.Up: //anda pra cima break; ...}} }
37
Class public class RectangleFloatC { } public float X, Y;
public RectangleFloatC(float X, float Y) { this.X = X; this.Y = Y;} public Anda(Direcao dir) {switch(dir){ case Direcao.Up: //anda pra cima break; ...}} }
38
Diferenças List<RectangleFloatS> rectStructList;
List<RectangleFloatC> rectObjList; ... foreach(RectangleFloatS rect in rectStructList) rect.X += valor; // nao altera X do rectStructList foreach(RectangleFloatR rect in rectObjList) Rect.X += valor; // altera X do recObjList
39
Agradecimento spriteBatch.DrawString( Arial, "Obrigado Pela Atenção!",
positionVect, Color.Black);
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.