Buscar

Tipos de Dados e Operadores em Java

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 ?

Mais conteúdos dessa disciplina