Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Guia de Navegação
Introdução à Programação de Jogos
Prefeitura da Cidade do Rio de Janeiro 
e Secretaria Municipal da Cultura apresentam
SUMÁRIO
Apresentação.................................................................................................................................................
Unidade 1: Introdução à lógica de programação para jogos...........................
 Por que estudar lógica de programação para jogos?..............................................
 Entendimento e resolução de problemas.....................................................................
 Criação de sistemas coerentes e funcionais..............................................................
 Pensamento computacional para resolver problemas complexos...........
 Componentes do pensamento computacional aplicado a jogos..............
 O que é um algoritmo?.....................................................................................................................
Unidade 2: Fundamentos da programação no-code.......................................
 O que é “no-code”?............................................................................................................................
 O que é “with-code” ou programação tradicional?....................................................
 Diferença no “no-code” para a programação tradicional...............................
 Como o no-code auxilia no aprendizado de programação?.........................
 Importância do no-code para trabalhar a lógica de programação........
Unidade 3: Criação de sistemas para jogos digitais.........................................
 O que é um sistema?.........................................................................................................................
 O que é um sistema de jogo digital?.....................................................................................
 Principais componentes de um sistema de jogo digital....................................
 Fundamentos da programação...............................................................................................
 Variáveis e tipos de dados.......................................................................................................
 Condicionais.......................................................................................................................................
 Estruturas de repetição...............................................................................................................
 Operadores lógicos.......................................................................................................................
 Funções ou métodos....................................................................................................................
 Entrada e saída de dados (I/O)............................................................................................
 Estrutura de algoritmos..............................................................................................................
 Eventos....................................................................................................................................................
 Boas práticas de programação...........................................................................................
 Uso do no-code em plataformas.............................................................................................
 Unity com Visual Scripting........................................................................................................
 Unreal Engine com Blueprints.................................................................................................
 Scratch com programação em blocos................................................................................
 O que é Scratch?..............................................................................................................................
 Interface do Scratch......................................................................................................................
 Áreas dos blocos.............................................................................................................................
 O plano cartesiano: Eixos X e Y..............................................................................................
 Como o plano cartesiano se aplica no Scratch?.....................................................
 Quadrantes..........................................................................................................................................
Glossário............................................................................................................................................................ 
Referências.......................................................................................................................................................
2Introdução à Programação de Jogos 
3
4
4
4
5
5
5
7
8
8
8
8
9
10
12
12
12
12
14
14
15
16
17
18
19
20
21
21
22
22
22
23
24
24
25
31
33
36
38
39
Apresentação
No curso anterior, de Introdução ao Game Design, você passou por etapas
fundamentais para o desenvolvimento de todo jogo: a ideação (desenvolver
uma ideia), a pesquisa (de referências, dos assuntos abordados no jogo, entre
outras), a roteirização (criação da narrativa e personagens, se houver), a
escolha das mecânicas e regras (formas de jogar), e o balanceamento das
fases (níveis de dificuldade, desafios etc.). Todas essas definições foram
organizadas no GDD, documento que servirá de guia para você e para todas as
demais pessoas envolvidas no desenvolvimento desse projeto.
Com essas definições prévias, podemos agora aterrissar em outra área
fundamental para transformar ideias em um jogo de verdade, que possa ser
jogado por você, seus amigos e amigas ao final dessa jornada de estudos: a
Programação de Jogos! Você já ouviu falar na profissão de Programador(a)?
Ela é, sem dúvida, uma das mais requisitadas do momento, pois é essa pessoa
quem consegue fazer funcionar, usando diferentes linguagens de computador,
qualquer tipo de produto digital, seja ele um site, um aplicativo ou um jogo!
A área de Programação de Jogos utiliza bastante pensamento lógico e
matemático, mas não há necessidade de se assustar com isso, caso essas não
sejam suas matérias preferidas na escola. Hoje em dia, existem sites e
programas que nos ajudam a programar sem precisar escrever uma linha de
código, apenas movendo blocos pela tela. Essa é a chamada Programação
Sem Código (ou No-Code, na sua expressão original em inglês), a mesma que
usaremos para programar nossos jogos aqui. E se você se encantar por essa
área que parece fazer mágica, procure se aprofundar na Programação com
códigos também! 
Neste curso, vamos abordar:
A importância da lógica de programação na criação de jogos;
Pensamento computacional para resolver problemas complexos; 
Programação No-Code: o que é, vantagens, limitações e importância; 
Motores de criação de jogos No-Code;
Fundamentos de Programação; 
Tutorial Scratch: comece a programar o seu jogo!
Então prepare-se para mergulhar no fascinante universo da programação de
jogos! Leia o material, assista às videoaulas de apoio e não deixe de fazer as
atividades! Ao final deste curso, esperamos que você esteja com o seu sistema
de jogo programado! 
Bons estudos!
3Introdução à Programação de Jogos 
UNIDADE 1
Introdução À lógica de
programação para jogos
Nesta unidade, abordaremos a importância da Lógica de Programação na criação de
jogos e o pensamento computacional como técnica para resolver problemas
complexos. Também vamos conhecer e fazer exercícios simples de algoritmo. 
Por que estudarmaior.
Prototipagem rápida: como o desenvolvedor utiliza uma
interface visual, o processo de criação é muito mais rápido
do que escrever código manualmente.
3
Não se preocupe se você ainda não conhece esses termos, pois
eles serão apresentados na Unidade 3 do curso. 
Baixa curva de aprendizado: a maioria das plataformas no-code oferece tutoriais
intuitivos, exemplos prontos e templates, facilitando a compreensão de como
construir um jogo. 
Foco na lógica e na criatividade: a ferramenta no-code permite que o usuário
foque em desenvolver a lógica e a criatividade em vez de detalhes de
codificação.
 Limitações do no-code: 
Apesar de ter muitas vantagens, o no-code traz junto algumas
limitações. Devido a sua rapidez e facilidade, recursos são
limitados ao que tem disponível na ferramenta, incluindo a
capacidade de personalização de alguns sistemas.
Ao lidar com uma ferramenta no-code, temos que ter noção
sempre das limitações de cada ferramenta, sendo elas em
sua maioria:
Personalização limitada: O no-code depende de ferramentas visuais e
componentes pré-construídos, pode ser difícil ou inviável personalizar certas
características do sistema do jogo, essa limitação geralmente não ocorre na
programação tradicional.
10Introdução à Programação de Jogos 
Personalização limitada: o no-code depende de ferramentas visuais e
componentes pré-construídos, pode ser difícil ou inviável personalizar certas
características do sistema do jogo, essa limitação geralmente não ocorre na
programação tradicional.
Complexidade reduzida: reduzir a complexidade não deveria ser bom? Nesse
caso, pode ser ruim. Às vezes, jogos divertidos requerem mecânicas complexas,
sistemas avançados de IA ou gráficos de qualidade, e dependendo da
plataforma esses recursos podem não estar disponíveis para utilização.
Performance: jogos desenvolvidos com ferramentas no-code podem não ser tão
otimizados quanto aqueles feitos com programação tradicional, isso fica mais
evidente quando estamos trabalhando com plataformas fechadas como
consoles e/ou dispositivos móveis de baixa capacidade.
Dependência de ferramentas: O desenvolvedor fica limitado às funcionalidades e
recursos oferecidos pela ferramenta, sendo difícil ir além do que a plataforma
disponibiliza.
Importância do No-cOde para trabalhar a lógica de
programação
Ao utilizar ferramentas no-code, o estudante de desenvolvimento de jogos pode se
concentrar na lógica de programação, trabalhando o entendimento de aspectos
como:
Abordagem baseada em eventos: os usuários podem definir ações a serem
executadas em resposta a eventos específicos (como cliques, colisões, etc.). Isso
ajuda a entender como eventos e ações interagem, permitindo a decomposição
do problema em partes menores.
Quebra de problemas em blocos: o no-code geralmente utiliza blocos de
construção (como ações, condições e loops) que podem ser combinados para
formar a lógica de um programa. Essa abordagem ajuda os usuários a entender
como as partes individuais contribuem para o todo, promovendo uma melhor
compreensão da decomposição de algoritmos.
Experimentação: os usuários podem testar diferentes abordagens para resolver
um problema sem medo de "quebrar" o código. Essa liberdade para experimentar
promove um aprendizado mais eficaz e reforça a ideia de que a programação é
um processo iterativo de tentativa e erro.
Pensamento crítico: ao trabalhar com ferramentas no-code, os usuários são
incentivados a pensar criticamente sobre como resolver problemas. Eles
aprendem a identificar quais componentes são necessários, como organizar a
lógica e como os diferentes elementos interagem, o que é essencial para a
decomposição de algoritmos.
Agora que você sabe as vantagens, as limitações e a importância do uso do no-code
na programação, precisamos exercitar a decomposição de problemas em blocos.
Para isso, vamos visitar a plataforma “Hora do Código” e lá veremos como podemos
executar uma ação a partir de blocos e sequenciamento de instruções.
Mas antes, você precisa analisar se sua plataforma está em português ou
inglês. Caso esteja na língua inglesa, acessar o botão
no canto inferior esquerdo da tela. Mude este valor para
e você verá que sua página irá recarregar. 
Agora que você sabe onde está a dica, repare que abaixo disso terá um campo
chamado e outro ao lado chamado , 
Ao entrar no Link 1, uma página carregará e lhe mostrará um vídeo, assista-o se
quiser e após isso clique no X para fechar.
Atividade
Hora do Código 
Na plataforma Hora do Código, você irá acessar os dois links,
em cada um deles terá um conjunto de desafios que deverá
ser cumprido:
Link 1 Link 2
Feito isso, selecione seu personagem utilizando o botão . Então irá
aparecer em realce a dica do que você precisa fazer.
esses números ao lado indicam o número de blocos utilizados / número de
blocos recomendados. Dentro da área de trabalho você colocará toda sua
lógica para resolver o desafio, sempre conectando um bloco abaixo do outro.
Depois de definir sua lógica, procure na esquerda da tela um botão chamado
. Ao pressioná-lo, ele irá executar sua lógica para saber se irá
completar o desafio ou não.
Ao terminar o desafio, clique em . 
Se você conseguiu completar o desafio, precisa identificar como ficou o
marcador do último desafio.
Se ficou com este símbolo, significa que o desafio foi concluído, mas
precisa melhorar o algoritmo.
Se ficou com este símbolo, significa que você gabaritou o desafio. 
Agora faça com atenção os desafios dos dois links e divirta-se no processo!!
11Introdução à Programação de Jogos 
https://studio.code.org/s/aquatic/lessons/1/levels/1?lang=pt-BR
https://studio.code.org/s/mc/lessons/1/levels/1?lang=pt-BR
12Introdução à Programação de Jogos 
Nesta unidade, esperamos que você tenha se familiarizado com a programação
no-code e experimentado algumas das vantagens dessa forma fácil e acessível de
programar. A seguir, vamos aprofundar os fundamentos da programação e da
criação de sistemas para você começar a criar o seu!
UNIDADE 3
Criação de sistemas 
para jogos digitais 
Nesta unidade, serão abordados o conceito e os componentes de um sistema de
jogo digital, além dos fundamentos da programação. Em seguida, serão
apresentadas ferramentas de programação de jogos no-code e o funcionamento
mais detalhado de uma delas.
O que é um sistema?
00:50
Sistemas podem ser definidos como conjuntos de elementos interconectados que
têm objetivos comuns. No corpo humano, por exemplo, temos os sistemas
respiratório, digestivo, entre outros, que são conjuntos de órgãos que interagem por
um objetivo comum: respirar, digerir etc. 
Em um sistema digital, também temos elementos que se conectam e trabalham
juntos por um objetivo final. E um jogo é, sem dúvida, um sistema! Todos os seus
componentes devem se comunicar de forma eficiente pro jogo funcionar bem.
O que é um sistema de jogo digital?
Um sistema de jogo digital é um conjunto de componentes e regras que formam a
estrutura de um jogo eletrônico, proporcionando a interação entre o jogador e o
mundo virtual. Ele é composto por diversas camadas e subsistemas que funcionam
juntos para criar a experiência de jogo. Essas camadas incluem a lógica do jogo, a
apresentação visual e sonora, e os mecanismos que permitem ao jogador interagir
com o jogo.
Principais componentes de um sistema de jogo digital 
Motor de jogo (game engine): É a base do desenvolvimento de jogos digitais. Ele
oferece as ferramentas necessárias para criar e gerenciar os elementos
fundamentais de um jogo, como gráficos, física, som e inteligência artificial.
01:17
13Introdução à Programação de Jogos 
Lógica de jogo: define as regras e as mecânicas que controlam o funcionamento
do jogo. Isso inclui o comportamento dos personagens, o controle das
pontuações, a evolução das fases, condições de vitória e derrota, e como os
eventos acontecem dentro do ambiente virtual.
Interfacede usuário: abrange os elementos visuais que permitem ao jogador
interagir com o jogo, como menus, barras de status, inventários e controles do
jogo. Ela facilita a comunicação entre o jogador e o sistema.
Sistema de entrada (input): Refere-se aos métodos de entrada que permitem ao
jogador controlar o jogo. Isso inclui o uso de teclado, mouse, controles, telas
sensíveis ao toque ou até mesmo dispositivos de realidade aumentada/virtual. O
sistema de jogo processa esses comandos e os traduz em ações no mundo do
jogo.
Mundo do jogo: o mundo do jogo é o ambiente virtual onde a ação acontece. Ele
pode ser bidimensional (2D) ou tridimensional (3D), e inclui cenários, objetos,
personagens não-jogáveis (NPCs), entre outros elementos com os quais o jogador
interage. A construção desse mundo envolve o design de níveis, a criação de
cenários e a disposição de elementos interativos.
Física e simulação: muitos jogos utilizam motores de física para simular
interações realistas entre objetos, como colisões, gravidade e movimento. Isso
ajuda a criar uma sensação de imersão, especialmente em jogos de ação,
esportes ou corrida, onde as interações físicas são importantes. Mas não precisa
ser um expert em física para utilizar esses motores.
Inteligência Artificial (IA): a IA controla o comportamento de personagens não-
jogáveis (NPCs) e outros elementos automatizados do jogo. A IA como esses
personagens reagem às ações do jogador e como interagem com o ambiente,
criando desafios e tornando o jogo dinâmico. Na maioria dos casos, a IA não tem
um pensamento próprio, geralmente o programador informa um conjunto de
reações, e a depender de uma ação, a IA utiliza uma reação pré-programada
dentro do seu sistema.
Gráficos e animação: O sistema de renderização gráfica gera as imagens que o
jogador vê na tela. Isso inclui o design visual de personagens, cenários e efeitos
visuais. Animação é o processo de dar movimento e vida aos personagens e
objetos no jogo.
Som e música: O sistema de áudio inclui efeitos sonoros, música de fundo e vozes
dos personagens, que contribuem para a imersão do jogador no mundo do jogo.
O som é cuidadosamente sincronizado com as ações e eventos do jogo.
Imagine um jogo de ação em plataforma, onde o jogador controla um personagem
que deve lutar contra inimigos em um universo 2D. O sistema desse jogo envolve:
O motor do jogo, controlando gráficos, física e som.
A lógica do jogo, definindo como o personagem deve se mover, atacar e interagir
com os objetos.
A IA controlando os inimigos, reagindo às ações do jogador.
O sistema de input (entrada), capturando os comandos do controle ou teclado.
14Introdução à Programação de Jogos 
O sistema de renderização, exibindo tudo de forma visual para o jogador, com
animações detalhadas.
Em resumo, o sistema de um jogo digital é um conjunto complexo de componentes
conectados entre si que criam uma experiência de jogo interativa e envolvente. Ele é
responsável por tudo, desde a renderização dos gráficos até a inteligência artificial
dos inimigos e a interação do jogador, garantindo o funcionamento do jogo de
maneira justa e divertida.
Fundamentos da programação
01:40
Programar envolve uma série de conceitos fundamentais que são importantes de
dominar para construir programas de forma eficiente. Esses conceitos formam a
base da maioria das linguagens de programação. A familiaridade com essas ideias
permitirá que você se adapte facilmente a diferentes linguagens e plataformas.
variáveis e tipos de dados 
Variáveis são espaços reservados na memória para armazenar informações que
podem ser modificadas durante a execução do programa. Cada variável tem um tipo
de dado associado, como números inteiros (int), números decimais (float), caracteres
(char), palavras ou frases (string) e valores booleanos (bool) que são verdadeiros ou
falsos, isso determina as operações que podem ser realizadas sobre elas.
Números inteiros (int)
Números decimais (float)
Caracteres (char)
Palavras ou frases (string)
Valores booleanos (bool)
Vida: 
100
Experiência: 
150.75
Inicial: 
E
Nome: 
Eldrin
Em combate: 
Verdadeiro
15Introdução à Programação de Jogos 
Condicionais 
Condicionais são estruturas de controle usadas em programação para tomar
decisões com base em condições específicas. Elas permitem que o programa
execute blocos de código diferentes dependendo do resultado de uma expressão
lógica. O exemplo mais comum é a estrutura if-else, onde o código dentro de um if é
executado se a condição for verdadeira, e o bloco else é executado caso contrário. As
condicionais ajudam a tornar o programa dinâmico, permitindo que ele reaja de
maneiras diferentes a diferentes entradas ou situações, como verificar se o jogador
colidiu com um obstáculo.
Se (if) o ataque for bem-sucedido, causar dano ao inimigo. 
Caso contrário (else), o inimigo contra-ataca. 
16Introdução à Programação de Jogos 
Enquanto houver itens não coletados, mover personagem. 
estruturas de repetição
As estruturas de repetição, ou loops, permitem que um bloco de código seja
executado várias vezes, enquanto uma condição específica for verdadeira. Essas
estruturas são essenciais para automatizar tarefas repetitivas, como calcular a física
do jogo, calcular a taxa de atualização (FPS) do jogo, calcular as IAs, ou seja, tudo que
precisa ser constantemente verificado necessita estar dentro de uma estrutura de
repetição (loop).
Operadores lógicos
Os operadores lógicos (E, OU, NÃO) são usados em programação para combinar ou
modificar expressões booleanas (verdadeiro ou falso). Eles são fundamentais em
estruturas de decisões, como condicionais e loops, permitindo criar condições mais
complexas. Por exemplo, podemos definir que um personagem só pode abrir uma
porta se tiver a chave correta E se estiver no nível certo do jogo.
Mago só pode abrir a porta se tiver a chave correta E estiver no
nível 15.
17Introdução à Programação de Jogos 
18Introdução à Programação de Jogos 
funções ou métodos
Funções são blocos de código reutilizáveis que executam uma tarefa específica, o
que ajuda a dividir o programa em partes menores e mais fácil de gerenciar. Elas
podem receber dados e retornar um resultado.
Pode abrir a porta?
Tem a chave correta? Está no nível correto?
Sim Não Sim Não
E
Não abrir Não abrir
Abrir
19Introdução à Programação de Jogos 
entrada e saída de dados (i/o)
Entrada e saída de dados se referem a como um jogo interage com o mundo externo.
A entrada pode vir de um teclado, mouse, controle, tela sensível ao toque, enquanto a
saída pode ser exibida na tela, sons que são emitidos e comunicação com banco de
dados, permitindo que o jogo seja funcional em diferentes cenários.
Entrada de dados 
Saída de dados
20Introdução à Programação de Jogos 
Estrutura de algoritmos
Algoritmos são conjuntos de passos que resolvem um problema ou realizam uma
tarefa. No caso de jogos digitais, cada mecânica de jogo pode ser entendida como
um algoritmo, então podemos ter algoritmo de pulo, movimentação, combate,
câmera entre outras mecânicas que podem ser desenvolvidas. 
Algoritmo de pulo:
1) Verificar se o jogador pressionou o botão de pulo. 
2) Aplicar força para cima. 
3) Verificar se o personagem está no chão. 
21Introdução à Programação de Jogos 
Eventos
Em desenvolvimento de jogos, eventos são ações ou mudanças que ocorrem no jogo
e desencadeiam uma resposta programada. Esses eventos podem ser gerados pelo
jogador (como pressionar um botão ou clicar em um objeto) ou pelo próprio sistema
(como o término de um tempo ou a colisão entre dois objetos). A lógica do jogo é
frequentemente construída em torno desses eventos, como mover personagens,
pular, ativar animações ou gerar inimigos. Eventos tornam o jogo dinâmico e
interativo, respondendo de forma reativa às ações dentro do jogo.
Término do tempo de uma interação, levando ao game over. 
Boas práticas de programação
Boas práticas incluem manter a estrutura de blocos (ou código)
clara, organizada e legível, usando nomes de variáveis efunções
coesas, documentando o código com comentários apropriados, e
seguindo convenções de estilo da linguagem. Essas práticas
tornam a estruturas de blocos fácil de manter, melhorar e de
entender.
22Introdução à Programação de Jogos 
USO DO NO-CODE EM PLATAFORMAS
02:10
O uso de ferramentas no-code no desenvolvimento de jogos tem se tornado uma
tendência crescente, permitindo que pessoas sem conhecimento avançado em
programação criem jogos funcionais e atrativos. Plataformas no-code oferecem
interfaces visuais intuitivas, onde os desenvolvedores podem arrastar e soltar
elementos, configurar comportamentos, criar mecânicas de jogo e integrar recursos
como gráficos e sons, sem escrever uma única linha de código. Essas ferramentas
democratizam o acesso ao desenvolvimento de jogos, facilitando a criação de
protótipos rápidos e até jogos completos, tornando o processo mais acessível tanto
para iniciantes quanto para profissionais que buscam agilidade. 
Conheça algumas ferramentas gratuitas para programar jogos sem código:
unity com visual scripting
O Unity Visual Scripting permite criar lógicas complexas para jogos, conectando
blocos que representam ações ou comportamentos. Por exemplo, podemos criar um
sistema de movimento para um personagem que permite que ele se mova quando o
jogador pressiona as teclas de direção.
Acesse
unreal engine com blueprints
Os Blueprints são uma ferramenta poderosa que permite a criação de mecânicas e
comportamentos sem escrever código. É possível, por exemplo, criar um sistema de
saúde para o personagem que diminui sempre que ele é atingido por um inimigo.
Acesse
scratch com programação em blocos
O Scratch é uma excelente plataforma para iniciantes, pois permite criar jogos
inteiros apenas conectando blocos de instruções. Podemos criar um jogo onde um
personagem coleta frutas, e cada vez que ele coleta uma fruta, a pontuação
aumenta.
Acesse
Acesse os sites dessas plataformas e explore os recursos disponíveis!
https://unity.com/pt/features/unity-visual-scripting
https://www.unrealengine.com/pt-BR
https://scratch.mit.edu/
23Introdução à Programação de Jogos 
Atividade
Criando meu primeiro jogo no Scratch
O objetivo deste trabalho é programar os sistemas principais
do jogo idealizado no seu Game Design Document (GDD).
Caso seja necessário, você pode revisar e/ou reescrever
partes do seu GDD original para alinhar melhor o escopo do
projeto com a construção dos sistemas. 
É importante garantir que as mecânicas e sistemas principais estejam claros e
detalhados.
Você deverá implementar as funcionalidades principais do jogo, essas
funcionalidades incluem: sistemas de controles de personagem, sistema de
pontuação, condição de vitória e derrota, gerenciamento de níveis (caso tenha),
entre outros elementos principais que compõem a jogabilidade.
A implementação de arte visual e sonora ficará para uma fase posterior. Para
esta etapa, podem ser utilizados outros arquivos visuais e sonoros que
representem as mecânicas implementadas.
Termos do Scratch
Essas duas palavras serão muito usadas a partir de agora, por
isso, deixamos aqui suas definições.
Script: um local (arquivo) com um conjunto de instruções (blocos)
que irá comandar um programa.
Sprites: representações gráficas básicas em jogos 2D. Eles podem
ser personagens, objetos interativos, itens ou até efeitos visuais,
como explosões ou partículas.
O que é o scratch?
03:25
Scratch é um ambiente de programação baseado em blocos, projetado para ser
intuitivo, especialmente para quem está começando. Os comandos são
representados por blocos coloridos, que podem ser encaixados para formar scripts.
Você pode acessar o Scratch clicando neste link. 
interface do scratch
Quando você acessa o site do Scratch, verá as seguintes áreas principais:
Blocos 
Scripts Palco
Sprites
Na parte superior direita da tela:
Palco: aqui você vê os resultados da sua programação, onde os objetos
(personagens, itens), chamados de sprites, se movem e interagem.
Na parte esquerda da tela:
Blocos: é onde você encontra os blocos de código, divididos em categorias como
movimento, aparência, som, controle, etc.
No centro da tela:
Scripts: nesta área, você arrasta os blocos para formar os scripts que controlam
os sprites.
24Introdução à Programação de Jogos 
https://scratch.mit.edu/projects/editor/
25Introdução à Programação de Jogos 
Na parte inferior direita da tela:
Sprites: lista os sprites que você está usando no projeto.
No canto inferior direito da tela:
Palco e planos de fundo: Aqui você pode modificar o cenário onde os sprites vão
interagir.
Área dos blocos 
Os blocos no Scratch são a base para a programação visual da plataforma, e eles
estão organizados em categorias com cores específicas, facilitando a identificação e
uso. Conheça cada uma dessas categorias e os blocos importantes dentro delas.
Blocos de movimento (azul) 
Esses blocos controlam o movimento dos sprites no palco. Eles permitem que os
personagens se movam, girem, ou se posicionem em diferentes coordenadas no
cenário.
Vá para x: [valor] y: [valor]: teletransporta o sprite para uma posição específica
no palco, utilizando o sistema de coordenadas (X, Y).
Mover [valor] passos: faz o sprite se mover para frente ou para trás, dependendo
do número (positivo ou negativo).
Aponte para a direção [valor]: muda a direção do sprite para um determinado
ângulo (0 é para cima, 90 é para a direita, 180 para baixo, e 270 para a esquerda).
Deslizar 1 segundo para x: [valor] y: [valor]: move o sprite suavemente de sua
posição atual até uma nova coordenada ao longo de um tempo determinado.
Blocos de aparência (roxo)
Esses blocos controlam a aparência do sprite, como mudanças de figurino, balões de
fala e efeitos visuais.
Mostre / Esconda: Faz o sprite aparecer ou desaparecer do palco.
Diga [mensagem] por [2] segundos: exibe uma fala acima do sprite por um
tempo determinado.
Mudar para a fantasia [nome]: muda o figurino atual do sprite (útil para
animações).
Mudar [valor] ao efeito [cor]: aplica um efeito visual ao sprite, como brilho,
transparência ou cor.
Blocos de som (rosa)
Esses blocos são usados para tocar sons e controlar o volume de áudio no projeto.
26Introdução à Programação de Jogos 
Tocar o som [nome] até o fim: toca o som selecionado até terminar.
27Introdução à Programação de Jogos 
Toque o som [nome]: permite a criação de música, tocando diferentes
instrumentos.
Mudar o volume para [valor]%: aumenta ou diminui o volume do som durante a
execução.
Blocos de eventos (amarelo)
Blocos de eventos são usados para iniciar scripts com base em certas ações ou
interações, como clicar na bandeira verde ou pressionar uma tecla.
Quando bandeira verde for clicada: inicia o script quando o ícone da bandeira
verde é clicado.
Quando tecla [espaço] for pressionada: executa o script quando uma tecla
específica é pressionada.
Quando este ator for clicado: executa o script quando o sprite é clicado pelo
usuário.
28Introdução à Programação de Jogos 
Blocos de controle (laranja)
Esses blocos controlam o fluxo do programa. Eles são usados para laços (repetições),
condicionais e sincronização entre diferentes partes do código.
Esperar [1] segundo: pausa a execução do script por um tempo determinado.
Se [condição] então: executa um grupo de blocos se a condição for verdadeira.
Repita [10] vezes: repete o bloco interno um número específico de vezes.
Sempre: cria um laço infinito que continua repetindo os blocos dentro dele até o
programa ser parado.
29Introdução à Programação de Jogos 
Criar clone de [nome do ator]: cria uma cópia de um sprite. Útil para jogos que
precisam de múltiplos personagens ou objetos.
Blocos de sensores (azul claro)
Esses blocos verificam o que está acontecendo no palco, como colisões entre sprites,
toques no mouse, ou valores de sensores.
Tocando [borda/sprite]?: verifica se o sprite está tocando em outro sprite ou na
borda do palco.
Distância para [nome]: retorna a distância entre o sprite atual e o spriteselecionado.
Perguntar [pergunta] e espere: exibe uma caixa de entrada de texto onde o
usuário pode inserir uma resposta.
Posição x ou y do mouse: retorna a posição X do mouse no palco, permitindo
controlar os sprites com o cursor.
Blocos de operadores (verde)
Os blocos operadores são usados para fazer cálculos matemáticos e operações
lógicas.
30Introdução à Programação de Jogos 
[valor] + [valor]: adição de dois números.
[valor]selecionado.
Perguntar [pergunta] e espere: exibe uma caixa de entrada de texto onde o
usuário pode inserir uma resposta.
Posição x ou y do mouse: retorna a posição X do mouse no palco, permitindo
controlar os sprites com o cursor.
Blocos de operadores (verde)
Os blocos operadores são usados para fazer cálculos matemáticos e operações
lógicas.
30Introdução à Programação de Jogos 
[valor] + [valor]: adição de dois números.
[valor] < [valor]: verifica se o primeiro valor é menor que o segundo, retornando
“verdadeiro” ou “falso”.
Número aleatório entre [valor] e [valor]: gera um número aleatório dentro de um
intervalo.
E / OU / NÃO: blocos lógicos para combinar condições.
Blocos de variáveis (laranja escuro)
As variáveis permitem armazenar e modificar valores ao longo do jogo, como a
pontuação ou tempo.
Mude [nome da variável] por [valor]: inicializa ou redefine o valor da variável.
Adicione [valor] para [nome da variável]: adiciona ou subtrai um valor da variável.
Esses são os blocos principais que formam a base do Scratch. Combinando esses
blocos, você pode criar comportamentos complexos de maneira visual e fácil de
entender.
Para entender melhor como fazer a movimentação e lidar com valores de X e Y
dentro do Scratch, vamos ver um pouco sobre o plano cartesiano.
O plano cartesiano 2D é uma maneira de representar pontos e movimentos em um
espaço bidimensional, que é amplamente usado em matemática e em plataformas
como o Scratch para definir a posição dos personagens (sprites). 
Vamos explorar os eixos X e Y e entender por que usamos valores positivos e
negativos para mover para diferentes direções.
31Introdução à Programação de Jogos 
Mostrar a variável [nome]: exibe o valor da variável no palco.
Blocos de Meus blocos (vermelho)
Estes blocos permitem criar funções personalizadas para organizar melhor o código.
Criar um bloco [nome do bloco]: cria um bloco personalizado, que você pode
reutilizar em várias partes do projeto.
O plano cartesiano: Eixo X e Y
O plano cartesiano é formado por dois eixos perpendiculares (em formato de cruz).
Eixo X (horizontal): representa a posição de um objeto ao longo da horizontal, ou
seja, da esquerda para a direita.
Eixo Y (vertical): representa a posição ao longo da vertical, ou seja, de baixo para
cima.
Esses dois eixos se cruzam em um ponto chamado de origem, que tem as
coordenadas (0,0). A origem é o ponto de referência para calcular qualquer
movimento ou posição no plano.
1
-1
32Introdução à Programação de Jogos 
Eixo y
Eixo x0
-1-2-3 2 3
1
2
3
-2
-3
Coordenadas
Cada ponto no plano é representado por um par de números na forma (X, Y), onde:
X: Indica a posição ao longo do eixo horizontal.
Y: Indica a posição ao longo do eixo vertical.
Movimentos no Eixo X (horizontal)
Valores positivos de X (para a direita):
- Quando o valor de X aumenta (se torna positivo), estamos movendo o ponto ou
sprite para a direita no plano.
- Exemplo: Se a coordenada do sprite é (0, 0) e você move 10 passos para a direita,
sua nova posição será (10, 0).
Origem
(10,0)
(0,0)
Valores negativos de X (para a esquerda):
- Quando o valor de X diminui (se torna negativo), estamos movendo o ponto ou
sprite para a esquerda no plano.
- Exemplo: Se a coordenada do sprite é (0, 0) e você move -10 passos, sua nova
posição será (-10, 0).
Portanto, no eixo X:
X positivo move para a direita.
X negativo move para a esquerda.
Isso acontece porque o plano cartesiano define o movimento em relação à origem
(0,0). Valores maiores que 0 estão à direita da origem e valores menores que 0 estão
à esquerda.
(0,0)
(-10,0)
Movimentos no Eixo Y (vertical)
Valores positivos de Y (para cima):
- Quando o valor de Y aumenta, o sprite se move para cima no plano.
- Exemplo: Se o sprite está na posição (0, 0) e você move 10 passos no eixo Y, sua
nova posição será (0, 10).
33Introdução à Programação de Jogos 
Valores negativos de Y (para baixo):
34Introdução à Programação de Jogos 
- Quando o valor de Y diminui, o sprite se move para baixo no plano.
- Exemplo: Se o sprite está na posição (0, 0) e você move -10 passos no eixo Y, sua
nova posição será (0, -10).
Portanto, no eixo Y:
Y positivo move para cima.
Y negativo move para baixo.
Como o plano cartesiano se aplica no scratch?
No Scratch, o palco também segue o plano cartesiano 2D com o ponto central (0, 0)
na origem. O palco vai de -240 a 240 no eixo X (horizontal) e de -180 a 180 no eixo Y
(vertical), dependendo da resolução.5
(0,0)
(0,0)
(10,0)
(-10,0)
Se você quer mover o sprite para a direita, aumenta o valor de X. Por exemplo, o
bloco Mover 10 passos adiciona +10 ao valor atual de X.
Se você quer mover o sprite para a esquerda, diminui o valor de X, como ao usar
Mover -10 passos.
Da mesma forma, se você quer que o sprite suba, aumenta o valor de Y.
35Introdução à Programação de Jogos 
Para o sprite descer, diminui o valor de Y.
36Introdução à Programação de Jogos 
Em resumo, o plano cartesiano permite um controle preciso da movimentação no
Scratch, onde:
X positivo = direita
X negativo = esquerda
Y positivo = cima
Y negativo = baixo
Compreender esse conceito ajuda a controlar qualquer personagem de forma
eficiente, criando movimentações e interações mais ricas em seus projetos.
Quadrantes
Por fim, precisamos entender sobre quadrantes, outro conceito muito importante
para entendermos mais como funcionam coordenadas em jogos 2D.
Um quadrante é uma das quatro regiões em que o plano cartesiano é dividido pelos
eixos X (horizontal) e Y (vertical). Esses eixos se cruzam no ponto de origem (0,0), e
cada quadrante é delimitado por diferentes combinações de sinais (positivos e
negativos) para os valores de X e Y.
37Introdução à Programação de Jogos 
Aqui, tanto X quanto Y são
positivos.
Exemplo: Um ponto (3, 5) está
no primeiro quadrante, pois
ambos os valores são positivos.
X é negativo e Y é positivo.
Exemplo: O ponto (-3, 5) está
no segundo quadrante, porque
X é negativo e Y é positivo.
Tanto X quanto Y são negativos.
Exemplo: O ponto (-3, -5) está
no terceiro quadrante, com
ambos os valores negativos.
X é positivo e Y é negativo.
Exemplo: O ponto (3, -5) está
no quarto quadrante, pois X é
positivo e Y é negativo.
Por que entender os quadrantes é importante?
Os quadrantes ajudam a visualizar a posição de pontos em relação à origem no
plano cartesiano e a entender a direção dos movimentos em ambientes gráficos,
como o Scratch, onde os sprites podem se mover de acordo com as coordenadas (X,
Y). Eles são úteis para organizar e planejar o espaço de trabalho em problemas de
matemática, física e programação.
Nesta unidade, passamos por alguns conceitos importantes de sistemas e
programação de jogos digitais até chegarmos ao funcionamento detalhado de uma
plataforma de programação sem código. Esperamos que, com esses conhecimentos,
você comece a programar o seu jogo! 
38
Glossário
Softwares: programas de computadores. 1
Inputs: informações ou comandos que um usuário fornece a um sistema ou
programa, permitindo que ele reaja de maneira adequada. Nos jogos digitais, os
inputs podem incluir ações como pressionar botões, mover o mouse ou tocar na
tela, influenciando o comportamento dos personagens e a dinâmica do jogo.
2
Templates: modelos pré-definidos que servem como ponto de partida para a
criação de projetos, como jogos ou aplicativos. Os templates contêm estrutura,
layout e elementos básicos, permitindo que os usuários personalizem e construam
sobre eles. 
3
Consoles: um dispositivo eletrônico dedicado exclusivamente a jogar videogames.
Consoles são conectados a uma televisão e geralmente possuem controles
específicos para cada plataforma. Exemplos: PlayStation, Xbox, Nintendo Switch.
Existem também versões menores e portáteis de consoles de videogame,
projetados para ser jogados em qualquer lugar
4
Resolução: quantidade de pixels na tela. 5
Introdução à Programação de Jogos 
40
REFERÊNCIAS
NYSTROM, Robert. Game Programming Patterns. 1. ed. 2014. Disponível em:https://www.amazon.com.br/Game-Programming-Patterns-Robert-
Nystrom/dp/0990582906. Acesso em: 08 out. 2024.
NOVAK, Jeannie. Desenvolvimento de Games. 1. ed. São Paulo: Cengage Learning, 2011.
Disponível em: https://www.amazon.com.br/Desenvolvimento-games-Jeannie-
Novak/dp/8522106320. Acesso em: 08 out. 2024.
MARQUES, Fernando. Low-Code/No-Code: Surprising Applications for Developers. 1.
ed. 2022. Disponível em: https://www.amazon.com.br/Low-Code-No-Code-
Developers-Surprising-Applications/dp/B0BL2RTFQQ. Acesso em: 08 out. 2024.
SANTANA, Aline. Aprenda a Programação: Algoritmos e Implementações em
Portugol. 1. ed. São Paulo: Novatec, 2019. Disponível em:
https://www.amazon.com.br/Aprenda-Programa%C3%A7%C3%A3o-Algoritmos-
Implementa%C3%A7%C3%B5es-Portugol/dp/8539907798. Acesso em: 08 out. 2024.
Introdução à Programação de Jogos 
https://www.amazon.com.br/Game-Programming-Patterns-Robert-Nystrom/dp/0990582906
https://www.amazon.com.br/Game-Programming-Patterns-Robert-Nystrom/dp/0990582906
https://www.amazon.com.br/Desenvolvimento-games-Jeannie-Novak/dp/8522106320
https://www.amazon.com.br/Desenvolvimento-games-Jeannie-Novak/dp/8522106320
https://www.amazon.com.br/Low-Code-No-Code-Developers-Surprising-Applications/dp/B0BL2RTFQQ
https://www.amazon.com.br/Low-Code-No-Code-Developers-Surprising-Applications/dp/B0BL2RTFQQ
https://www.amazon.com.br/Aprenda-Programa%C3%A7%C3%A3o-Algoritmos-Implementa%C3%A7%C3%B5es-Portugol/dp/8539907798
https://www.amazon.com.br/Aprenda-Programa%C3%A7%C3%A3o-Algoritmos-Implementa%C3%A7%C3%B5es-Portugol/dp/8539907798

Mais conteúdos dessa disciplina