Prévia do material em texto
Recursos visuais de um jogo eletrônico Leopoldo França Introdução ao Coding (GAMES) Tipos de dados • Dado pode ser definido como informação em estado primitivo cujo processamento pode gerar informação útil. • Devido a natureza do que vai ser armazenado em memória, existem tipos de dados diferentes. • Tipo de dado representa o conjunto de valores possíveis para um dado. Tipos de dados • Iremos utilizar apenas cinco tipos de dados durante a criação de algoritmos: • Inteiro – Para representar informações que não possuem parte fracionária. Ex: 1, 2, 40000, etc.; • Real – Para representar informações que podem possuir parte fracionária. Ex: 2.718281828...; • Lógico – Para representar um estado ou situação que pode ser apenas verdadeira (true) ou falsa (false); • Caractere – Utilizado para armazenar um único caractere na memória. Ex: ‘A’; • Cadeia de caracteres – Utilizado para armazenar um seqüência de caracteres na memória. Ex: “Computador”. Tipos de dados em Java • Java possui oito tipos primitivos de dados: • Lógico: boolean • Texto (1 caractere): char • Inteiros: • byte (8 bits): -128 a +127; • short(16 bits): -32768 a +32767; • int (32 bits): -231 a + 231 – 1; • long (64 bits): -263 a + 263 – 1; • Reais: double e float • String: representa uma cadeia de caracteres. Operadores em Java •Operadores aritméticos •Consistem de: • Adição (+); • Subtração (-); • Multiplicação (*); • Divisão real entre dois números (/); • Divisão inteira entre dois números inteiros (/); • Resto da divisão inteira entre dois números inteiros (%). Operadores •Operadores relacionais • Utilizados na comparação de literais ou números; • Retornam valores lógicos; • Consistem de: • Igual a (==); • Diferente de (!=); • Maior que (>); • Menor que (<); • Maior ou igual a (>=); • Menor ou igual a (<=). Operadores •Operadores lógicos •Utilizados para combinar resultados de expressões lógicas; •Consistem de: • E (AND); • OU (OR); • NÃO (NOT). Tabela verdade das operações lógicas • NÃO • E • OU x y x E y Verdadeiro Falso Falso Verdadeiro Verdadeiro Verdadeiro Falso Verdadeiro Falso Falso Falso Falso x y x OU y Verdadeiro Falso Verdadeiro Verdadeiro Verdadeiro Verdadeiro Falso Verdadeiro Verdadeiro Falso Falso Falso x NÃO x Verdadeiro Falso Falso Verdadeiro Operadores Lógicos em Java •Operadores Booleanos: ! – Não (not) && - E (and) || - Ou (or) Constantes e Variáveis •Variável • Um dos conceitos mais importantes na construção de algoritmos. • Representa um espaço de memória reservado para armazenar determinado tipo de dado; • Deve receber um nome para referenciar e modificar; • Deve possuir um tipo associado; • Quando um algoritmo termina sua execução, todas as variáveis são apagadas da memória; • Só podem armazenar um dado por vez. Identificadores em Java • Devem começar com uma letra, um cifrão ($) ou um underscore (_) Exemplos: 1. Foobar 2. BIGInterface 3. $incomeAfterExpenses 4. 3_node5 5. !theCase Ok! Ok! Ok! Errado! Errado! Constantes e Variáveis • Declaração de variáveis • Toda variável utilizada em um algoritmo deve ser declarada. • A sintaxe utilizada em pseudocódigo é: • Exemplo linguagem algorítmica: • real: nota1, nota2, media; • Exemplo Java: • double nota1, nota2, media; <tipo>:<variavel1>, <variavel2>, ...; Atribuição •O que é atribuição? • “Atribui ou associa um valor a uma variável ou constante” •Ex: nome = “José”; media = (nota1 + nota2) / 2; FORMAS PRIMÁRIAS • size • background • width • height • point • line • quad • triangle • rect • ellipse • text Animação Técnicas de Animação Animação Assistida por Computador Computer animation 3D - (CGI) Motion Capture (Mocap) Aplicações Animação Tradicional Animação quadro-a-quadro Processo lento e trabalhoso Disney, Max Fleischer, HB Rotoscopia Usado em animação tradicional Reproduz os movimentos reais Desenhar ou animar por cima do vídeo Links: • The trick that made animation realistic • https://www.youtube.com/watch?v=IS1hCSsmH1E • The Art Of Rotoscoping • https://www.youtube.com/watch?v=gMjucU3YQQU • Behind the Scenes - Prince of Persia (1989) [Making of] • https://www.youtube.com/watch?v=ZW_eExHpTZI Rotoscopia Max Fleischer Pioneiro Patente 1917 Stop Motion Coisas estáticas tenham movimento Quadro-a-quadro Grava, para, movimenta, grava ... Animação Assistida por Computador Animação Tradicional Uso do Computador • Pintura • Keyframe • Edição • Distribuição • Rotoscopia • Animação 3D (CGI) Computer animation 3D - (CGI) Luxo Jr. - PIXAR (1986) https://www.youtube.com/watch?v=gT8rSL0deg8 Luxo Jr. - CGI making of (1986) (HD) https://www.youtube.com/watch?v=MJQRVKtwr70 405: The Movie https://www.youtube.com/watch?v=uQ7ImM9Bys8 https://www.youtube.com/watch?v=gT8rSL0deg8 https://www.youtube.com/watch?v=gT8rSL0deg8 https://www.youtube.com/watch?v=MJQRVKtwr70 https://www.youtube.com/watch?v=uQ7ImM9Bys8 Motion Capture (Mocap) Capturar os movimentos Várias câmeras, software, estúdio Processo relativamente caro Links • http://en.wikipedia.org/wiki/Animation • http://www.stopmotionpro.com/tutorial_roto.htm • http://www.metamotion.com/captor/motion-captor-comparison.htm • http://www.vicon.com/ Código fonte // O número de imagens que a animação terá int numFrames = 15; int currentFrame = 0; PImage[] images = new PImage[numFrames]; int posX = 0; int speed = 20; void setup() { size(640, 360); frameRate(24); //Carregar e atribuir cada uma das imagens ao Array for (int i = 0; i < numFrames; i++) { String imageName = "Run (" + (i + 1) + ").png"; images[i] = loadImage(imageName); } } void draw() { background(0); // Usa-se o operador % para servir de índice para a troca de imagens currentFrame = (currentFrame+1) % numFrames; scale(0.25, 0.25); image(images[currentFrame], posX, 0); //Adiciona o valor da velocidade a posição a cada frame posX = posX + speed; } DÚVIDAS ?