Agora
que a programação do espaço lobo (a mata) e
as principais funções operacionais do jogo já
foram equacionadas, vamos tratar dos objetos, que é justamente
o que diferencia um conto interativo de um adventure.
Antes
disso vamos relembrar o design da estrutura do jogo:
A
margem direita (largura 100px) foi usada até aqui
para colocar os ícones de finalização e de
acesso ao menu de opções. Vamos utilizar o espaço
entre esses dois ícones para mostrar automaticamente os objetos
que estão na mesma posição do jogador, ou seja,
conforme o jogador "anda", os objetos que estiverem naquele
local aparecerão neste quadro.
A
margem esquerda será usada integralmente para mostrar, o
tempo todo, quais objetos o jogador tem. Levando em consideração
esses espaços e suas medidas, definimos que cada objeto ocupará
uma área de 80x80 pixels. Desta forma, a área
da esquerda terá 80x400 e a da direita 80x240.
Com isso poderemos mostrar, no máximo 5 objetos com
o jogador e 3 no local.
Vamos
então à criação propriamente dita:
Nunca
é demais lembrar que a criação de um objeto
implica necessariamente na criação (automática)
de um script com o mesmo nome, o qual será responsável
por administrar tudo o que for relacionado a este objeto. O primeiro
passo então é colocar o nome no campo apropriado (em
roxo) e clicar no botão "novo objeto".
Pronto,
o objeto já está criado e agora basta preencher os
campos específicos com o nome oficial - o nome que você
deu na criação é como o objeto será
reconhecido no sistema e o nome oficial é como ele será
apresentado ao jogador. Uma descrição simplificada,
que será usada por exemplo para compor uma lista de objetos.
O local onde o objeto está (na inicialização
do jogo), lembrando que a palavra "jog" indica
que o objeto está com o jogador.
No exemplo acima, o campo local foi preenchido com os caracteres
"---" indicando assim que o objeto está
(inicialmente) no limbo dos objetos, ou seja, ele não existe
na inicialização e só passará a existir
quando alguma instrução de programação
colocá-lo em algum local, dentro de outro objeto ou nas mãos
do jogador.
E
finalmente o shape do objeto, que já vai estar prontinho
no kit lobo. Não é preciso que esta imagem tenha os
mesmos 80x80 pixels com os quais ele será mostrado.
Quanto maior a dimensão da imagem, melhor será a visualização.
Terminada
a operação, basta gravar esses dados e repetir tudo
novamente para o status da situação atual do objeto.
Por enquanto estamos colocando os objetos criados (situação
atual) nas mãos do jogador apenas para visualizar o processo
com mais facilidade. O script lobo.scp
portando estará com oseguinte conteúdo.
//===
Objeto: lobo =================
retscp= lobo
fim
Por
enquanto vamos trabalhar com 5 objetos e as suas respectivas
imagens então logo a seguir. Basta repetir o processo para
cada uma delas.
A
estatueta do lobo, que contém a maldição,
uma faca de prata para se defender do lobo que ronda a floresta,
uma pá pra cavar algumas coisa (?), uma corda
para amarrar o lobo, caso matá-lo seja demais para o seu
politicamente correto e um pergaminho que vai dizer exatamente
como quebrar a maldição
Neste
ponto os objetos já existem para o sistema e para mostrá-los
ao jogador, nas áreas que foram definidas para isso, basta
usar uma única instrução de programação
(dispobj=). É isso mesmo
que você leu...
O
melhor lugar para fazer isso é no script comum.scp,
uma vez que ele é executado sempre, em todas as posições
que o jogador estiver:
//===
Procedimentos comuns a posições ==============
shape= menu.gif,840,0,45,69,menu
shape= sair.png,840,350,45,69,final
dispobj= jog,,10,10,80,400,1
dispobj= loc,,810,90,80,240,1
Olha
só a beleza (e facilidade) do Gênesis: o primeiro
parâmetro da instrução indica quais objetos
mostrar (jog = com o jogador e loc = local do jogador).
Aqui é preciso abrir um parênteses: para mostrar os
shapes do local atual do jogador é preciso que a variável
interna posic contenha o nome deste local. Assim, em todos
os scripts que representam uma posição válida
é preciso acrescenter a instrução setpos=,
logo após definir o script de retorno.
//===
Cidade - entrada da mata ====================
setmode= 4,900,420
retscp= cidade
setpos= cidade
cleartela
O
segundo parâmetro fica em "branco" porque
no modo 4 ele não é necessário. Terceiro
e quarto parâmetros indicam a posição
x,y do canto superior esquerdo da área que mostrará
os objetos. Quinto e sexto parâmetros indicam
as dimensões desta área.
Agora
vem o pulo do lobo: o sétimo parâmetro indica
quantos objetos serão mostrados na horizontal desta
área. O valor que colocamos, neste jogo, é 1
e portanto estamos informando ao sistema que apenas 1 objeto
será mostrádo por linha e que portanto, o shape dele
terá o tamanho de 80x80 (que é a lagura da
área). Isso fará com que os objetos sejam mostrados
um embaixo do outro.
Outra
maravilha do Gênesis: ao montar essas áreas,
cada objeto mostrado já receberá um link de
tal forma que, ao clicar nele, o script deste objeto será
executado (por isso ele foi criado automaticamente quando da criação
do objeto).
|