Produção
From LABMM1_IDE
| Line 166: | Line 166: | ||
[[File:bolinhas_wifi.png]] | [[File:bolinhas_wifi.png]] | ||
| + | |||
| + | |||
| + | ---- | ||
| + | |||
| + | '''Soluções técnicas adoptadas para a resolução de problemas''' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | |||
| + | Ao longo do desenvolvimento da aplicação, surgiram alguns problemas na programação. | ||
| + | |||
| + | |||
| + | Existiram alguns problemas relacionados com o botão on do som, uma vez que ao clicar no mesmo os sons estavam-se a sobrepor, estando o som de fundo a ser repetido. Como resolução a este problema, criou-se uma variável auxiliar “aux” e uma nova variável para guardar a posição do som “pos2”. Através destas foi possível por o som a tocar apenas se não estivesse a tocar, parando o som que estivesse a tocar e recomeçando na nova posição. | ||
| + | |||
| + | |||
| + | '' on_btn.onPress = function (){ | ||
| + | |||
| + | aux = true; | ||
| + | |||
| + | som2.start(); | ||
| + | |||
| + | pos2 = som.position/1000; | ||
| + | |||
| + | if(aux == true){ | ||
| + | |||
| + | som.stop("musica_fundo"); | ||
| + | |||
| + | som.start(pos2); | ||
| + | |||
| + | } | ||
| + | |||
| + | else | ||
| + | |||
| + | som.start(pos); | ||
| + | }'' | ||
| + | |||
| + | |||
| + | Outro problema que ocorreu foi em relação a uma conversão de um valor de Number para inteiro, uma vez que encontrar o método que o permitisse foi bastante complicado. | ||
| + | |||
| + | |||
| + | ''temp_txt.text = 60 - parseInt(seconds);'' | ||
Latest revision as of 23:29, 13 January 2011
Neste tópico do relatório vai ser apresentada a produção das várias partes da aplicação, explicando inicialmente o modo de funcionamento e navegação na aplicação, seguindo depois para os elementos/objectos da aplicação e por fim, uma pequena conclusão do tópico onde se irá discutir as soluções apresentadas para a resolução dos problemas.
Estrutura e meios de navegação/interacção
Vão ser então apresentados os vários ecrãs: Intro, Menu, Jogo, Game Over, Ganhou, Sair, Créditos e Extras. Irá ser explicada toda a navegação/interacção possível, bem como alguns excertos de código mais relevantes.
Integração e controlo de som
A aplicação é composta por 4 sons: a música de fundo, a música para quando o utilizador ganha o jogo, a música para quando o utilizador perde o jogo e o som ao clicar nos vários botões. Em baixo vai então ser explicada a integração e o controlo dos vários sons.
Integração do som
A integração do som foi feita através da importação dos vários sons para a library. Nesta foi feito o linkage para cada um dos mesmos, a fim de os poder programar. Uma vez dado nome às várias novas classes, passou-se então para a programação do controlo dos sons.
Controlo de som
Em relação ao som de fundo, este vai estar automaticamente a tocar, assim que a sua importação terminar. Também o seu volume é colocado a 100, uma vez que o volume da própria música é bastante baixo.
var som:Sound = new Sound();
som.attachSound("musica_fundo");
som.setVolume(100);
som.start();
som.onSoundComplete = function(){
som.start();
}
Também o som dos botões é importado e tratado da mesma maneira. A este é feito o play sempre que o utilizador clique num dos botões.
creditos_btn.onPress = function(){
som2.start();
...
Ao longo da aplicação vão estar sempre presentes os botões de controlo de som on e off.
Ao clicar no botão off este vai guardar a posição do som, numa variável denominada por. Ao clicar no botão on, o som vai tocar a partir desse ponto. Caso o som já esteja a tocar quando o utilizador carregar no botão on, vai ser guardada uma nova posição do som e vai começar a tocar a partir desse ponto.
off_btn.onPress = function (){
som2.start();
som.stop("musica_fundo");
pos = som.position/1000;
}
on_btn.onPress = function (){
aux = true;
som2.start();
pos2 = som.position/1000;
if(aux == true){
som.stop("musica_fundo");
som.start(pos2);
}
else
som.start(pos);
}
Este controlo é utilizado tanto para o som de fundo, como para os sons ganhou e game over nos respectivos ecrãs.
Animação
Ao longo de toda aplicação são visíveis várias animações, criadas através de movieclips, shapetweens e motiontweens.
Animação inicial
A animação inicial, trata-se de uma pequena apresentação e introdução à aplicação, a fim do utilizador poder compreender que tema a aplicação vai abordar.
A animação é composta pela mascote da aplicação, Wi-Phi que, através do balão de fala, explica ao utilizador em que consiste a aplicação.
Primeiro é feita uma animação da entrada do wi-phi. Esta é uma animação keyframe, que utiliza um motionTween e uma guide.
De seguida é feita uma animação tanto do “sinal wireless” do wi-phi como do balão de fala. Esta animação é uma animação keyframe, utilizando um shapeTween. A animação do balão de fala é uma simples animação keyframe e por fim, a animação da entrada para o menu é um tween de alpha.
Animação ecrã história
No ecrã história, ao clicar nas datas, decorre uma pequena animação. Esta é uma animação keyframe, com utilização de um shapeTween e de uma mask, a fim de apenas revelar uma pequena parte da linha.
Animação botões
Em todos os botões da aplicação, existe uma animação de mudança de cor, aquando o evento do tipo mouseOver.
Animação instruções
No ecrã instruções existem duas pequenas animações.
Caso o utilizador escolha, em opções, jogar com as teclas, vai visualizar uma demonstração de como jogar com as teclas. Esta animação é keyframe, com shapeTween.
Caso o utilizador escolha jogar com o rato, vai então visualizar uma demonstração. A animação do sinal wi-fi é uma animação keyframe com shapeTween, a animação do rato é uma animação keyframe e por fim, a animação da mão é uma animação keyframe com motionTween.
Animação extras
No ecrã extras está presente uma animação de uma bola que se transforma num quadrado. Esta animação é keyframe com shapeTween e tween de cor.
Soluções técnicas adoptadas para a resolução de problemas
Ao longo do desenvolvimento da aplicação, surgiram alguns problemas na programação.
Existiram alguns problemas relacionados com o botão on do som, uma vez que ao clicar no mesmo os sons estavam-se a sobrepor, estando o som de fundo a ser repetido. Como resolução a este problema, criou-se uma variável auxiliar “aux” e uma nova variável para guardar a posição do som “pos2”. Através destas foi possível por o som a tocar apenas se não estivesse a tocar, parando o som que estivesse a tocar e recomeçando na nova posição.
on_btn.onPress = function (){
aux = true;
som2.start();
pos2 = som.position/1000;
if(aux == true){
som.stop("musica_fundo");
som.start(pos2);
}
else
som.start(pos); }
Outro problema que ocorreu foi em relação a uma conversão de um valor de Number para inteiro, uma vez que encontrar o método que o permitisse foi bastante complicado.
temp_txt.text = 60 - parseInt(seconds);



