Aviso importante
Esta obra UMA VERSO DE AMOSTRA, ou seja, UMA
VERSO LIMITADA E LIVRE da verso COMPLETA.
Essa obra , PODER SER DISTRIBUDA LIVREMENTE ,
MEDIANTE AS SEGUINTES REGRAS ABAIXO:
Esse material NO PODER SER COMERCIALIZADO
Essa material NO PODER SER DEVIRADO
E todos os crditos do autor DEVERO SER MANTIDOS
10
Apresentao
O mercado de desenvolvimento de jogos tem crescido
bastante nesses ltimos tempos. Hoje encontramos jogos
para as mais diversas plataformas (como PC, Web e Mobile).
Atualmente
destinados
plataforma
PC,
uma
dessas
do
livro
no
site
da
editora
AGBOOK
(http://www.agbook.com.br).
11
12
ndice analtico
Instalando
as
ferramentas
de
desenvolvimento ................................................................ 19
2.1) A plataforma Java ....................................................... 19
2.2) A ferramenta Eclipse Luna ......................................... 24
2.3) A biblioteca GameUtil2D ........................................... 31
Capitulo 3 Criando nosso primeiro projeto .................... 32
O diretrio src (source) ................................................... 39
O diretrio drawables..................................................... 46
13
14
Capitulo 1 Fundamentos
bsicos sobre jogos
ntes
de
comearmos
estudar
utilizar
de computador.
nunca
se
divertiu (em
seu
15
Jetpack joyride
16
Swing Copters
17
18
Capitulo 2 Instalando as
ferramentas
de
desenvolvimento
para
que
possamos
executar
os nosso
jogos
19
20
21
22
23
24
bastanto
escolher
uma
das opes
do
25
26
de instalao
em
um
local apropriado
(de
27
28
29
30
31
32
33
Selecionando a opo
Feito isso clique no boto Next, que ser aberta a seguinte
tela :
34
35
Arquivo selecionado
36
arquivo
que acabamos
de
importar) para o
37
Estrutura de diretrios
38
39
gameutil2d.classes.input.*;
gameutil2d.classes.basic.*;
gameutil2d.classes.scene.*;
gameutil2d.classes.text.*;
gameutil2d.classes.character.*;
gameutil2d.classes.media.*;
import java.awt.Graphics;
public class GameMain
public GameMain()
{
}
public void Update(KeyboardState keyboardState,
MouseState mouseState)
{
}
public void Draw(Graphics graphics)
{
}
}
40
keyboardState,
41
42
43
44
O pacote gameutil2d.classes.input
Nesse pacote encontramos as classes responsveis pela
entrada de dados, so elas :
KeyboardState.java : Esse arquivo (ou classe)
utilizado para guardar o status do teclado, ou seja,
quais teclas foram pressionadas e/ou liberadas.
MouseState.java : Esse arquivo (ou classe) utilizado
para guardar o status do mouse, ou seja, qual posio
onde ele se encontra na tela (cursor), se o boto foi
pressionado e/ou liberado e etc.
Keys.java : Esse arquivo (ou classe) guarda todas as
constantes das teclas pressionadas e/ou liberadas, e
utilizado como parmetro nos mtodos IsKeyDown e
IsKeyUp da classe KeyboardState.
45
O pacote gameutil2d.classes.media
Nesse
pacote
existe
algumas
classes
destinadas
ao
46
47
Projeto renomeado
48
Boto Run As
49
50
Aplicao em execuo
A tela escura indica que no h nada na tela, que nenhum
elemento est presente no jogo.
Neste
captulo
conhecemos
nosso
framework
de
51
Capitulo 4
Visualizando
imagens no jogo
52
vamos declarar um
53
Image imagem;
Agora
dentro
do
construtor
da
classe
(o
mtodo
os seguintes
parmetros :
imagem = new Image("personagem_swing_copters", 0,
0, 80, 80);
54
55
56
Image imagem;
Image titulo_swing_copters;
Image fundo_tela_swing_copters;
:
57
58
59
60
61
Capitulo
5
Movendo
elementos do jogo pela tela
62
63
64
est
pressionada,
atravs
do
mtodo
65
66
67
68
Nuvem em movimento
Se observarmos o nosso jogo, o avio pode se deslocar
perfeitamente pela tela, porm, se deixarmos o avio se
mover constante (e unicamente) para uma direo, o
mesmo sai da tela (independente se para frente, pra trs,
pra cima ou para baixo). Como solucionar esse problema ?
simples, basta limitarmos seu movimento de forma que o
mesmo no saia da tela.
Para realizarmos esse procedimento, primeiramente, vamos
declarar o seguinte atributo em seguida (destacado em
negrito):
69
:
int largura_tela = 800;
int altura_tela = 480;
70
if((aviao.GetX()
largura_tela)
aviao.GetWidth())
>
71
72
73
74
75
uso
da
classe
chamada
AnimationSprites,
76
77
78
Por essa:
79
o
arquivo
80
Jogo em execuo
81
public GameMain()
{
:
wing_gundam = new AnimationSprites(450, 130, 200,
250);
wing_gundam.Add("wing_gundam_parado_1");
wing_gundam.Add("wing_gundam_parado_2");
:
heavy_arms = new AnimationSprites(100, 120, 197,
263);
heavy_arms.Add("heavy_arms_parado_1");
heavy_arms.Add("heavy_arms_parado_2");
:
}
82
83
84
Capitulo 7
Detectando
colises entre objetos no
jogo
85
86
Jogo em execuo
87
88
89
90
Consideraes Finais
de
jogos
atravs
do
framework
91