1. Trang chủ
  2. » Công Nghệ Thông Tin

Desenvolvimento de Jogos 2D com XNA doc

85 132 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Desenvolvimento de Jogos 2D com XNA
Tác giả Kleber de Oliveira Andrade
Trường học Universidade de São Paulo – USP
Chuyên ngành Engenharia de Sistemas e Controles
Thể loại Monografia
Năm xuất bản 2010
Thành phố São Paulo
Định dạng
Số trang 85
Dung lượng 7,47 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

• Bacharel em Ciência da Computação– Escola de Engenharia de Piracicaba EEP – Título: Um algoritmo evolutivo para adaptação dos NPCs em um jogo de ação.. • Mestrando em Engenharia Mecân

Trang 1

Desenvolvimento de Jogos 2D

com XNA

Kleber de Oliveira Andrade pdjkleber@gmail.com

Universidade de São Paulo – USP

Escola de Engenharia de São Carlos – EESC

Trang 2

• Bacharel em Ciência da Computação

– Escola de Engenharia de Piracicaba (EEP)

– Título: Um algoritmo evolutivo para adaptação dos NPCs em um

jogo de ação.

• Mestrando em Engenharia Mecânica

– Escola de Engenharia de São Carlos (USP/EESC)

– Título: Planejadores neurais para manobra de baliza de um

automóvel de passeio utilizando sensor laser, ultrassônicos e

visão artificial.

• Jogador a mais de 20 anos desde a época do Atari.

Trang 3

• Uma breve Introdução

• A Indústria de Jogos Digitais

• Visão sobre o XNA

• Conhecimentos básicos de XNA

• Revisão de Programação C#

Trang 5

1958: “Tennis for Two” jogo que funcionava em um osciloscópio (Willy Higinbotham)

1961: “Space Wars” jogo

desenvolvido no computador

PDP-1 por Steve Russel, o jogo

tinha 2Kb

Trang 7

God of War III

Qualidade gráfica evidência a evolução no desenvolvimento de jogos, assim como sua Inteligência Artificial.

Jogos que envolvem centenas de

profissionais das mais diversas

áreas, e altos orçamentos.

Trang 8

• A discussão não se restringe apenas à gráficos ou

Trang 11

• É uma das mais rentáveis do mundo

– Faturamentos de 2007 supera a indústria de

música e cinema juntos.

• Parece coisa de criança, mas não é

– 75% dos chefes de família jogam

– Média de idade de jogadores: 30 anos

– Média de idade de compradores: 37 anos

Trang 12

• Serious Game (Treinamento e Capacitação)

Trang 13

• Advergames (Propagandas)

1993 - Cool Spot (7-Up) 1983 - Pepsi Invaders

Trang 14

• Educacionais (Jogos cujo objetivo é ensinar)

Trang 15

• “God” games (Softwares Toys)

Black & White

Trang 16

• Criar jogos demanda muito conhecimento técnico.

• Acesso aos Kits de desenvolvimento

Trang 18

Xna Não é um Acrônimo

Trang 20

• Para desenvolver / jogar no PC

– Nenhum!

– Tudo através de ferramentas gratuitas (Visual C# Express Edition, XNA Game Studio e recursos da comunidade).

• Para desenvolver / jogar no Xbox 360

– Licença XNA Creators Club

• US$ 99,00 por ano ou

• US$ 49,00 por 4 meses

Trang 21

• Principal API utilizada pra desenvolvimento de jogo

• Aplicativos desenvolvidos em C++

• Desenvolvimento para Windows

• API construída sobre o DirectX

• Jogos desenvolvidos com linguagens NET

• Desenvolvimento para plataforma Windows

• API construída utilizando como base o MDX (substituiu o MDX)

• Aplicativos desenvolvidos em C#

• Desenvolvimento para Windows, Xbox 360 e Zune

Trang 22

Application Model Content Pipeline

Legenda:

Network

Trang 23

Application Model Content Pipeline

Trang 24

Modifique os jogos e crie o seu próprio

Trang 25

Application Model Content Pipeline

Trang 26

Mantenha-se focado no jogo e não em qual plataforma

Trang 27

• Liberdade de escolha

– Ferramentas de criação de conteúdo

– Game engines

• Menos código para a criação

– Mais tempo para a criação do jogo

• Forte integração entre código e conteúdo

– Build de código e de conteúdo unificados

Trang 29

Application Model Content Pipeline

Graphics Audio Input Math Storage Network

Trang 30

• Fornece recursos de renderização de baixo nível

• Construído em cima do Direct3D 9

• APIs atualizadas que seguem as regras do NET

Trang 31

• Baseado no XACT (Cross-Platform Audio Creation

Tool)

– Adiciona sons

– Ajusta propriedades

– Construir bancos de sons

• Fácil integração para desenvolvedores

– Acesse-os via seus nomes lógicos

– Looping, streaming, e gerenciamento de memória

– Sem gerenciamento de buffer de baixo nível

Trang 32

• Torna fácil a obtenção de dados de entrada

• Dispositivos

– Keyboard

– Mouse (apenas para Windows)

– Xbox 360 (Gamepad, guitarra, tambores, volantes, etc )

• Modelo de programação imediato

– Não demanda inicialização

– Não demanda gerenciamento de estados

– Basicamente tira uma fotografia dos estados de todos os botões

Trang 33

• Fornece um jeito fácil para ler e salvar informações

do jogo

• Atua como um sistema de arquivos virtuais

– Arquivos armazenados no local correto de cada plataforma – Suporta múltiplos dispositivos de armazenamento e perfis

no Xbox 360

• Baseado em Streams, o que facilita a integração com

o System.IO

Trang 34

• Biblioteca de funções matemáticas para jogos

– Vector, Matriz, Quaternion, Plane, AABB, Sphere, Ray,

Trang 35

• Conexão entre Xbox 360 e PC

• Conexão local e via LIVE!

• Inclui suporte a LIVE! MatchMaking

– Conecta você a pessoas com perfil semelhantes

• Na versão 3.1

– Ranked matchmaking

– Venda de jogos na Live Community!

– Conexão de até 8 Zunes em rede ad-hoc

Trang 36

Application Model Content Pipeline

Trang 37

Skinning & Animation Distortion

Trang 38

• AbduX

– Jogo completo, feito em 4 dias, por 1 pessoa

– Explora recursos gráficos, sons, input e fontes no XNA além

de reconhecimento de voz

Trang 39

• Dungeon Quest

– Desenvolvido em apenas 4 dias

– Equipe: 1 desenvolvedor e 1 designer

Trang 42

– Placa de vídeo compatível com DirectX 9.0 e Shaders 2.0

– Runtime do XNA e do DirectX

– PC: Windows XP SP2 ou superior

– Xbox 360: deve haver HD

– Zune: pronto para rodar!

Trang 43

• É uma ferramenta de desenvolvimento (IDE) criada pela Microsoft.

• Sua interface é simples e intuitiva.

• Muito recomendada para usuários iniciantes em programação na linguagem C#.

• A versão Express não tem custo e você pode registrá-la.

– Visual C# 2008 Express Edition

Trang 44

• O XNA é um framework gratuito e robusto cominterface amigável desenvolvido pela Microsoft paracriar jogos tanto para PC quanto para o console XBox360.

Trang 45

• File New Project

Solution Explorer

Trang 46

• Após criar seu novo projeto, você já pode testá-lo.

• Para isso, aperte F5

• Se tudo der certo, espera-se o seguinte resultado

Trang 47

Initialize() LoadContent() Update()

Draw() UnloadContent()

Game Loop

Término da aplicação

Trang 49

• Pasta Content, botão direito do mouse Add -> Existing Item

• Criar uma variável do tipo Texture2D

Trang 50

• Espera-se obter o seguinte resultado ao compilar o exemplo.

Trang 51

• Adicione duas novas variáveis.

Vector2 position = new Vector2(100.0f, 100.0f);

KeyboardState keyState;

• No método Draw, troque new Vector2(100.0f, 100.0f) pela variável

position que criamos.

• No método Update, adicione as seguintes linhas

keyState = Keyboard.GetState();

if (keysboardState.IsKeyDown(Keys.Up)) position.Y -= 5.0f;

if (keysboardState.IsKeyDown(Keys.Down)) position.Y += 5.0f;

if (keysboardState.IsKeyDown(Keys.Left)) position.X -= 5.0f;

Trang 52

• Comente as linhas do método Update que manipulam a

imagem com o teclado.

• Adicione uma variável de estado para o mouse

MouseState mState;

• No método Update digite.

mState = Mouse.GetState();

position.X = mState.X - image.Width / 2;

position.Y = mState.Y - image.Height / 2;

• Para fazer a seta aparecer coloque no Initialize.

IsMouseVisible = true;

Trang 53

• Add -> New Item

Trang 54

• É gerado um arquivo xml Mude a seguinte informação dele

• Escreva as informações na tela dentro do método Draw, entre

os comandos Begin() e End()

spriteBatch.DrawString(sFont, "X = " + position.X.ToString(), new Vector2(10.0f, 10.0f), Color.White);

spriteBatch.DrawString(sFont, "Y = " + position.Y.ToString(), new Vector2(10.0f, 30.0f), Color.White);

Trang 55

• Espera-se obter o seguinte resultado ao compilar o exemplo.

Trang 56

• Adicione as seguintes linhas após fazer osmovimentos do personagem.

Trang 57

• Adicione a música na pasta Content do seu projeto

Add -> Existent Item

• Declare uma variável do tipo Song

Song music;

• Carregar a música no LoadContent

music = Content.Load<Song>(“music”);

Trang 58

• Para tocar a música digite o seguinte código também

no LoadContent

MediaPlayer.Play(music);

• Para fazer a música ficar em loop infinito digite:

MediaPlayer.IsRepeating = true;

Trang 59

• Adicione o efeito sonoro na pasta Content do seu

projeto

Add -> Existent Item

• Declare uma variável do tipo SoundEffect

SoundEffect collision;

• Carregar a música no LoadContent

Trang 60

• Declare uma váriavel de colisão como booleana

bool collsion;

• No método Update, deixe collision sempre comofalso e quando acontecer uma colisão do fantasmacom a parede troque o valor para verdadeiro

• Então verifica se collision é verdadeiro e toque o

som.

if (collision) sound.Play();

Trang 64

• A Linguagem C#:

– É uma linguagem orientada a objeto, moderna, desenhada

a fim de aumentar a produtividade do programador C# é utilizado por milhares de programadores e analistas e provê acesso total a tecnologia utilizando o Net

Framework, O Compact Framework e mais recentemente o XNA Framework

Trang 65

• namespace – é usada para declarar um escopo Este

escopo permite você organizar o código e oferece

uma maneira parar criar tipos exclusivos

Trang 66

• #region e #endregion – directiva para incluir uma

região dentro do código, facilitando a vida doprogramador, podendo este visualizar apenas ocódigo de interesse no momento

Trang 67

• Comentários – /* */ e //

Trang 68

• Using – mesmo conceito do #include da linguagem C/C++ ou import da linguagem Java

com using

Trang 69

• Variáveis:

Tipos C# Valores possíveis de se armazenar

Trang 70

• Operadores

Primary (x) x.y f(x) a[x] x++ x- - new typeof sizeof checked unchecked Left

Trang 71

• Vetores Multidimensionais (arrays):

Trang 72

• Entrada e Saída padrão:

Trang 73

• Estrutura condicional IF/ELSE:

Trang 74

• Laço de repetição FOR:

Trang 75

• Laço de repetição WHILE:

Trang 76

• Laço de repetição FOREACH:

– O laço foreach é usado quando queremos percorrer todos os elementos de um array (matriz) ou de coleções de dados, tais como uma ArrayList.

Trang 77

• Listas:

Trang 78

• Tratamento de erros:

Trang 79

• Classes

• Construtor

• Atributos e métodos

Trang 80

• Herança, Polimorfismo, Encapsulamento e

Enumeradores

Trang 83

– O jogador deve acertar as

baratas com o jornal

Trang 84

Sharp, John Microsoft Visual C#: Passo a passo (Tradução: Altair Dias Caldas de

Moraes) Porto Alegre : Bookman, 2007 504 p ISBN 978-85-60031-17-7.

Kleber Andrade Curso de XNA. http://kleberandrade.wordpress.com/xna – [acessado em abril de 2010].

• Sharp Games http://www.sharpgames.net - [acessado em abril de 2010]

• XNA Developer Center, http://msdn.microsoft.com/xna/ - [acessado em março de 2010]

• XNA Creators Club, http://creators.xna.com – [acessado em abril 2010]

Trang 85

Obrigado !

Kleber de Oliveira Andrade pdjkleber@gmail.com

http://kleberandrade.wordpress.com

Ngày đăng: 05/03/2014, 22:21

TỪ KHÓA LIÊN QUAN

w