![]() |
|
![]() ![]() ![]() |
|
3.11 Score
Proposta: mostrar como criar o score (marcador de pontos) do jogo Neste tutorial nós iremos mostrar a você como salvar o score do jogados e dos monstros e também mover o monstro ou jogador para uma nova posição quando eles colidem com um bala. Gosub PlaceMonster Gosub PlacePlayer Nós colocamos estes comandos "Gosub" antes do nosso loop principal. Estas duas sub-rotinas colocam o jogador e o monstro em posições aleatórias na matriz.
A sub-rotina "PlaceMonster" coloca o monstro em uma localização aleatória da matriz. Esta sub-rotina inicialmente determina a posição do jogador e então checa se o monstro está fora do alcance dele e vice-versa. Posicionando o jogador e o monstro nas mesma coordenadas, asseguram uma nova aleatória posição para ambos. No código desta sub-rotina nós usamos um loop "While" para ter certeza que o monstro é posicionado em um lugar aceitável. Quanto maior a distância entre o monstro e o jogador e esta distância é menor que 1600, então o laço repetirá. Nós estamos usando a fórmula da distância do tutorial, da "Colisão Matemática", para checar a distância entre ambos. Se a distância é menor que 1600 então o código no loop é executado. Uma posição aleatória é gerada e armazenada nas variáveis de posição do monstro. Quando a distância entre as duas posições for maior que 1600 então o laço existe e o monstro é posicionado para um nova localização.
A sub-rotina "PlacePlayer" é a mesma que a sub-rotina "PlaceMonster". A diferença aqui é que nós colocamos o jogador ao invés do monstro. Nós apontamos a câmera na direção do monstro para tornar o encontro ao monstro mais fácil. set cursor 550,20 print "MScore: ",MonsterScore set cursor 550,40 print "PScore: ",PlayerScore Este código é colocado dentro do laço principal. Nós estamos usando o comando set cursor para colocar o texto no lado direito da tela. Na posição do cursor nós imprimimos "MScore" e "PScore" para representar o score do jogador e do monstro respectivamente. Ao lado de cada uma destas palavras nós imprimimos o conteúdo das variáveis "MonsterScore" e "PlayerScore".
Este pedaço de código é da sub-rotina "ShootBullet". Esta é a parte da sub-rotina que checa se o monstro foi atingido. Nós inserimos duas linhas de comparação "If" em seu interior. Quando o monstro é atingido nós chamamos a sub-rotina para colocar o monstro em uma nova localização. A próxima coisa que nós fazemos aqui é a variável "PlayerScore" usando o comando. Pdist=Sqrt((X# - MbX#)^2 + (Y#+25 - MbY#)^2 + (Z# - MbZ#)^2) if Pdist<50 GoSub PlacePlayer MonsterBulletLife = 0 inc MonsterScore endif Este bloco de código é da sub-rotina "MonsterShootBullet". Como na seção anterior, este código checa se o jogador foi atingido. Se o jogador é atingido a sub-rotina "PlacePlayer" é chamada para colocar o jogador em uma nova localização. Nós incrementamos o score do monstro usando o comando "Inc" e retornamos para a sub-rotina "Monster shoot bullet". |
|
Esta é a barra de navegação para explorar todos os tutoriais da série "A Caça Aos Monstros" |
| 1.1 | 1.2 | 1.3 | 1.4 | 1.5 | 2.1 | 2.2 | 2.3 | 2.4 | 2.5 | 3.1 | 3.2 | 3.3 | 3.4 | 3.5 | 3.6 | 3.7 | 3.8 | 3.9 | 3.10 | 3.11 | 3.12 | 3.13 | 3.14 |
| Copyright © 2003 Dark Basic Software Limited. | ||
| Virtual Object Informática Ltda.® |
![]() |
![]() |