Já
vimos que os objetos podem ser pegos ou soltos (ou ainda podem ser
colocados dentro de outros objetos). Resta agora saber como fazer
isso, de uma forma genérica, para que sirva para todos os
objetos do jogo.
Em
primeiro lugar, vamos estabelecer que um dos registradores (3)
irá conter o nome do objeto a ser solto ou ser pego pelo
jogador. Lá no script start.scp
garantimos que ele sempre comece o jogo sem nenhum conteúdo.
//===
Script inicial ========================
setmode= 4,900,420
//- Indica o dia atual da partida
reg= 1,1
//- Duração de um dia
reg= 2,10
//- Objeto para pegar ou soltar
reg= 3,
script
intro
O
local mais adequado para colocar as ações de pegar
ou soltar é no próprio script do objeto, que
conterá inclusive uma descrição mais detalhada
do mesmo (i.e. mais informação para o jogador lidar).
//===
Objeto: lobo =================
setmode= 4,900,420
cortxt= FF0000
cleartela
cleartxt
gosub comum
shape= lobo.png,100,0,358,358,
'O Lobo da Floresta
§§Estatueta de um lobo uivando, esculpida
em
madeira. Segundo algumas tradições antigas
essas
peças possuem um poder místico e geralmente
são
atribuidas a elas toda sorte de maldições.'
reg= 3,lobo
temos? lobo,VoceTem
' §§Você pode @pegar|pegar| a estatueta.'
goto Cont1
:VoceTem
' §§Você pode @soltar|soltar| a estatueta.'
:Cont1
printx $,460,10,240,400
shape= tic.gif,100,390,20,30
shape= ret.gif,130,390,140,30,xvlt
fim
Os
procedimentos iniciais são os básicos, afinal estaremos
montando o script de forma parecida com o que fizemos com as posições.
Note que colocamos uma imagem grande do lobo à esquerda e
à direita dela faremos uma melhor apresentação
do objeto.
Num
determinado ponto o texto é interrompido para definir se
vai ser possível pegar ou soltar o objeto e quem faz isso
é a instrução temos?.
Antes porém colocamos o nome do objeto no registrador 3,
como foi combinado anteriormente.
O
salto na programação é o básico do básico:
se temos o objeto, então é possível
soltá-lo. Se ele está na posição
do jogador, então podemos pegá-lo. Restrições,
tanto para pegar quanto para soltar, ficam para outro
momento, mas o local para fazê-las vem logo a seguir.
Note
que dois scripts foram mencionados para compor links clicáveis
no meio do texto: pegar.scp
e soltar.scp. Vejamos como seria
o primeiro.
//===
Script para pegar objeto no reg 3 ===========
pegaobj= #3
script #3
A
primeira instrução pega o objeto, ou
seja, coloca a palavra "jog" no campo local
do objeto, cujo nome está no registrador 3. Tudo como
combinamos anteriormente. A segunda instrução executa
o script indicado e que no caso aqui será o mesmo script
do objeto, do qual "viemos". É só isso aí
mesmo.
//===
Script para soltar objeto no reg 3 ===========
soltaobj=
#3
script #3
O
processo aqui é reveso, ou seja, a instrução
soltaobj= coloca no campo local,
do objeto, o nome da posição onde está o jogador.
Como
foi dito antes, esses dois scripts podem conter restrições
a determinados objetos e para saber se estamos "tratando"
de um deles, podemos usar uma instrução bem simples,
tipo ifreg= 3,lobo,label ou
seja, se o objeto mencionado é o "lobo", então
salta para o label definido.
É
nesses scripts também que podemos restingir a quantidade
de objetos que o jogador pode carregar ou que podem estar no mesmo
local do jogador. Podemos inclusive produzir alguma ação
se o jogador soltar um objeto em um determinado local.
|