Meu primeiro objeto


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 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).