Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 22 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
22
Dung lượng
1,37 MB
Nội dung
XNA GameStudio Express
XNA GameStudio Express
Aula 4
Aula 4
Uso de
Uso de
Fontes
Fontes
no XNA
no XNA
Alexandre Santos Lobão
Alexandre Santos Lobão
contato@AlexandreLobao.com
contato@AlexandreLobao.com
P
P
ó
ó
s
s
em
em
Desenvolvimento
Desenvolvimento
de
de
Jogos
Jogos
Eletrônicos
Eletrônicos
-
-
IESB
IESB
2
Agenda: Aula 4
Agenda: Aula 4
Revisão
Revisão
-
-
Desenho
Desenho
de
de
objetos
objetos
2D
2D
Revisão
Revisão
-
-
Input
Input
Revisão
Revisão
-
-
Audio com XACT
Audio com XACT
Uso de
Uso de
Fontes
Fontes
no XNA
no XNA
Escrevendo
Escrevendo
com
com
SpriteFont
SpriteFont
Criando
Criando
uma
uma
fonte
fonte
customizada
customizada
3
Revisão
Revisão
: XNA Framework
: XNA Framework
Plataforma
Plataforma
Core
Core
Framework
Framework
Extended
Extended
Framework
Framework
Games
Games
XACT
XACT
XINPUT
XINPUT
XContent
XContent
Direct3D
Direct3D
Graphics
Graphics
Audio
Audio
Input
Input
Math
Math
Storage
Storage
Application Model
Application Model
Content Pipeline
Content Pipeline
Starter Kits
Starter Kits
C
C
ó
ó
digo
digo
Conte
Conte
ú
ú
do
do
Componentes
Componentes
Legenda
XNA Provides
XNA Provides
N
N
ó
ó
s
s
criamos
criamos Comunidade
Comunidade
4
Arquitetura
Arquitetura
de um
de um
programa
programa
XNA
XNA
Ao
Ao
se
se
criar
criar
um
um
projeto
projeto
,
,
são
são
gerados
gerados
dois
dois
arquivos
arquivos
:
:
Program.cs – Game1.run
Game1.cs – com os métodos:
Initialize()
LoadGraphicsContent()
UnloadGraphicsContent()
Chamados a cada game loop
Update(GameTime gameTime)
Draw(GameTime gameTime)
5
Desenho
Desenho
de
de
objetos
objetos
2D
2D
Na classe game 1:
private Texture2D textura;
private SpriteBatch Renderizador2D;
No Método LoadGraphicsContent:
textura = content.Load<Texture2D>("xna_thumbnail");
Renderizador2D = new S
priteBatch(graphics.GraphicsDevice);
No Método UnloadGraphicsContent:
textura.Dispose();
Renderizador2D.Dispose();
No Método Draw:
Renderizador2D.Begin(SpriteBlendMode.AlphaBlend);
Renderizador2D.Draw(textura, Vector2.One, Color.White);
Renderizador2D.End();
6
Tratamento
Tratamento
de input do
de input do
usu
usu
á
á
rio
rio
1. Uso do GamePad
GamePadState gamePad = GamePad.GetState(PlayerIndex.One);
novaPosicao.Y -= gamePad.ThumbSticks.Left.Y;
2. Uso do Teclado
KeyboardState keyboardState = Keyboard.GetState();
if (keyboardState.IsKeyDown(Keys.Up))
novaPosicao.Y -= 1;
3. Uso do Mouse
MouseState mouse = Mouse.GetState();
novaPosicao.X = mouse.X;
7
Uso de Audio com XACT
Uso de Audio com XACT
Para incluir um som no jogo:
1. Gerar o arquivo de som XACT
2. Incluir o arquivo no jogo
3. Utilizar o som via Content Pipeline
8
Uso de Audio com XACT
Uso de Audio com XACT
1. Gerar o arquivo de som XACT
Arrastar sons do “Wave Bank” para o “Sound bank”
Setar propriedades do som a ser tocado (ex: “loop event” do
evento “Play Wave”
9
Uso de Audio com XACT
Uso de Audio com XACT
2. Incluir o arquivo no jogo
Da mesma forma como se incluem texturas
10
Uso de Audio com XACT
Uso de Audio com XACT
3. Utilizar o som via Content Pipeline
Criação dos objetos
// Audio objects
AudioEngine audioEngine;
WaveBank waveBank;
SoundBank soundBank;
protected override void Initialize()
{
audioEngine = new AudioEngine("MySounds.xgs");
// Assume the default names for the wave and sound bank.
// To change these names, change properties in XACT.
waveBank = new WaveBank(audioEngine, "Wave Bank.xwb");
soundBank = new SoundBank(audioEngine, "Sound Bank.xsb");
base.Initialize();
}
[...]... criar a textura: TestdColiã 17 1 Criar textura com caracteres desejados Dica: Não se limite a letras e números para criar HUDs (Heads Up Displays)! 9876 543 210 Combustível = 012 345 6789 Velocidade = Vidas ou botão ativo (01) = 01 9876 543 210 Energia = 012 345 6789 Tipos de armas = 18 2 Classe de apoio “Font.cs” private Texture2D TextureFont; private string Characters; private int CharacterSpacing; private... 126, ('~'), covers the basic Latin character set > ~ 14 3 Utilizar a fonte Na classe Game1 .cs // Define a variável da fonte SpriteFont fonteArial; No método Initialize() // Inicializa a fonte, usando o nome do Asset no content Pipeline fonteArial = content.Load("FonteArial");... myLoopingSound.Resume(); else myLoopingSound.Pause(); 11 Uso de Fontes no XNA Para incluir um fontes no jogo: 1 Incluir novo item do tipo “SpriteFont” 2 Configurar parâmetros da fonte 3 Utilizar a fonte 12 1 Incluir novo item do tipo “SpriteFont” 13 2 Configurar parâmetros da fonte ... content.Load("FonteArial"); No método Draw() mySpriteBatch.Begin(); mySpriteBatch.DrawString(fonteArial, “Hello World!", Vector2.One, Color.Yellow); mySpriteBatch.End(); 15 Fontes Customizadas no XNA Para criar uma fonte customizada: 1 Criar textura com caracteres desejados 2 Inserir no projeto classe de apoio “Font.cs” 3 Utilizar a fonte 16 1 Criar textura com caracteres desejados Por exemplo,... xmlns:Graphics="Microsoft .Xna. Framework.Content.Pipeline.Graphics"> Arial 14 2 Regular... Color.White); } //Move a posição corrente para a próxima letra Position += (digits[i] == ',' || digits[i] == ':' || digits[i] == '.') ? CharacterWidth / 2 : CharacterWidth; } } 19 3 Utilizar a fonte Na classe Game1 .cs // Define a variável da fonte Font CustomFont; No método Initialize() // Inicializa a fonte, informando a textura, os caracteres utilizados, espaçamento, largura e altura dos caracteres CustomFont... Draw() mySpriteBatch.Begin(); CustomFont.Draw(mySpriteBatch, 80, 0, "Teste de Colisão"); mySpriteBatch.End(); 20 Desafio: HUD textual HUD = Informação de vida, energia, etc de um jogo Pegar exemplo da aula 3 Incluir contador de “Vidas” Decrementar a cada colisão Fechar a janela se = zero 21 Perguntas? 22 . XNA Game Studio Express
XNA Game Studio Express
Aula 4
Aula 4
Uso de
Uso de
Fontes
Fontes
no XNA
no XNA
Alexandre Santos Lobão
Alexandre. (01) =
Energia =
Tipos de armas =
9876 543 210
9876 543 210
012 345 6789
012 345 6789
9876 543 210
9876 543 210
012 345 6789
012 345 6789
01
01
19
2. Classe de apoio “Font.cs”
private