Name This Game
Modelos
Protótipo Geral Interativo
*Clique na janela do jogo e use SPACE para atirar e RIGHT e LEFT para se mover*
Temos acima os protótipos:
- Movimento do Mergulhador
- Tiro de Arpão
- Movimento da Lancha
- Movimento do Tubarão
- Morte do Tubarão



- Animação de quadros
- Todos os personagens possuem uma animação de alguns quadros. O módulo da variável de tempo representa qual quadro de movimento será exibido.
Resto de tempo dividido por número de quadros, resultará no quadro em questão.
Resto(tempo/quantQuadros) = quadroAtual
quantQuadros = 2;
switch (temp%quantQuadros)
___ case 0:
___ ___ Imagem(01);
___ case 1:
___ ___ Imagem(02);
- Um boleando na movimentação dirá se vai para a direita ou para a esquerda;
DiraçãoDireita = true/false;
- Todos os personagens possuem uma animação de alguns quadros. O módulo da variável de tempo representa qual quadro de movimento será exibido.
- Movimentação
- Para mover horizontalmente a cada intervalo de tempo a localização no eixo X irá incrementar o valor da velocidade. Para direita irá somar, para esquerda subtrair;
eixoX = eixoX + velocidade
posiçãoX = posiçãoX + velocidade;
if(direção == direita)
___ velocidade = +5;
else
___ velocidade = -5;
- O mergulhador só se moverá com o clique das respectivas teclas;
- A lancha, ao sua extremidade tocar a borda da janela o sentido do movimento será trocado;
eixoX >= larguraMaximaDaJanela;
eixoX <= larguraMinimaDaJanela;if(xLancha >= LarguraDaJanela)
___ direção = esquerda
if(xLancha <= 0)
___ direção = direita
- O Tubarão tem a mesma movimentação da lancha com um acréscimo, quando ele inverte o movimento ele aumenta sua velocidade e desci (soma) um pouco mais no eixo Y;
velocidade = velocidade + nivelDificuldade;
eixoY = eixoY + alturaTubarao/2;if(xTubarão >= LarguraDaJanela)
___ direção = esquerda;
else if(xTubarão <= 0)
___ direção = direita;
velocidadeTubarão += 5;
yTubarão += 25;
- Para mover horizontalmente a cada intervalo de tempo a localização no eixo X irá incrementar o valor da velocidade. Para direita irá somar, para esquerda subtrair;
- Mergulhador
- Para atirar o arpão, ao clicar no SPACE será gravado o X do jogador, e o projetio será lançado, a partir da altura do mergulhador até a superfície;
eixoYArpao = eixoXMergulhador;
eixoY = eixoY - velocidadeArpão;if(SPACE)
___ xArpão = xMergulhador;
___ atirar = true;
___ yArpão = yMergulhador;
if(atirar)
___ yArpão -= velocidadeArpão;
if(yArpão > ySuperficie)
___ atirar = false;
- Caso o jogador toque na mangueira de oxigênio, sua barra de vida aumenta. e Também recebe 10 pontos;
( eixoXMergulhador + larguraMergulhador/2 ) > eixoXMangueira
and
( eixoXMergulhador - larguraMergulhador/2 ) < eixoXMangueira
if(xMergulhador + 50 > xMang && xMergulhador - 50 < xMang)
___ oxi += 3;
___ ponto += 10;
- Para atirar o arpão, ao clicar no SPACE será gravado o X do jogador, e o projetio será lançado, a partir da altura do mergulhador até a superfície;
- Companheiro da lancha
- A cada time “definido como 10 segundos”, cria uma linha com o ponto inicial XLancha e YLancha e como ponto final XLancha e YMergulhador;
Resto( tempo / Segundos * frameRate ) == 0
if(temp%( 10 segundos * frameRate) == 0)
___ line(xLancha, yLancha , xLancha, yMergulhador);
- A cada time “definido como 10 segundos”, cria uma linha com o ponto inicial XLancha e YLancha e como ponto final XLancha e YMergulhador;
- Tubarão
- Se o XArpao e YArpao estiver em contato com o XTubarão e YTubarão, o XTubarão será alterado para XTubarãoInicial e YTubarãoInicial com VelocidadeTubarãoInicial. Acrescentando ainda 100 a variavel Ponto;
( eixoXTubarão + larguraTubarão/2 ) > eixoXArpão
and
( eixoXTubarão - larguraTubarão/2 ) < eixoXArpão
and
( eixoYTubarão + alturaTubarão/2 ) > eixoYArpão
and
( eixoYTubarão - alturaTubarão/2 ) < eixoYArpão
if(
___ xTubarão + 50 > xArpao && xTubarão - 50 < xArpao &&
___ yTubarão + 20 > yArpao && yTubarão - 20 < yArpao
)
___ xTubarão = xTubarãoInicial
___ yTubarão = yTubarãoInicial
___ vTubarão = VelocidadeTubarãoInicial
___ Ponto +=100
___ atirar = false
___ xArpão = 0
- Quando o yTubarão for igual ao YMergulhador, a imagem do tubarão será alterada para o mergulhador sendo devorado e o mergulhador irá desaparecer. Após o tubarão se retirar da tela, a quantidade do tesouro irá diminuir e o mergulhador irá reaparecer;
eixoYTubarão == eixoYMergulhador
if(YTubarão == YMergulhador)
___ imagemTubarão = TubarãoEMergulhador
___ mergulhadorVivo = false
if(XTubarão >= LarguraDaJanela || XTubarão <= 0)
___ tesouro -= 1
___ mergulhadorVivo = true
- Se o XArpao e YArpao estiver em contato com o XTubarão e YTubarão, o XTubarão será alterado para XTubarãoInicial e YTubarãoInicial com VelocidadeTubarãoInicial. Acrescentando ainda 100 a variavel Ponto;
- Polvo Gigante
- A cada tempo definido pela variável velocidadePovo surge um novo tentáculo, em um local aleatorio. O máximo de tentáculos é 8;
Resto( tempo / VelocidadeEmSegundos * frameRate ) == 0
and
quantTentaculos < 8
if(temp%( velocidadePovo segundos * frameRate) == 0 && quantTentaculos < 8)
___ int localX = random(min, max);
___ quantTentaculos += 1;
___ mapTentaculos[quantTentaculos*10] = {
___ ___ localX , yTentaculo, líder , rastro
___ };
yTentaculo representa a base no polvo gigante;
10 é o tamanho do tentáculo até o fundo do mar;
A variável rastro mostra o último movimento do tentáculo, a ser repetido posteriormente por seus “filhos”;
- A cada ciclo nasce mais um bloco ao tentáculo;
Se(Resto( tempo / VelocidadeEmSegundos * frameRate ) == 0
and
quantTentaculos > 0)
Function addTentaculo()
if(temp%( velocidadePovo segundos * frameRate) == 0 && quantTentaculos > 0)
___ for(int i = 0; i < mapTentaculos.length; i += 10)
___ ___ for(int j = 0; j < 10; j ++)
___ ___ ___ if( mapTentaculos[i+j] [0] < 0)
___ ___ ___ ___ ___ mapTentaculos[quantTentaculos*10] = {
___ ___ ___ ___ ___ ___ mapTentaculos[i+j -1] [0] ,
___ ___ ___ ___ ___ ___ yTentaculo,
___ ___ ___ ___ ___ ___ 0,
___ ___ ___ ___ ___ ___ mapTentaculos[i+j -1] [3]
___ ___ ___ ___ ___ };
- A movimentação dos tentáculos é em formato de onda. Onde o tentaculo filho acompanha o movimento do seu pai;
MovimentoPai = +1;
MovimentoFilho = MovimentoPai -1;if(mapTentaculos[ i ][ 2 ] == 1)
___ mapTentaculos[ i ][ 3 ] = rastro( mapTentaculos[ i ][ 3 ] + 1);
else
___ mapTentaculos[ i ][ 3 ] = rastro(mapTentaculos[ i - 1 ][ 3 ] - 1);
- se a ponta do tentáculo for atingida pelo arpão.
( eixoXTentaculo + larguraTentaculo/2 ) > eixoXArpão
and
( eixoXTentaculo - larguraTentaculo/2 ) < eixoXArpão
and
( eixoYTentaculo + alturaTentaculo/2 ) > eixoYArpão
and
( eixoYTentaculo - alturaTentaculo/2 ) < eixoYArpão
and
tentaculoLider == true
for(int i = 0; i < mapTentaculos.length; i += 10)
___ if(
___ ___ mapTentaculos[ i ][ 2 ] == 1 &&
___ ___ mapTentaculos[ i ][ 0 ] + 5 > XArpao &&
___ ___ mapTentaculos[ i ][ 0 ]- 5 < XArpao &&
___ ___ YTmapTentaculos[ i ][ 1 ] + 5 > YArpao &&
___ ___ YTmapTentaculos[ i ][ 1 ] - 5 < YArpao
___ )
- A cada tempo definido pela variável velocidadePovo surge um novo tentáculo, em um local aleatorio. O máximo de tentáculos é 8;