"Quem com ferro fere, fere com um objeto"
Chegamos naquele ponto crucial onde de fato
separamos as narrativas interativas das demais produções
intelectuais, como por exemplo livro, revista, cinema, etc.
Afinal, apenas os contos interativos e os adventures
conseguem lidar, para o bem ou para o mal, com
objetos.
O
Micro Aventuras permite (além do uso dos scripts
representando locais, páginas ou posições) o uso de objetos
independentes, ou seja, eles não estão vinculados
exclusivamente aos locais. Podem ser carregados, levados
a outros lugares e claro usados para alguma
finalidade.
Ao criar um objeto para ser usado em sua narrativa, ele
será definido por 3 variáveis internas: uma frase simples
que o descreve (tipo "um livro" ou "uma pistola"), um
shape (imagem) caso queira trabalhar com gráficos e a
posição, local ou página onde ele se encontra quando o jogo
ou a leitura começam.
Além disso, todo objeto precisa ter um script a ele
relacionado, com o mesmo nome que lhe foi dado na sua
criação. Esse script irá conter tudo aquilo que o objeto
faz ou o que pode ser feito com ele, em forma de programação,
além de ter uma descrição mais detalhada do que ele
é.
É importante salientar que todas as instruções que serão
abordadas agora devem ser usavas fora do bloco
boxon ...
boxoff.
A instrução mais importante é a que "cria" ou apenas
"coloca" o objeto em algum lugar.
O parâmetro "nome" indica o nome do objeto que se deseja
manipular e "onde" é o parâmetro que indica onde ele
será colocado. Lembre-se que esse local será obrigatoriamente
o nome de um script que representa um local ou
página.
Se o local destino for o script cujo nome seja um outro
objeto, o sistema entenderá que o objeto foi colocado
"dentro" do segundo. Não é preciso "tirar" os objetos
ou "pegar". Basta informar como parâmetro "onde" a
palavra "jog" que o sistema entenderá que o objeto foi
pego pelo leitor ou jogador.
Se informar "loc", então o sistema saberá que é para
colocar o objeto na mesma posição ou página onde o leitor
está, o que equivale a dizer que o objeto foi "solto" pelo
seu usuário.
Embora a instrução
poeobj= possa ser usada para
"soltar" os objetos, há uma variação dela específica para
isso. A vantagem dessa sintaxe é que ela permite usar as
palavras "tudo" ou "todos", no parâmetro "nome" para
indicar que todos os objetos do leitor ou jogador devem
ser soltos no local atual dele.
Da mesma forma que com os registradores visto anteriormente,
com os objetos também é possível provocar desvios
condicionais.
A instrução acima testa se o objeto "nome" está no local
"onde" e se estiver, salta para local, na programação,
chamado "label".
Vale ressaltar que aqui também o parâmetro "onde" pode
ser a palavra "jog", quando a instrução estará testando
se o leitor ou jogador está com um determinado objeto, ou
"loc", quando a instrução estará testando se o objeto está
no mesmo local que o leitor ou jogador.
A instrução acima é uma sintaxe reduzida para testar se
o objeto "nome" está com o jogador. A diferença neste caso
é que além de verificar se o leitor ou jogador tem o objeto
ela ainda testa se este objeto está dentro de um outro
objeto qualquer que o leitor ou jogador também
tenha.
O exemplo de script a seguir é uma espécie de programação
genérica para objetos, ou seja, ao ser acionado ele verifica
inicialmente se o objeto está com o jogador ou se está no
mesmo local. Nesses dois casos ele tanto pode ser solto
quanto pego.
Apenas como uma espécie de segurança, fica a programação
para o caso do objeto não estar por perto.
Note que deverá haver mais dois scripts, um para pegar
objetos e outro para soltar objetos. Desta forma
concentramos em apenas dois scripts os testes que
verificam se o leitor pode carregar mais um objeto, se
ele pode soltar onde ele está e se pegando ou soltando tal
objeto alguma coisa especial acontece.
Outra consideração a ser feita é que o texto descritivo
do objeto pode ser diferente de quando ele está no local e
de quando o jogador o tem em mãos. Isso enriquece a
imersão do leitor ou jogador.
Deixei neste script genérico duas pegadinhas para você
leitor resolver: uma delas é como os scripts PegaObj e
SoltaObj irão "saber" de qual objetos estamos tratando
para pegar ou soltar?
A segunda é onde e como eu aciono esse script genérico?
Estou assumindo que você entendeu que genérico aqui
significa que cada objeto do livro ou jogo terá um
script muito parecido com esse, cujo nome é o próprio
nome do objeto.
Os 3 estados de um objeto
Ok, entendi
Índice das páginas