Jogo

From LABMM1_IDE

Revision as of 23:01, 13 January 2011 by Filipabatista (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

No ecrã do jogo, o utilizador tem uma grande liberdade de interactividade: pode clicar no botão retroceder para regressar ao menu, pode clicar em Jogar para ir directamente para o jogo, em opções para escolher o modo como pretende jogar e por fim em instruções onde o utilizador pode ver como se joga.


Ao clicar em instruções o utilizador pode ver uma pequena demonstração de como deverá jogar. No entanto antes, deve ir ao ecrã opções a fim de escolher a maneira como querer jogar e assim de ver as instruções correspondentes à maneira de jogar escolhida.


Ao clicar em opções o utilizador vai ter a possibilidade de escolher se pretende jogar com o rato ou com o teclado. Ao escolher uma das opções, a variável corresponde à opção escolhida passa a true e assim o utilizador pode jogar através desse input.


Ao clicar em jogar o utilizador passa então para o jogo. No jogo, o utilizador tem que levar o sinal Wi-Fi da antena até ao Wi-Phi, apanhando pelo caminho o maior número de pontos que conseguir. Para dificultar um pouco o jogo, o utilizador tem 60 segundos para conseguir completar o nível e um limite de 3 vidas.


O tempo começa em 60 e vai decrescendo até chegar a 0. Quando chegar a zero passa directamente para o ecrã game over.


A programação do tempo é bastante simples. Primeiro foram criadas duas variáveis: seconds e tempoinicial. A variável seconds é iniciada a 0 e a tempo inicial captura o valor do getTimer() ao entrar na frame. De seguida é necessário que o getTimer seja novamente capturado a fim de que a variável seconds comece a zero exactamente quando o jogo começar. Depois apenas é necessário tornar essa informação visível, associando-a a uma caixa de texto. Nesta, ao valor da variável seconds (que é convertida para inteiro), é-lhe subtraído o valor 60, a fim de que o tempo seja decrescente e não crescente.


seconds = getTimer()/1000-tempoinicial;

temp_txt.text = 60 - parseInt(seconds);

if(seconds==60){

gotoAndPlay(246);

}


O utilizador tem também a limitação de apenas 3 vidas, o que faz com que tenha que ter cuidado para não tocar nas paredes pois, caso o faça, perde uma vida. Esta colisão é testada através do método hitTestObject. Ao ser verdadeiro, a variável vidas vai ser decrementada e o seu valor escrito numa caixa de texto dinâmica. Caso o utilizador perca todas as vidas, passa automaticamente para o ecrã game over.


if(labirinto.hitTest(wi_mc._x, wi_mc._y, true)){

vidas--;

vidas_txt.text = String(vidas);

}


O método hitTestObject é também o método utilizado para testar as colisões tanto com os pontos, que após a colisão saem fora do stage, como com o wi-phi, o que leva o utilizador para o ecrã ganhou.

Caso o utilizador escolha a opção teclas, se o utilizador clicar nas teclas direccionais (direita, esquerda, baixo e cima) o wi-fi vai ser movido continuamente 5 píxeis na direcção correspondente.


if(teclas ==true){

if(Key.isDown(Key.RIGHT)){

wi_mc._x += 5;

}

if(Key.isDown(Key.LEFT)){

wi_mc._x -= 5

}

if(Key.isDown(Key.DOWN)){

wi_mc._y += 5

}

if(Key.isDown(Key.UP)){

wi_mc._y -= 5

}

}


Caso o utilizador escolha a opção rato, se o utilizador clicar no wi-fi, começa a arrastar através do método StartDrag(). Caso liberte o botão do rato, para o drag utilizando o método StopDrag().


wi_mc.onPress = function(){

if(rato==true){

startDrag(this);

}

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox