sábado, 5 de fevereiro de 2011

Criação do Gerenciador de Arquivos

Criamos um script em python para nos auxiliar na adição e remoção de arquivos xml, já que essas operações podem desencadear modificações em diversos arquivos.

Assim, usaremos o GerenciadorDeArquivos.py (no diretório Livro) para criar/excluir páginas, opções, personagens ou pensamentos do livro interativo.

sexta-feira, 10 de dezembro de 2010

Resumo das próximas tarefas

Com as histórias atuais, devemos:
- Melhorar interface gráfica (imagens, planos de fundo, pensamentos, etc)
- Terminar de escrever os pensamentos

Com as próximas histórias, devemos:
- Escrever as histórias
- Procurar mais modelos 3D
- Guardar a relação de pessoas que se conhecem para alterar o andamento da história.
- Fazer a aparição de algum personagem determinar a próxima página.
- Fazer a aparição de algum personagem influenciar nos pensamentos.

terça-feira, 7 de dezembro de 2010

Assuntos discutidos na reunião de hoje

Sobre a consequência de uma opção

A consequência pode ser lançada no início da próxima págima ao invés de aparecer como popup.

Sobre os pensamentos

Especificação da classe

Pensamentos
Responsabilidades
Atribui um pensamento a um personagem de uma determinada página.
Atributos
TabelaDeSimbolos pensamentos_aleatorios
TabelaDeSimbolos pensamentos_determinados
LeitorDeXML leitor

Especificação do arquivo

Pensamentos aleatórios :
pensamentos_aleatorios
caracteristica
Lista de pensamentos:
pensamento

Lista de pensamentos determinados:
pensamento_determinado
chave
info

Sobre as histórias

"Lógica" das histórias

Para aumentar a interatividade, pensamos em fazer a aparição de um personagem, em um certo trecho da história, determine a próxima página diretamente. Isto é, basta um personagem aparecer junto ao personagem principal para mudar de página.

Pensamos também em guardar a relação dos personagens que se conhecem e o respectivo contexto em que se conheceram ou se viram pela última vez.

Uma ideia que talvez seja estudada mais para frente é estabelecer uma relação entre os pensamentos e aquilo que está interagindo com personagem na tela de realidade aumentada.

Ideias de histórias

Tivemos mais algumas ideias de histórias. Para ver uma síntese delas clique aqui.

domingo, 5 de dezembro de 2010

Decisões e idéias sobre interatividade

- Pensamentos

Decidimos que cada página conterá uma instância da classe Pensamentos(?).
Esse objeto contém os pensamentos dos personagens "relevantes" à respectiva passagem da história, e uma lista de pensamentos genéricos para outros personagens.
Tais pensamentos genéricos estão categorizados de acordo com a personalidade do personagem ao qual se atribuirá um pensamento aleatório.

Isso implica uma mudança na classe Personagem, que deverá ter um atributo "personalidade" ou algo similar.

Assim, se um personagem entra em cena e é importante nesse momento, terá atribuído a si um pensamento específico. Se não, terá um pensamento genérico correspondente a sua personalidade.

- Personagens que se conhecem

Esta é uma idéia de guardarmos quais os personagens que se conhecem, baseado em momentos em que eles apareceram juntos devido à intervenção do usuário. Isto é, se em algum momento o usuário fez a Cinderela e o Lenhador aparecerem na mesma cena, eles se conhecerão. Isto pode afetar o modo como a história se desenrola.

sábado, 4 de dezembro de 2010

Algumas ideias para a implementação dos pensamentos

Acreditamos que a exibição dos pensamentos dos personagens na tela de realidade aumentada será um aspecto importante na interatividade com o usuário.
Queremos criar um mecanismo que selecione os pensamentos a serem exibidos para casa personagem em um dado contexto.

Seguem algumas ideias para implementação desse mecanismo:
  • Cada personagem tem uma tabela de símbolos com o numero da página como chave e o pensamento que aparece nessa página como informação. Se a página atual não estiver na tabela, é sorteado um pensamento aleatório do personagem.
  • Cada página tem uma lista de pensamentos "úteis". Cada pensamento indica a que personagem ele pertence. (Poderíamos ter uma tabela de símbolos com o id do personagem como chave e o respectivo pensamento como informacao). Se um personagem colocado não conta na lista, então é sorteado um pensamento aleatório do personagem.
  • Criar uma classe "Pensamento" (pensamentos aleatórios, pensamentos do protagonista, pensamentos dos personagens interativos). Cada página teria um Pensamento. Quando a tag de um personagem aparece, o pensamento devolveria um texto que será mandado para o personagem. O personagem teria um balãozinho com o texto devolvido.

segunda-feira, 15 de novembro de 2010

Tarefas para a fase final do projeto

Resolvemos mudar a ênfase da próxima fase, que antes era a implementação da parte dos usuários, para o polimento da interface gráfica, das histórias e o aumento da interatividade (pensamentos e mais informações chave).

Antes da próxima reunião:
  • Pensar nas histórias [Su]
  • Ideias para melhorar a interface gráfica [Su]
  • Ideias sobre os pensamentos [Samu]
Assuntos para a próxima reunião
  • Discussão sobre como os pensamentos serão implementados (como o pensamento irá acompanhar o modelo?)
  • Discussão sobre como será a interface gráfica
  • Como organizar arquivos das páginas
Próximas Tarefas
  • Mudar o nome dos arquivos das opcoes (o número da página será indicado antes do número da opção)
Tarefas secundárias (talvez não sejam feitas até a entrega)

Usuários
  • Interface + implementação: botões (de cadastro e para salvar a história), campos para cadastro, carregar usuário, criar usuário, atualizar [Cy]
  • Salvar perfil XML (pesquisar como fazer para salvar um arquivo XML) [Su] [Cy]
  • Verificações de fluxo [Samu]
  • Deletar informações da história quando chegar ao fim[Cy] [Su]
  • Salvar a história [Su][Cy]
  • Carregar página inicial [Cy]
  • Passar página inicial e situação da história para o o construtor do Livro (utilizar parâmetros opcionais, implementar no arquivo Acoes.as) [Samu]
Assuntos secundários
  • Segurança dos dados (fazer senha para o usuário?)

sábado, 6 de novembro de 2010

Texto Justificado

Link com exemplo para justificar o texto em mxml:
http://livedocs.adobe.com/flex/3/html/help.html?content=textcontrols_04.html

Exemplo em AS3:
/* TextFormat fica no pacote flash.text */

//label1 is just a standard textfield
   label1.wordWrap = true;
   label1.multiline = true;
   var tmpFormat:TextFormat = label1.getTextFormat();
   tmpFormat.align = "justify";
   label1.defaultTextFormat = tmpFormat;