Escolar Documentos
Profissional Documentos
Cultura Documentos
Aplicações informáticas:
APLICAÇÕES
INFORMÁTICAS
TRABALHO DE PESQUISA E
PROGRAMAÇÃO DE UM
JOGO DE LUTA
Liceu Camões
Introdução.............................................................................................................................................5
Palavras-Chave......................................................................................................................................... 7
ENQUADRAMENTO TEÓRICO..................................................................................................10
INTRODUÇÃO À PROGRAMAÇÃO.........................................................................................10
ALGORITMO............................................................................................................................................ 10
PSEUDOCÓDIGO E FLUXOGRAMAS............................................................................................10
Simbologia de um fluxograma..........................................................................................................................................11
LINGUAGENS NATURAIS E FORMAIS......................................................................................... 11
LINGUAGEM DE PROGRAMAÇÃO................................................................................................ 13
PARADIGMA............................................................................................................................................ 14
PRINCIPAIS PARADIGMAS DA PROGRAMAÇÃO............................................................................................14
INTRODUÇÃO À MULTIMÉDIA.................................................................................................26
INTERATIVIDADE.................................................................................................................................. 26
CARACTERÍSTICAS OU COMPONENTES DA INTERATIVIDADE..........................................................26
NÍVEIS E TIPOS DE INTERATIVIDADE....................................................................................................................27
CONCEITO DE MULTIMÉDIA............................................................................................................ 30
TIPOS DE MEDIA................................................................................................................................... 31
Agrupamento dos diferentes tipos de media conforme a sua natureza espácio- temporal............31
Agrupamento dos diferentes tipos de media de acordo com a sua origem.............................................31
Tipos de media......................................................................................................................................................................... 32
MODOS DE DIVULGAÇÃO DE CONTEÚDOS MULTIMÉDIA.................................................33
On-line:........................................................................................................................................................................................ 33
Offline........................................................................................................................................................................................... 34
DIFERENÇA ENTRE LINEARIDADE E NÃO LINEARIDADE.................................................34
Linearidade............................................................................................................................................................................... 34
Não linearidade...................................................................................................................................................................... 35
TIPOS DE PRODUTOS MULTIMÉDIA............................................................................................ 36
Produtos multimédia baseados em páginas.............................................................................................................36
Produtos multimédia baseados no tempo..................................................................................................................36
FORMATOS DE FICHEIROS DE IMAGENS................................................................................. 37
Tipos de imagem:....................................................................................................................................................................37
Taxa de compressão:........................................................................................................................................................... 38
Tipos de de formatos de ficheiros de imagem:.......................................................................................................38
FORMATOS DE FICHEIROS DE ÁUDIO........................................................................................41
ENQUADRAMENTO TECNOLÓGICO.....................................................................................45
Pogramas usados para a construção do nosso jogo:...........................................................45
Sublime Text:...............................................................................................................................................................45
Pixilart:............................................................................................................................................................................. 46
TRABALHO PRÁTICO...................................................................................................................47
File index.html........................................................................................................................................ 49
1
Head:................................................................................................................................................................................. 49
Body:................................................................................................................................................................................. 49
Canvas:............................................................................................................................................................................51
Scripts:............................................................................................................................................................................ 51
File Index.js.............................................................................................................................................. 52
Configuração do Canvas:....................................................................................................................................52
Sprites:............................................................................................................................................................................ 52
Controle do Teclado:..............................................................................................................................................54
Função de Animação:............................................................................................................................................54
Detecção de Colisão e Atualização de Saúde:......................................................................................55
Fim do jogo:................................................................................................................................................................. 55
Event Listeners do teclado:...............................................................................................................................56
File classes.js......................................................................................................................................... 57
Class Sprite:............................................................................................................................................................................ 57
Class Fighter:.......................................................................................................................................................................... 58
File utils.js................................................................................................................................................ 60
Função `rectangularCollision({ rectangle1, rectangle2 })`:...........................................................60
Função `determineWinner({ player, enemy, timerId })`:..................................................................60
Temporizador e Função `decreaseTimer()`:............................................................................................61
Ponto de situação:................................................................................................................................ 62
Personagens e background.............................................................................................................. 63
Desenvolvimento de cada ação das personagens:................................................................64
Ponto de situação:................................................................................................................................ 66
Conclusão..........................................................................................................................................67
Bibliografia.........................................................................................................................................69
3
Introdução
No âmbito da disciplina de Aplicações Informáticas B, sob a orientação da
professora Mónica Batista, foi realizado um relatório detalhado sobre o
desenvolvimento de um jogo de luta.
O mundo dos jogos digitais oferece um vasto terreno para a criatividade florescer,
onde conceitos teóricos se unem à aplicação prática para dar vida a experiências
interativas envolventes. Este relatório mergulha no processo de conceção e
desenvolvimento de um jogo de luta em pixel art, utilizando princípios de
programação e multimédia para moldar cada aspecto da experiência do jogo.
A realização deste relatório também tem como objetivo promover estratégias que
envolvam aquisição de conhecimento, informação e outros saberes, promover
4
estratégias que envolvam a criatividade e promover estratégias que desenvolvam o
pensamento crítico e analítico.
O objetivo principal deste projeto é criar um jogo de luta em pixel art que ofereça
uma experiência envolvente e cativante para os jogadores. Para alcançar este
objetivo, estabelecemos as seguintes metas específicas:
5
Palavras-Chave
● Aplicações Informáticas
● Programação
● Algoritmo
● Pseudocódigos
● Fluxograma
● Linguagem programação
● Paradigma
● Multimédia
● Interatividade
● Média
● Conteúdos Multimédia
● Linearidade e Não-Linearidade
● Produtos Multimédia
● Imagem
6
● Som
● Projeto de jogo
● Desenvolvimento de jogo
● PixilArt
● Linguagem JavaScript
● Design Gráfico
● Colaboração
● Trabalho em equipa
● Aprendizagem interativa
● Website
● Testes
● Plataformas de jogo
● Criatividade
● Evolução
● Troca de ideias
7
● Ambiente de aprendizagem
● Sprite
● Animação
● Colisões
● Movimento
● Personagens
● Ambiente
● Estrutura
● Lógica
● Funções
● Variáveis
● Controlo de eventos
● Deteção de teclas
● Loop do jogo
● Renderização
● Frames
8
● Gravidade
● Ataque
● Saúde
● Interatividade
● Framework
● Vida
● Combate
● Jogabilidade
● Fundo
9
ENQUADRAMENTO TEÓRICO
INTRODUÇÃO À PROGRAMAÇÃO
ALGORITMO
PSEUDOCÓDIGO E FLUXOGRAMAS
10
estão entre os diagramas mais comuns do mundo, utilizados por pessoas técnicas e
não técnicas e em variadas áreas de atuação.
Simbologia de um fluxograma
Ambiguidade:
11
Redundância:
12
Literalidade:
1. Poesia: As palavras são usadas tanto pelos sons como pelos significados, e o
poema inteiro cria um efeito ou resposta emocional. A ambiguidade não é
apenas comum, mas muitas vezes proposital.
Programas:
As linguagens formais são mais densas que as naturais, então exigem mais tempo
para a leitura. Além dIsto, a estrutura é importante, então nem sempre é melhor ler
de cima para baixo e da esquerda para a direita. Em vez dIsto, aprende-se a
analisar o programa primeiro, identificando os símbolos e interpretando a estrutura.
E os detalhes fazem diferença. Pequenos erros em ortografia e pontuação, que
podem não importar tanto nas linguagens naturais, podem fazer uma grande
diferença em uma língua forma.
13
LINGUAGEM DE PROGRAMAÇÃO
14
PARADIGMA
trabalhoso
fácil
Imperativo Declarativo
Tabela 1 - Paradigmas derivados do paradigma imperativo Tabela 2 - Paradigmas derivados do paradigma declarativo
15
PARADIGMA IMPERATIVO
(meteorologia)
Utilização:
longo do tempo
Vantagens:
Desvantagens:
16
PARADIGMA DECLARATIVO
- Neste tipo de paradigma focamo-nos mais no que deve ser resolvido e não tanto
em como deve ser feito, ou seja, focamo-nos em definir a lógica de programação e
não em detalhes do fluxo de controle. Instruímos a máquina sobre “o que fazer” e
não “como fazer”! Aqui, falamos sobre declarar propriedades do resultado que
esperamos obter e não em como computar esta lógica.
Isto faz contraste com o paradigma imperativo em que um mesmo código pode
retornar diferentes resultados.
Vantagens:
- Não é necessário manipular componentes, uma vez que ao indicar no início o que
deve ser exibido com base no estado atual, a interface do utilizador regenera-se
completamente de forma automática quando ocorre uma mudança de estado,
realizando assim uma recomposição. Isto simplifica muito o processo de atualização
da IU, uma vez que com cada recomposição a interface do utilizador será gerada no
estado correto sem a necessidade de manipular os seus componentes, reduzindo
assim a probabilidade de erros.
Desvantagens:
● Lisp - Mirai
17
● SQL - Sistemas de Gerenciamento de Banco de Dados e aplicações de
business intelligence
18
PARADIGMA REATIVA
Estes fluxos de dados (que também são chamados de streams) são em grande
parte assíncronos, ou seja, as operações são independentes umas das outras e não
precisam ser executadas em uma sequência específica.
● Java - Google
Vantagens:
Desvantagens:
19
PARADIGMA ESTRUTURADO
● C - Jogos telemóvel
Vantagens:
Desvantagens:
- Os dados são separados das funções. Mudanças na estrutura dos dados acarreta
alteração em todas as funções relacionadas. Gera sistemas difíceis de serem
mantidos;
20
PARADIGMA PROCEDIMENTAL
Vantagens:
- Permite o uso de procedimentos, desta forma fica mais fácil aproveitar a lógica e
código.
21
PARADIGMA FUNCIONAL
As suas funções computam um resultado que depende apenas dos valores das
entradas
Este paradigma usa memória automática, o que elimina possíveis erros, “efeitos
colaterais”, nos cálculos matemáticos das funções
● Lisp - Mirai
● Haskell - Facebook
● Scala - Netflix
Vantagens
22
● O processo de alocação da memória é automático, eliminando erros de
Desvantagens
PARADIGMA LÓGICO
Este paradigma é baseado em factos, este usa o que sabe para desenvolver um
resultado onde todos os factos sejam verdadeiros e criam um cenário final
Este tipo de paradigma é muito utilizado para a inteligência artificial porque chega
aos resultados desejados através da análise lógico-matemática.
Por exemplo, Todas as escolas dão aulas, o liceu camões é uma escola, logo pela
lógica, o liceu camões dá aulas.
Vantagens:
Desvantagens:
● Planner – Microsoft
23
24
PARADIGMA ORIENTADO A OBJETOS
Este paradigma tem uma grande preocupação em esconder o que não é importante
e em realçar o que é importante. Nele, implementa-se um conjunto de classes que
definem objetos. Cada classe determina o comportamento (definido nos métodos) e
estados possíveis (atributos) de seus objetos, assim como o relacionamento entre
eles.
25
Linguagens que suportam este tipo de paradigma:
● Smalltalk - Visualworks
● C++ - Google
● Object Pascal;
● Java - Google
VANTAGENS
26
PARADIGMA ORIENTADO A EVENTOS
Utilização:
● Jogos
● Formulários
● Java - Google
● C++ - Google
27
● Dart - Cred, Ninja Van
Vantagens:
● Confiável
● Oportuno
● Ajustável
Esta característica torna especial o paradigma de POO, pois é muito comum que
equipes de desenvolvimento de softwares sejam escaladas para trabalhar com
softwares já existentes. Desta forma, torna-se mais fácil executar o trabalho de
manutenção.
● Extensível
28
● Reutilizável
Um mesmo objeto pode ser utilizado em aplicações diferentes, desde que sejam
compatíveis. Se tivéssemos um objeto “aluno”, por exemplo, ele poderia ser
utilizado em sistemas de empresas diferentes, desde que elas contassem com
alunas e alunos na sua estrutura.
Assim, tanto uma escola de música como uma academia poderiam fazer uso do
objeto “aluno” em um possível software para uso próprio, pois ambas as empresas
têm estas pessoas como seu público.
● Natural
O conceito de POO que traz para a programação o mundo concreto, tal qual vemos
no dia-a-dia, faz com que se ganhe naturalidade. O ponto de vista humano se torna
mais próximo do virtual. Assim, pensa-se no problema geral, em vez de concentrar o
foco em pormenores.
29
INTRODUÇÃO À MULTIMÉDIA
INTERATIVIDADE
30
31
NÍVEIS E TIPOS DE INTERATIVIDADE
Tipos interatividade
● Interatividade Linear
● Interatividade de suporte
● Interatividade Hierárquica
32
funcionamento, de acordo com diversos fatores, e assim torna esta
interatividade, desenvolvida de forma proactiva
Níveis interatividade
● Interatividade reativa
A interação e o feedback são controladas pelo sistema e por Isto seguem uma
trajetória predefinida, ou seja, o sistema controla o desenrolar da ação dos
utilizadores
● Coativa
● Proactiva
33
- Controlo sobre o conteúdo
Para além disto ainda pode ser dividido entre limitado e alargado
Controlo do conteúdo
Limitado Alargado
34
Níveis segundo a ação sensorial
● Elevada
● Média
Ex: Este nível de interatividade pode ser encontrado em jogos, onde o utilizador
apenas tem de ativar comandos pré-definidos.
● Baixa
Ex: Este nível de interatividade pode ser encontrado em ações simples como no
visionamento de um filme onde o utilizador se restringe a ver e ouvir, não existindo
uma interação.
35
CONCEITO DE MULTIMÉDIA
“Multimédia Digital, ou simplesmente multimédia, define-se como a integração de até seis tipos de
media num ambiente interactivo e colorido por computador.”
(Grupta, 1993)
“Multimédia é qualquer combinação de texto, arte gráfica, som, animação e vídeo apresentada ao
utilizador por um computador ou por outro meio electrónico”
(Vaughan, 1996)
Figura 5 - Multimédia para o anúncio do novo carro da Figura 4 - Espetáculo de lasers; Performance de
Ford em 1987 multimédia ao vivo
36
TIPOS DE MEDIA
Tipos de media
37
Tipos de media
entretenimento, mas foi crescendo até se tornar numa das formas mais
eficazes e expressivas para comunicar uma ideia. Corresponde ao
movimento sequencial de um conjunto de gráficos, no formato digital, que vão
sofrendo alterações ao longo do tempo. Atualmente a animação é
38
maioritariamente produzida em computador, através de softwares
específicos.
NATUREZA
ESTÁTICOS DINÂMICOS
ORIGEM
Imagem Vídeo
CAPTURADOS
- Áudio
Texto -
SINTETIZADOS
Gráficos Animação
On-line:
Vantagens:
Desvantagens:
● Normalmente são ficheiros pesados o que dificulta ao utilizador ter acesso via
39
40
Offline
Vantagens:
- É mais fácil ter acesso aos dispositivos que façam a divulgação destes conteúdos
de multimédia, como CD e DVD, visto que têm uma maior capacidade de
armazenamento.
Desvantagens:
Linearidade
Vantagens:
Desvantagens:
41
● É difícil de o utilizador se habituar devido ao facto de não conseguir interagir
com a máquina
Não linearidade
Vantagens:
Desvantagens:
- Pode ser mais confuso para o utilizador interagir num ambiente não-linear,
podendo “perder-se” no sistema, devido a ser ele que escolhe um de vários
caminhos que tem à sua disposição.
42
TIPOS DE PRODUTOS MULTIMÉDIA
Ferramentas de trabalho:
Ferramentas de trabalho:
43
● Áudio digital – “Sonic Foundry SoundForge” e “Goldwave Digital Audio Editor”;
44
FORMATOS DE FICHEIROS DE IMAGENS
Tipos de imagem:
pixels, não são construídas por eles. Sendo assim, estas imagens são
definidas como sendo constituídas por linhas, curvas e formas
preenchidas. As imagens em vetor podem ser redimensionadas a qualquer
tamanho sem que percam a sua qualidade, diferentemente das imagens em
45
Taxa de compressão:
Figura
Figura 8 SEQ Figura
- Imagens JPG\*com
ARABIC 8-taxas
diferentes Imagens JPG com diferentes
de compressão
imagem comprimida, maior a taxa de compressão.
- Formato aceite como standard para imagens e formato digital. Além dIsto, o JPG
possui uma taxa de compressão bastante alta, podendo fazer com que uma imagem
de resolução Full HD ocupe muito pouco espaço no disco rígido. Contudo, Isto só
acontece devido à perda da qualidade. A taxa de compressão do JPG é ajustável,
Isto significa que é possível equilibrar a qualidade com o tamanho da imagem. Ou
seja, em casos em que a taxa de compressão é mínima, o ficheiro ainda não ocupa
tanto espaço no disco.
● GIF:
46
coloridos. São bastante utilizados nas redes sociais. Não são indicados para
fotografias ou imagens ricas em cor
47
● PNG:
● BMP:
● PSD:
● TIFF
- O formato TIFF utiliza a compressão sem perdas. Por Isto, é considerado o melhor
formato de alta qualidade para se trabalhar. Além dIsto, este formato de imagem é
bastante utilizado para ficheiros de impressão.
48
● PDF
- Este formato de imagem foi criado pela Adobe em 1993 devido à necessidade de
existir um tipo de ficheiro que fosse universal. Ou seja, era necessário um formato
que fosse compatível independentemente do software utilizado, do sistema
operativo, de sua resolução e tamanho. Além dIsto, PDFs possuem alta
versatilidade uma vez que armazenam bitmaps, vetores, textos, etc.
● SVG
● RAW
● WEBP
- Este formato foi desenvolvido pelo Google em 2010, com o objetivo de fazer com
que as imagens fiquem até 40% menores do que o JPEG sem que se perca a
qualidade. Além dIsto, este formato é visto por alguns como sendo o futuro formato
padrão da internet.
● AVIF
49
50
FORMATOS DE FICHEIROS DE ÁUDIO
A maneira mais fácil de pensar em formatos de áudio e como estes diferem uns dos
outros é dividindo-os em três grupos principais:
2. DSD - O Direct Stream Digital (DSD) é o formato utilizado nos Super Audio
CDs. Este trata o áudio de um modo completamente diferente dos outros, utilizando
um único bit com taxas elevadas de amostragem, resultando em ficheiros de alta
qualidade. Contudo, esta tecnologia de áudio não usa compressão, sendo por Isto
incompatível com o atual modelo de streaming.
51
● Formato de áudio comprimido com perdas - Estes são métodos de
compressão que eliminam os dados dentro do fluxo de áudio sem causar
grande impacto no som. No entanto, há informação que é atirada para fora.
1. MP3 - Este é o formato de áudio mais comum para a audição casual. Ele
foi utilizado durante muito tempo como o padrão para conversões de
músicas e também para a distribuição digital em serviços P2P mais
antigos. É a abreviação de MPEG Audio Layer III. Grande parte da
popularidade do formato MP3 vem do tamanho reduzido dos ficheiros. Isto
é possível graças à compactação e também porque os ficheiros são
gerados cortando uma série de informações sonoras. Por Isto considera-
se o MP3 com um formato de áudio comprimido com perdas (quase
impercetíveis ao ouvido humano).
2. AAC - A sigla AAC significa Advanced Audio Coding. Este padrão foi
projetado para ser o sucessor do MP3, tendo diferenciais importantes
como o suporte a mais canais de áudio, maiores taxas de bits e mais
transparência de áudio, quando comparados a ficheiros equivalentes
codificados no padrão MP3. Atualmente, o formato de ficheiro AAC tem
amplo suporte, mas foi a sua utilização como o padrão do iTunes que fez
com que ele ganhasse popularidade rapidamente. A Apple utiliza o AAC
também no iPhone e em seu serviço de música, o Apple Music. Outras
empresas que também utilizam o AAC hoje são Sony (PlayStation),
Nintendo (consoles diversos) e Google, com o YouTube.
Resumindo, o AAC é um formato comprimido com perdas, mas mostra-se
superior ao MP3 em termos de qualidade sonora
3. MQA - O termo MQA é uma sigla para Master Quality Authenticated, algo
que já dita o foco deste codec em alta qualidade de áudio. Ficheiros
codificados com MQA são produzidos de forma a serem compactos o
suficiente para utilização em serviços de streaming, mas sem sacrificar a
qualidade de áudio (embora haja perdas na conversão).
52
4. Ogg Vorbis - O Ogg Vorbis é uma combinação de Codec e Container para
ficheiros de áudio. Ele utiliza compressão de dados e resulta em uma
pequena perda na qualidade. Contudo, este formato apresenta
desempenho e qualidade de áudio superiores ao MP3, ao mesmo tempo
em que gera ficheiros menores. Este equilíbrio entre tamanho e qualidade
foi o que levou o serviço de streaming Spotify a adotar o formato Ogg
Vorbis.
6. WMA - O Windows Media Audio foi criado pela Microsoft para tentar
competir com o MP3 e o AAC. Contudo, o seu alcance ficou bastante
restrito ao ambiente Windows, não tendo adoção em outras plataformas e
players.
53
● Formato de áudio comprimido sem perdas- Estes são métodos de
compressão de dados que podem tornar os ficheiros mais pequenos,
preservando simultaneamente a integridade total da informação encontrada
no fluxo de áudio
2. ALAC - O ALAC (Apple Lossless Audio Codec) foi criado pela Apple no
ano de 2004 como uma resposta ao FLAC. Ele também utiliza técnicas de
compressão de dados para reduzir o tamanho dos ficheiros, mantendo
integralmente a qualidade de áudio. Por Isto ele é considerado como
Lossless.
54
ENQUADRAMENTO TECNOLÓGICO
Sublime Text:
Liguagem de programação:
- JavaScript:
55
- HTML:
Pixilart:
Pixilart é uma aplicação baseada na web que permite aos utilizadores criar pixel art,
um estilo de arte que utiliza pixels individuais para formar imagens ou animações.
Esta aplicação segue o paradigma de programação interativa, onde os utilizadores
podem interagir diretamente com a interface para criar e editar obras de arte.
Além dIsto, o Pixilart permite aos utilizadores partilhar as suas criações com uma
comunidade online, promovendo a colaboração e a partilha de conhecimento. Este
aspeto da aplicação reflete o paradigma social da programação, onde os
utilizadores podem interagir e colaborar uns com os outros para criar e partilhar arte
pixelizada e animações GIF.
56
Figura 12 – Funcionamento PixelArt Figura 11 - PixelArt
TRABALHO PRÁTICO
1. HTML:
- Este ficheiro HTML serve como o ponto de entrada para o nosso jogo. Ele
contém a estrutura básica da página web e inclui referências aos ficheiros
JavaScript e às imagens utilizadas no jogo.
2. JavaScript:
57
- Utils.js: Este ficheiro contém funções utilitárias e de suporte que são usadas
em várias partes do jogo. Isto inclui cálculos matemáticos, deteção de colisões,
manipulação de sprites e outras tarefas comuns.
3. Pasta "img":
- Esta pasta contém todas as imagens utilizadas no jogo, incluindo sprites para as
personagens, backgrounds, e quaisquer outros elementos gráficos necessários.
Ao dividir o código desta forma, torna-se mais fácil encontrar e gerir diferentes
partes do nosso projeto. Além disso, esta abordagem promove a reutilização de
código e colaboração entre membros da equipa. Cada ficheiro e pasta tem um
propósito claro e contribui para a criação de um jogo coeso e funcional.
58
File index.html
Este código HTML contém a estrutura básica de uma página web para um jogo de
luta.
Head:
Esta seção contém a definição do estilo global para todos os elementos da página.
Body:
Dentro do body, há um div principal que atua como um recipiente para todos os
elementos do jogo.
Uma barra de saúde para o jogador, representada por uma div com fundo amarelo.
A largura desta div é ajustada dinamicamente conforme a saúde do jogador.
2. Temporizador:
Uma div para exibir o temporizador do jogo, inicialmente definida como "10".
Debaixo destas seções, há uma div com o id "displayText", que é usada para exibir
mensagens durante o jogo, como "Empate" ou "Vitória". Inicialmente, ela está oculta
(`display: none; `).
60
Figura 18 - Index.html; Body; Barra Saúde Inimigo
Canvas:
Depois das divs, há uma tag `<canvas>`, que será usada para renderizar gráficos e
animações do jogo.
Scripts:
Os scripts necessários para o jogo são incluídos no final do body. Cada script
desempenha um papel fundamental na construção do jogo, organizando a lógica e
as funcionalidades em diferentes partes para facilitar a manutenção e o
desenvolvimento. Eles trabalham em conjunto para criar a experiência completa do
jogo para os jogadores.
61
File Index.js
Configuração do Canvas:
Sprites:
Uma constante `gravity` é definida com um valor de 0.7, que será aplicada como a
gravidade no jogo.
São criados sprites para o fundo (background), uma loja (shop), o jogador (player) e
o inimigo (enemy).
Cada sprite tem uma posição inicial, uma imagem associada, uma escala e um
número máximo de frames para animação.
62
63
Controle do Teclado:
É definido um objeto keys para rastrear quais teclas estão a ser pressionadas.
As teclas relevantes para o jogador (a, d, w, setas) são monitorizadas para controlar
o movimento e os ataques
Função de Animação:
No início de cada atualização, o canvas é preenchido com uma cor de fundo preta.
Depois, os sprites do fundo, loja, jogador e inimigo são atualizados para refletir as
suas posições e estados atuais.
64
Figura 27 - Index.js; Função Animate
Detecção de Colisão e Atualização de Saúde:
Fim do jogo:
65
Event Listeners do teclado:
Dois event listeners são definidos para capturar eventos de pressionar e soltar
teclas do teclado.
Eles atualizam o estado das teclas no objeto keys conforme as teclas são
pressionadas ou soltas.
File classes.js
66
File classes.js
Este código define uma classe base `Sprite` e uma subclasse `Fighter` que
herda do `Sprite`. A classe `Sprite` lida com funcionalidades básicas de
sprites, como desenho e animação, enquanto a classe `Fighter` adiciona
funcionalidades específicas de um personagem de luta, como saúde, ataque
e troca de sprites.
Class Sprite:
67
Class Fighter:
69
File utils.js
- Esta função determina o vencedor do jogo com base na saúde dos jogadores.
70
Temporizador e Função `decreaseTimer()`:
71
Ponto de situação:
72
Personagens e background
73
Tomemos como exemplo um dos ataques da personagem chamada Kenji.
Utilizando a aplicação pixel art, conseguimos criar as diversas poses de cada ação
de forma rápida e fácil. Uma das vantagens deste método é que, ao adicionarmos
uma nova moldura para uma pose diferente, a moldura anterior permanece visível
em segundo plano. Isto permite uma transição suave entre as poses, facilitando a
visualização e a criação das variações de movimento ao longo da animação. Este
recurso proporciona uma abordagem intuitiva e eficiente na criação das poses,
contribuindo para um processo de desenvolvimento fluido e eficaz das personagens.
74
Figura 43- Criação dos Keyframes
momentos-chave da animação. Este processo envolve a adição de detalhes
e ajustes graduais nas poses existentes para garantir uma transição fluida e
natural entre os frames .
75
Ponto de situação:
Figura 47 – O velho
Figura 48 – Criação do novo personagem
76
Conclusão
77
troca de ideias, a partilha de conhecimentos e o apoio mútuo permitem-nos alcançar
resultados satisfatórios e promover um ambiente de aprendizagem colaborativo.
Acreditamos que a realização deste relatório tenha sido uma mais valia, pois a
informação que retiramos dele será bastante útil tanto para a nossa vida pessoal
como para a nossa vida académia.
Esta experiência tem vindo a proporcionar-nos uma visão mais abrangente sobre o
processo de criação de jogos e contribuiu significativamente para o nosso
crescimento pessoal e académico.
78
Bibliografia
Vaughan. (1996).
Vaughan. (1996).
80
Mafalda, J. M. (2016). multimedia/conceito. Obtido de https://mafaanna.wixsite.com:
https://mafaanna.wixsite.com
81