Trabalho GA - Editor de Cenário Isométrico

Documentos relacionados
Trabalho GA - Editor de Cenário Parallax

AULA 2 Planos Vistas e Temas

Agendamento de Entregas

Material reorganizado e adaptado por: Suéllen Rodolfo Martinelli. Disponibilizado em:

Introdução ao ProjectLibre

Aula 04 Tipos de arquivos e Fireworks

Tutorial sobre o MineraFórum I. Introdução

INTRODUÇÃO AO USO DO DEV C++ Disciplina: Introdução à Ciência da Computação Prof. Modesto Antonio Chaves Universidade estadual do Sudoeste da Bahia

MANUAL DO ALUNO INSTITUTO BÍBLICO DA IGREJA CRISTÃ MARANATA

Introdução a Tecnologia da Informação

O Camguard permite detectar e gravar vídeos facilmente com uma webcam.

A instalação do DCR compreende apenas a descompactação do arquivo DCR.zip num diretório no disco. Descompacte o arquivo DCR.zip num novo diretório.

Tutorial sobre o uso da ferramenta de autoria A Ferramenta de Autoria - Célula

Manual de Utilização

PedidosWeb Manual do Usuário

PROTOCOLO ONLINE. Após realizar o login, na tela inicial, o aluno irá clicar em Educacional, para visualizar todas as funcionalidades acadêmicas.

SAGE SUGESTÕES. Este processo irá ajudar a Sage a definir as prioridades, e você cliente, fará parte desta definição!

AULA 7: BrOffice Writer Ultimas Ferramentas. Ao final dessa aula, você deverá ser capaz de:

FUNCIONALIDADES DO STCPCONSOLE

Segundo trabalho prático de implementação Sistema de reserva de assentos

COMPUTAÇÃO GRÁFICA - PROF. MSC. LEANDRO TONIETTO SELEÇÃO DE OBJETOS EM OPENGL - SELECT BUFFER

Ambiente de programação

Como abrir arquivo XML no Excel

Como configurar integração com separador Centro de custo sem rateio de lançamentos?

Instalação e utilização do Software Pináculo SMS

O manual do Kaffeine. Jürgen Kofler Christophe Thommeret Mauro Carvalho Chehab

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

SCC0504 Programação Orientada a Objetos Projeto

Manual do SARE para Projetos de Restauração Ecológica

Modelo de Interação (revisão) Design de IHC Da interação para o Design da Interface

Especificação de Caso de Uso

Instalação Serviço de Acompanhamento de Projeto (PCSIS007) Sistema de Gestão da Qualidade

Centro de Suporte. (Sistema Android) RCAMail Manual de Utilização Página 1

Release Notes. Produto: Fusion Platform Versão: 3.6 Data da Liberação: 25/09/2018. Pré-requisitos: Aplicação do pacote

Tutorial para Ativação e Atualização de GPS Importante: Para GPS com versão 8,24 não há a necessidade de atualização. Para ver que versão o cliente

1. Introdução O que é Microsoft PowerPoint Recursos de PowerPoint. Introdução

Manual Sistema de Automação de Pedidos Data C

Vejamos agora as ferramentas mais utilizadas para criação de imagens:

PROGRAMACAO E INTEGRACAO DE JOGOS I

Versão 8.2C-09. Domínio Atendimento

MANUAL DO PROFESSOR AMBIENTE VIRTUAL DE APRENDIZAEGEM

Motivação Por que estudar?

Tutorial de instalação e configuração do Software Giga VMS

Versão 8.3A-01. Versão Final da Apostila de Novidades

SISTEMA DE GESTÃO DE RECURSOS HUMANOS

CAU Controle de Acesso Unificado. Manual de Usuário

Conciliação de Movimentos Contábeis

Fixo (41) Vivo (41) Tim (41) Claro (41) OI (41) Sistema Descomplicado CNPJ

Conectar-se ao quadro branco remoto

Solicitação do Cliente

Desenho de uma matriz de retângulos Serve de base para o exercício das cores

Como configurar integração com separador Centro de custo e rateio conforme cálculo da folha?

Sistema de Gestão dos Processos de Acesso - Guia Rápido

MANUAL DO PROGRAMA SBB ON-LINE VERSÃO 2013 PAGSEGURO

Tutorial da ferramenta de modelagem ASTAH (Versão resumida) Prof. Moacyr Franco Neto

Sistema Gestão Portal UFGD

Fluxogramas. Leandro Tonietto ago-09

Macros no LibreOffice

UNIMED SANTA BARBÁRA D OESTE AMERICANA E NOVA ODESSA. Manual Secretária EMED Manual versão 1.1

Sumário. 1- Notícias. 1.1 Publicando uma nova notícia Blocos de edição

Listagens & Relatórios

Aula 01 Microsoft Excel 2016

Portal de Atendimento Telluria

Manual de Utilização

Informática para Concursos 1

Adicionar uma figura, como um botão Submeter, a um formulário

Utilizando o Word para criar Relatórios

Programa Institucional de Bolsa de Iniciação à Docência PIBID MANUAL DE OPERAÇÃO

Edição Vetorial Criação de camadas

Exibe configurações do otimizador que podem ser editas pelo usuário. Cada otimizador possui configurações diferentes.

Manual do Usuário. Versão 1.0. Página 1 de 73

MANUAL TERMINAL DE CIRCULAÇÃO (BILIOTECA) Este tutorial irá servir como base para o uso do Terminal de Circulação.

Ferramenta: Spider-CoCoMo

Este manual contém as principais funcionalidades e explicações a respeito do funcionamento do portal de vendas PULVITEC.

TUTORIAL DO BLOG IMES-CATANDUVA Profº M. Sc. Marcelo Mazetto Moala Profº Esp. Antonio Marcio Paschoal

SISTEMAS JURÍDICOS SAG SISTEMA DE APOIO AOS GABINETES

Transcrição:

Objetivo A tarefa consiste em criar um editor gráfico de cenários para jogos 2D com visão isométrica. O editor deve permitir que o usuário possa criar, abrir e editar mapas (tilemaps) com tileset de visão isométrica. A interface e operação do sistema consiste em: (1) Ao criar um novo mapa, o usuário deve informar o número de colunas e de linhas do tilemap. (2) O editor mostra uma matriz de losangos (visão wireframe para o usuário ter como guia) e também uma lista de imagens de um tileset (no início vazia). (3) O usuário pode carregar imagens e coloca-las dentro da lista de imagens (tileset). (4) Quando o usuário clica numa imagem o editor espera que ele clique numa posição da matriz (wireframe). Quando ele clica na matriz na tela, associa-se o id do tile clicado com a respectiva posição clicada matriz e o editor deve desenhar o tile naquela posição para exemplo para o usuário. (5) No caso de o usuário abrir abrir um arquivo de cena, o editor deve obter as informações de largura, altura, tilemap e tileset do arquivo do cenário que está gravado em disco. (6) Na opção de salvar, o editor deve gravar a matriz do tilemap, a largura e altura desta matriz e o tileset com os tiles utilizados no mapeamento. No caso dos tiles, podemos gravar de duas maneiras diferentes (o grupo escolhe qual formato a implementar): (1) Abordagem mais simples: gravar apenas o nome das imagens do arquivos dos tiles. Assim, cada vez que carrega o cenário deve-se carregar as imagens de arquivos separados para colocar dentro do tileset; ou (2) Abordagem mais complexa: gravar as imagens dentro do arquivo do cenário. Neste caso, deve-se armazenar para cada tile, cada pixel e para cada pixel o R, G e B que forma a sua cor. Poderíamos, neste caso, seguir a idéia de gravar um PPM para cada tile dentro do arquivo do cenário. Além destes itens são apresentados outros que valem pontos extras para o trabalho: permitir selecionar e arrastar imagens pelo cenário e carregar uma animação como imagem do personagem. Com personagens e objetos não estáticos na cena, devemos manter uma matriz de tiles (tilemap) para o fundo do cenário e uma matriz de tile (elementos) para representar os personagens ou objetos não estáticos que ficam sobre o mapa (cenário). Considerações para o desenvolvimento do trabalho Como forma de organização de trabalho, para facilitar e antecipar a implementação do trabalho, o aluno implementar as funcionalidades conforme elas são estudadas, no decorrer do grau A. Portanto, representar e carregar imagens, depois tilemaps e por fim a lógica de visão isométrica. Deve-se implementar as classes de estrutura básica conforme o diagrama de classes proposto para tiles, tilemaps, tilesets e visão mostrados em aula. Em geral, como uma boa prática de programação, para cada funcionalidade deve ser implementada no mínimo uma classe. Todas as funcionalidades recebem parâmetros apropriados e devolvem algum objeto ou retorno de sucesso, ou um objeto de exceção ou retorno de insucesso. As exceções retornadas são exibidas ao usuário como mensagens de erro. A funcionalidade de interface gráfica, mesmo não sendo a prioritária no trabalho, é muito trabalhosa e requer muitos cuidados ou pontos de atenção. Por exemplo, os alunos devem se preocupar em como capturar comandos ou como selecionar objetos no cenário, devem se preocupar em como o usuário escolhe um arquivo para abrir, como as imagens ficarão dispostas na tela, como propiciar uma interface fácil para o usuário colocar e retirar imagens do tileset. Então, vale a pena gastar um tempo estudando as bibliotecas gráficas que serão utilizadas com linguagem escolhida para não se depararem com maiores surpresas. Prof. Ms. Leandro Tonietto! 1/5

O formato de arquivo das imagens carregadas que deve ser implementado é o PPM (conforme especificação descrita em http://www.fileformat.info/format/pbm/egff.htm) ou PCX (conforme especificação descrita em http://www.fileformat.info/format/pcx/egff.htm). Para os demais formatos de imagem (JPG, GIF, PNG,...) que o aluno quiser que editor suporte, pode-se utilizar bibliotecas já existentes para leitura e gravação. Apenas seria interessante que fossem portadas (entradas e saídas) para o mesmo esquema de leitura e gravação dos formatos exigidos. Diagrama de classes que deve ser seguido: Sugestão de interface: Prof. Ms. Leandro Tonietto! 2/5

! Atividades a serem programadas Descrição das atividades por funcionalidade exigida: (1) Interface: a interface do sistema, idealmente, deve seguir o modelo conforme figura 1. Contudo, este não é critério rígido, o software pode sugerir outra interface/layout, desde que possibilite as mesmas interações (funcionalidades) ao usuário. Mapa: desenhar uma visão wireframe do mapa, de acordo com as dimensões escolhidas pelo usuário ou lidas de arquivo. Utilizar o mesmo algoritmo do primeiro exercício da disciplina. Barra do tileset: mostra os tiles do cenário na ordem em que são adicionados pelo usuário. Menu de opções / botões: são as opções do usuário no sistema (novo, abrir, salvar, adicionar tile e remover tile). Uma sugestão de interface é carregar uma imagem para cada botão de opção. (2) Novo: abrir um novo objeto que representa o cenário, limpa o mapa da tela e pode ou não limpar o conjunto de tiles. O software deve solicitar ao usuário qual é o tamanho da tilemap do cenário (portanto, as dimensões de desenho do cenário para visualização). (3) Abrir: nesta opção, o usuário pode carregar um arquivo no modelo da aplicação. O aluno deve implementar uma classe com um método que recebe como parâmetro uma String e retorna, em caso de sucesso na leitura, um objeto do tipo cenário (conforme especificação do formato de arquivo script.isom ); Em caso de erro, devido a alguma falha de leitura, como arquivo não existente ou arquivo com formato inválido, o objeto que carrega o cenário deve retornar um objeto de exceção ou de sinalização de erro. (4) Salvar: assim como na opção abrir, aluno deve implementar uma classe para gravar em arquivo o cenário montado (também no formato. isom ). A classe tem um método salvar que recebe um objeto do tipo cenário e um caminho com o nome/local do arquivo a ser gravado. Se o objeto conseguiu realizar o salvamento sem erros pode dar um retorno de sucesso ou não retornar nada (void); entretanto, em caso de falha, como um diretório inválido ou tipo de extensão inválida, o software deve retornar uma exceção apropriada para cada erro. (5) Adicionar tile: o objetivo desta função é adicionar novos tiles no tileset. O usuário clica em adicionar e o sistema solicita o caminho para o arquivo. O tile é carrega no formato PPM ou PCX e vai para lista do tileset. (6) Remover tile: remove um tile selecionado do tileset e também a sua referência (id) na matriz do tilemap Formato isom O programa deve gravar e ler de arquivo um cenário 2D produzido nele mesmo. Logicamente, este arquivo deve conter toda a informação necessária para ser reproduzido. Tendo em mente que objetivo é produzir um cenário composto por layer, então o formato de gravação é: Sintaxe do arquivo <nome> <Largura> <Altura> <width> <height> matriz com ids dos tiles <número de tiles> <tilewidth> <tileheight> <caminho da imagem do tile> Exemplo de um arquivo de cenário 2D: Conteúdo do arquivo Explicação das linhas nome, largura e altura do tilemap e largura e altura da imagem final a matriz deve ser gravada por linha e cada coluna separa por espaço após a matriz de índices vem as informações sobre o tileset: número de tiles e a largura e dimensão dos tiles. uma linha de caminho para cada tile ou os pixels (RGB) de cada tile. Explicação das linhas Prof. Ms. Leandro Tonietto! 3/5

CenárioTeste 5 3 640 480 0 0 0 0 0 0 1 2 2 1 0 0 0 0 0 3 64 64.\tiles\tile0.ppm.\tiles\tile1.ppm.\tiles\tile2.ppm Cenário de teste com tilemap de 5 colunas por 3 linhas e imagem final de 640 x 480 pixels (largura x altura) Matriz de índices par os tiles a serem desenhados na tela. Tileset, com 3 tiles de 64 x 64 pixels (largura x altura) Uma linha de caminho para cada tile ou os pixels (RGB) de cada tile. Avaliação Os critérios para avaliação do trabalho são a correta implementação das atividades da seção Atividades a serem programadas, além da criatividade e qualidade de código. Distribuição dos pesos: Interface gráfica: funcionalidade e usabilidade (20%) Novo, Carregar e salvar no formato ISOM (30%) Adicionar tile: leitura de arquivos de imagem no formato PPM, PCX ou SGI (30%) Remover tile: remoção do tile do tileset e do tilemap (5%) Mouse para edição de cenário (15%) Pontos-extra: - São pontos que são dados a funcionalidades que vão além da especificação básica e que podem substituir algum ponto deficitário do programa, ou agregar na nota geral do GA. - Serão considerados pontos-extra: Prever um tilemap para elementos que ficam em cima do cenário Suporte a outros formatos de imagens, sendo que pelo menos mais um tem que ser implementado. Gravar imagens dentro do arquivo ISOM Alteração do formato do arquivo de cenário para binário e para gravar também as imagens do cenário. Sugestões de desenvolvimento Como o trabalho é extenso, com diversos pontos que requerem tratamento de possibilidades (como imagens em formato PPM, PCX ou SGI), então um boa rotina para se chegar a resultado aceitável do trabalho é: (1) Primeiro ter algo que funcione e possa servir de base para os demais passos: a) Implementar apenas uma versão do PPM, PCX ou SGI, mas que tenha suporta a pelo menos transparência. No caso do PPM, podemos adotar uma cor como transparente ou utilizar o formato PTM (que é um PPM com canal alfa) b) Fazer classes e desenho do cenário. Tentar diminuir o número de parâmetros informados pelo usuário, isto gera menos programação. c) Implementar função de manutenção do tileset. d) Implementar as funções salvar e carregar cenário (2) Depois de fazer os passos da estratégia 1, implementar funcionalidades com maiores detalhes e ponto-extra: a) Verificar detalhes pendentes no passo 1 b) Opção novo cenário. c) Terminar implementação completa do formato de arquivo de imagem d) Implementar detalhes de interface, como validações de entrada de dados do usuário e clique do mouse para edição. e) Implementar ponto-extra Prof. Ms. Leandro Tonietto! 4/5

Considerações finais Alguns aspectos gerais devem ser considerados na realização do trabalho: O trabalho deverá ser realizado OBRIGATORIAMENTE em DUPLA. Quando se diz que um trabalho deve ser feito em duplas, os dois integrantes devem, efetivamente, participar da realização, sob pena de nota diferenciada na avaliação. IMPORTANTE 1: Atividades copiadas da Internet ou dos colegas serão avaliadas com conceito Reprovado, portanto, menor que 6. Não deixe para a última hora, converse com o professor durante as aulas e receba orientações do que deve ser feito para atingir o objetivo. Caso algum integrante da dupla desista da atividade acadêmica, o outro integrante deverá dar continuidade ao projeto sozinho. IMPORTANTE 2: a entrega do trabalho compreende na entrega e apresentação do código-fonte ao professor pelos dois integrantes do grupo, aonde será evidenciado entendimento do mesmo e a efetiva participação dos integrantes. Em caso de dúvidas ou problemas contate o professor o quanto antes, para se possa encaminhar alguma outra solução em tempo hábil. Questões sobre programação: - Linguagens: C++ ou Java. - Em ambos os casos, o aluno deve implementar o que foi solicitado, não deve fazer uso de bibliotecas. Por exemplo, o aluno deve implementar o algoritmo para carregar o arquivo PNM e não utilizar biblioteca pronta. De qualquer maneira, na dúvida questione o professor para não ser surpreendido na avaliação. Atualização do documento: 08/04/2013 Prof. Ms. Leandro Tonietto! 5/5