Tudo sobre objetos 

A alma funcional dos jogos adventures é sem dúvida alguma os seus objetos. Como em nenhum outro tipo de jogo, os adventures se valem desses elementos para compor e sofisticar a jogabilidade, criando situações inusitadas e que surpreendem o jogador.

Em nosso caso, tentamos dotar os objetos com os recursos mais importantes que podem estar à disposição do desenvolvedor, inclusive permitindo, através de um sistema engenhoso, que os objetos possam ser programas (.exe) que rodam à parte do programa principal e com ele interagem. Vamos ver isso bem de perto.

Quando uma partida é iniciada, um arquivo contendo as características dos objetos é automaticamente carregado para as propriedades que controlam esses objetos. São elas:

0: palavra que identifica
1: frase descritiva
2: local onde está / jogador com / dentro de
3: status ................

1: no local / com jogador
2: fora / dentro
3: masculino / feminino
4: inteiro / quebrado
5: aberto / fechado
6: apagado / aceso
7: singular / plural
8: visivel / invisivel

4: peso
5: tamanho
6: nome do shape do objeto
7: nome do exe/htm/scp qdo der duplo clique
8: porta usada pelo udp
9: parâmetro opcional para .exe

O desenvolvedor pode estabelecer quantos objetos desejar para essa inicialização. Pode também criar e reconfigurar essas propriedades durante o o jogo (runtime), mas uma vez criado, um objeto não pode mais ser deletado.

Vamos a um exemplo prático: no jogo O Resgate na Serra do Roncador, foi estabelecido que, quando o jogador atingir o objetivo da missão ele deve acionar um bip localizador, para ser então resgatado. Este será portanto o primeiro objeto da lista e o arquivo de configuração (resgate.obj) ficará assim:

 
BIP
um bip
hangar
....................
1
1
bip.bmp


Esses parâmetros indicam que a palavra BIP será usada para identificar o objeto; quando for feita uma descrição do mesmo será usada a frase "um bip"; ele estará, no início do jogo no hangar; com o status default; peso e tamanho iguais a 1 e usando um arquivo gráfico (bip.bmp) como shape de objeto.

Inserido no jogo desta forma, o objeto BIP já pode ser naturalmente pego, solto, examinado, etc. Se arrastado da janela dos objetos que estão no local para a janela dos objetos com o jogador, o sistema entenderá que se deseja pegar o objeto.

Se arrastado da janela dos objetos com o jogador, para a janela dos objetos do local ou mesmo para o visor da posição, o sistema entenderá que se quer soltar o objeto. Se ele for solto sob algum objeto válido, o sistema entenderá que o jogador está querendo colocar um objeto dentro do outro.

Se o jogador der um duplo clique no objeto o sistema entenderá que ele está tentando examinar este objeto. Se não houver nenhuma restrição (um comando específico, por exemplo), o sistema montará uma resposta bem simples. Respostas mais elaboradas devem ser programadas pelo desenvolvedor, de acordo os as características de cada objeto.

No entando, se a propriedade de índice 7 contiver um nome de arquivo, dependendo da natureza deste, um tipo de operação será efetuada. Se for um aquivo .htm, então uma página com esse nome será mostrada; se for um arquivo .scpt, então um script será carregado e executado; ser for uma extensão gráfica, uma tela com essa extensão será carregada; se for um arquivo .exe, então um executável será imediatamente executado.

Nesse caso, as regras são: se o programa/objeto perder o foco, ele será automaticamente encerrado. Para mantê-lo visível, mesmo sem foco, é preciso passar algum parâmetro a ele, pela propriedade de índice 9. No caso do BIP, o parâmetro é "on".

Para fazer essas alterações, precisamos incluí-las no script de inicialização do jogo (inicio.scpt), fazendo com que o jogador seja obrigado a "pegar o objeto".

 
  defobj BIP,7,bip.exe
defobj BIP,9,jog/on

Essas duas linhas indicam, respectivamente, que há um arquivo executável de nome bip.exe relacionado a este objeto e que, ao ser executado (duplo clique), ele irá verificar em primeiro lugar se o jogador o possui (jog). Após a sua execução, ele irá manter o programa aberto, até que o jogador o feche (parâmetro /on).

Como foi dito, a propriedade 9 contém parâmetros que são passados para o executável. Esses parâmetros são separados pelo caracter "/" e o primeiro deles deve ser obrigatoriamente a indicação de restrição de uso do programa. Se for jog, então ele só é executado se estiver com o jogador; se for loc, só será executado se estiver no local e se for nulo ou qualquer outro valor, então não haverá restrição alguma pela execução.

O bip possui algumas funções e a principal delas é o acionamento do sistema, avisando que terminou a missão. Ao ser pressionada esta tecla, ele forçará o sistema a executar um script chamado "bipou.scpt" e portanto é neste script que colocaremos os testes e verificações de término da partida.

A seguir, vamos mostrar como criar um objeto novo em runtime, incluindo as linhas a seguir no script de inicialização. Trata-se de um mapa da região, para que o jogador tenha mais informações de onde irá se desenrolar o jogo. Neste caso, o clique duplo irá abrir uma página html..

 
  crie MAPA
defobj MAPA,1,um mapa rodoviário
defobj MAPA,2,hangar
defobj MAPA,6,mapa.bmp
defobj MAPA,7,mapa.htm

Deste ponto em diante basta usar os registradores, objetos e testes de condições, para ir criando a programação do jogo.

 
online
Tira Dúvidas