Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

32
Pedro H. S. Raimundo Programador, Design e Fundador

Transcript of Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Page 1: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Pedro H. S. RaimundoProgramador, Design e Fundador

Page 2: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Mini-CursoTeoria•Programação•Design

Pratica•Desenvolvimento•Aplicação

Page 3: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Vamos desenvolver!!!!

Aplicação profissional totalmente integrada, multi-plataforma e uma das mais difundida nos dias atuais quando o assunto é produção de games independentes.

Crie games para PC, MAC, Wii, Iphone , Web e muito mais.

Alguns exemplos da própria Unity

Page 4: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Como funciona DevGame?GameArtGameDesignGameProgrammer

Game

GameArt

GameDesign

GameProgrammer

Page 5: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Alguns formatos para Games

2D

•Side-Scrolling

•Top-Side

•Shooter

3D •FPS•TPS

Page 6: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Brainstorm para Side-ScrollingDimensão

Época

Publico Alvo e Publicação

Inteligência

Personagem e NPC

Áudio

Textura ......

Page 7: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Sugestões....•Jogador• Pulo c/ Fogo• Controle de sensibilidade• (Atira projéteis) > Desafio

• Destruir NPC’s•NPC• Objetos caindo na tela

•Cenário• Plataformas simples (Chão)• Plataformas flutuantes• Terreno simples com montanhas

•Power-Ups• Caixas

• Pontos (Score)•GUI• Vida• Pontuação

Page 8: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Introdução ao Unity

• Visualização geral• Configuração de janelas• Entendo a Viewport (atalhos)• Atributos dos objetos• Trabalhando com Tag e Layers– Camera e Luz (Culling Mask)

• Usando Layouts

Page 9: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Manipulação de Objetos

• Escala, movimentação e rotação• Importando modelos 3D• Aplicação de materiais simples (shaders)• Aplicação básica de texturas• Criando Prefabs• Entendendo o Sistema GUI• Construindo Terrenos• Criação de cenários simples

Page 10: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Introdução a Iluminação

• Tipos de Luzes• Projeção de sombras• Trabalhando com Culling Mask

Page 11: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Introdução a Programação

• Lógica de programação• Conceitos básicos de programação• Comandos simples• Aplicando scripts

Page 12: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Programação

• Variáveis– Pequenas palavras que podem armazenar diversos

conteúdos de diversos tipos.– Ex: GameObject jogador;

• Tipos– Ex: Float pontuacao;

• Encapsulamento (OO)– Ex: private float Tempo;

Int: ...-1,0,1,...Float: 0.1f , 5.98f, 10fstring: “Olá Mundo”bool: true, false

Private (Padrao): privado(somente a classe)Public : publico a classe e outras classeStatic: reutilizável sem necessidade do newProtected: Protegido, sem alteração

Page 13: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Programação

• Atribuição– Setar valor a um objeto, segue ex:• Private float tempo• Tempo = Time.time;

• Comparação (utilizado em decisões)==!= ou !(negação)< ou <=> ou >=

Page 14: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Programação

• Aritméticos– Operações matemáticas• +• -• += ou -=• *= ou /=(tem q ser diferente de 0)• ++• --

Page 15: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Programação• Estrutura de decisão. O objetivo é identificar o

conteúdo de uma condição e direcionar o fluxo do programa para um determinado cálculo, rotina, desvio, função, etc.

• Primeiramente vamos entender o que é uma expressão condicional. Esta é uma expressão que sempre retorna um valor boleano, ou seja, verdadeiro ou falso.

• Exemplo: Preço é menor que 100.• Se preço for menor que 100 então o resultado da

expressão acima é VERDADEIRO. Caso contrario o resultado é FALSO.

Page 16: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Programação

• Você pode usar os seguintes operadores para fazer comparações em C#: (SUPONHA QUE A VARIAVEL SALARIO TENHA O VALOR 1200)

• Então a expressão que usamos no exemplo acima ficaria assim:

• Preço < 100

Page 17: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Programação

if ( expressãoondicional ){ bloco-de-codigo1}else{ bloco-de-codigo2}

Page 18: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Programação

Page 19: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Programação

• As estruturas de repetição são usadas para controlar a execução de códigos repetidamente até que uma condição seja verdadeira.

• Veja os tipos de estrutura de repetição que vamos aprender:– Laço for– Laço foreach

Page 20: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Programação

• O loop 'for' trabalha checando uma condição para executar um bloco de código até que essa condição seja verdadeira, no caso do loop 'for' temos que em sua syntax declarar sua inicialização, sua condição e seu incremento, veja:

• for (int i =0; i <= 10; i++) {

//instruções ;}

Ex: Construção de uma lista de Objetos a serem criados no jogo.

Page 21: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Programação

• O loop 'foreach' é usado para interagir (percorrer) listas. Ele opera sobre Arrays ou coleções veja sua syntax básica:

• foreach(<tipo de dado> <nome> in <lista>) {

//instruções }

Page 22: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Programação

• Veja um exemplo pratico para facilitar o entendimento:

• Percorrer os filhos de um objeto.– Mash’s do meu jogador

foreach (Transform filho in JogadorChuk) {

filho.transform.render.material=true;}

Page 23: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Programação

• Conceitos específicos C#– Utilização de Classe– Métodos (“Funções”)– Importação de bibliotecas

• using

• Conceitos específicos Unity– GameObject– Transform– Input– Colisão

Page 24: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Programação + Engine

• Input– As input’s tratam das informações de entrada que

o jogador irá mandar para o jogo.– Ex: Movimentos Horizontal e Vertical, Pulo, Atirar

e etc.– As input’s na maioria das vezes vem acompanhada

pelo Time.deltatime (unity), garantindo o bom funcionamento em qualquer maquina.

Page 25: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Programação + Engine

• Simples código para manipulação de movimento e pulo

• X = Input.GetAxis(“Horizontal”);• Y = Input.GetAxis(“Jump”);• transform.Translate(new

Vector3(x,y,0)*Time.deltaTime);

Page 26: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Programação + Engine

• Gravidade???– Rigidbody• Conceito de corpo rígido. Concentra informações sobre

um objeto como no mundo real.Ex: Massa, aceleração da gravidade e etc.

Page 27: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Programação + Engine

• Colisões (Unity)– Trigger (Transpassável) Ex: moedas– Collider(Não Transpassavel) Ex: Porta– Enter (Inicio) Ex:CheckPoint– Stay (Meio) Ex: Gás Venenoso– Exit (Fim) Ex: A Porta fechar

Page 28: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Programação + Engine

• OnCollisionEnter(Collision quem){

print(quem.name);}

• OnTriggerEnter(Collider quem){

print( Destroy(quem.gameobject) );}

Page 29: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Conceitos de Animação

• Manipulando animações• Trabalhando com curvas• Implementando animação no jogo

Page 30: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Finalizando...

• Configuração e compilação• Resolução gráfica

Page 31: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Criando o nosso JOGO

• Utilizando o maximo da ferramenta apresentada, iremos agora terminar de desenvolver o jogo em plataforma ( Side-Scrolling ) e fazer compilação.

Page 32: Mini-Curso Teoria Programação Design Pratica Desenvolvimento Aplicação.

Referencias

• www.unity3d.com– Software– Script Reference– Demos– Free Assets