Oficina SuperLogo – Criação de Jogos – (Versão em PDF )


Interatividade com Teclado e Mouse

Faça o SuperLogo ler o teclado:

ativetecla [mo car asciitecla]

Melhor ainda é deixar a tat fazer algo:

ativetecla [pf 15]

O SuperLogo pára de ler o teclado com o comando desativetecla:

Supertat: Exemplo de projeto que usa ativetecla

desativetecla

Vamos sofisticar um pouco:

aprenda andar
ativetecla [atr "ABC car asciitecla

;car asciitecla faz com a Tat indique a letra correspondente à tecla.

se :ABC = "q [pf 45]
se :ABC = "w [pt 45]
se :ABC = "a [pe 45]
se :ABC = "s [pd 45]]
andar

;é necessária a recursão para que a leitura do teclado seja contínua .

fim

Pode ser interessante dar a opção de parar o jogo. Como isso poderia ser feito?

Que tal colocar um cenário no fundo? Isso pode ser feito escolhendo uma imagem bitmap (BMP) no menu Bitmap -> Abrir... ou ainda com o comando carreguebitmap:

carreguebitmap "labirinto2.bmp

O jogo Supertat (labirinto2.lgo) é um exemplo simples que utiliza os recursos mostrados até aqui (figura acima). Compare-o com o jogo do Labirinto (labirinto.lgo).

As imagens BMP podem ser feitas com programas tais como o Paint e o Drawing for Children. Se preferir, faça o desenho no próprio SuperLogo usando comandos entre os quais o desenhe.

O comando desenhe é um exemplo de uso do mouse no SuperLogo. Ele usa um comando chamado ativemouse.

Vejamos um exemplo simples do uso do ativemouse:

un

ativemouse [mudepos posmouse ul][un][][][mudepos posmouse]

Agora experimente mover o cursor do mouse na tela do SuperLogo enquanto pressiona o botão direito e depois o esquerdo. Para parar basta escrever:

desativemouse


Uso de som e vídeo

Digite o comando toquewave:

toquewave [Opa.wav] 1

Dentro dos colchetes coloca-se o nome do arquivo de som que se deseja tocar, inclusive com sua extensão (.wav).

Um comando mais abrangente é o toquemídia. Ele permite tocar também midi, mp3 e vídeos, dependendo do que estiver instalado no computador.

toquemídia [minhamusica.mp3]

toquemídia [meuvideo.mpg]

Digite os comandos (um de cada vez):

toquemídia [Opa.wav]

toquemídia [dimono.mid]

toquemídia [Vid1.avi]

Para tornar mais divertido, podemos fazer

toquewave sorteieelemento [Dimono.mid Legal.wav Gmgreen3.mid] 1

ou

toquemídia sorteieelemento [Dimono.mid Legal.wav Gmgreen3.mid]

A possibilidade de introduzir sons, imagens e mesmo vídeos, permitiu a elaboração de várias versões do jogo de forca, inclusive na língua de sinais.

O projeto notas (notas.lgo) combina o uso de recursos de som e teclado.


Façam suas Apostas!

Que tal fazer uma fezinha? Nesse jogo você só tem a ganhar.

aprenda adivinha

atr "loto sortnum 40

atr "palpite pri caixadequestão [Só vale de 0 a 39] [Adivinhe que número pensei!]

senão :palpite = :loto [esc "parabéns] ~

[esc [Que pena!] esc [O número sorteado foi] esc :loto]

fim

Não esqueça de usar o “pri” (primeiro) antes da caixadequestão para que o SuperLogo entenda o número escrito.


Banco de Dados


Crie uma lista de palavras no bloco de notas e salve na pasta Slogo com o nome “teste” (em Meus Documentos).

Veja o modelo ao lado: uma palavra em baixo da outra.

Neste exemplo simples, recomendo que não use acentos ou sinais graficos, nem espaços.

Digite os comandos:

abraparaler "teste.txt

mudeleitura "teste.txt

mo leialista

[melancia]

mo leialista

[abracadabra]

fechearq "teste.txt

Quantas palavras tem nossa lista? Vamos pedir para o SuperLogo contar para nós.

aprenda leitura

abraparaler "teste.txt

mudeleitura "teste.txt

atr "i 0

contar

mudeleitura []

fechearq "teste.txt

esc :i

fim

aprenda contar

mo leialista atr "i 1 + :i

senão "verd = éfimarq [pare][contar]

fim

Esse recurso é utilizado em jogos como da série Forca (que lêem banco de palavras para depois sortear) e no Asteroid Miner (para registrar os recordes).

O nosso exemplo pode ser sofisticado para fazer um jogo de adivinhações.

Como fazer um jogo de adivinhação de palavras?

Basta juntar essas idéias com a anterior do “Façam Suas Apostas!”.

aprenda leitura

abraparaler "teste.txt

mudeleitura "teste.txt

atr "i 0

contar

mudeleitura []

fechearq "teste.txt

escolhepalavra

fim

aprenda contar

mo leialista atr "i 1 + :i

senão "verd = éfimarq [pare][contar]

fim

aprenda escolhepalavra

atr “vezes sortnum :i + 1

abraparaler "teste.txt mudeleitura "teste.txt

repita :vezes [atr "pal leialista]

mudeleitura [] fechearq "teste.txt

atr "palpite pri caixadequestão [Adivinhe] [Adivinhe que palavra pensei!]

senão :palpite = :pal [esc "parabéns] ~

[esc [Que pena!] esc [A palavra era] esc :pal]

fim


Mude a Roupa da Tartaruga

A Tat sabe se disfarçar, ou seja, trocar sua aparência por outra. Há vários comandos para isso: coloquetatbmp, tatgif, tatgif1.
Para os dois primeiros, basta escrever o comando e pressionar enter que abrirá uma janela de diálogo para escolher a figura desejada.

coloquetatbmp
(escolha uma figura)

tatgif
(escolha uma figura)

Para tatgif1 é necessário informar o nome do arquivo de imagem (ótimo para usar em procedimentos).

tat carreguegif "vaca.gif

Outros comandos para usar figuras são carreguegif e carreguebmp, mas apenas inserem figuras como fundo na janela gráfica (a Tat não assume a imagem):

carreguebitmap “sac.bmp

carreguegif “vaca.gif

Experimente algo divertido:

tat

repita 10 [tatgif1 "smiley1.gif espere 25 tatgif1 "smiley2.gif espere 25]

O repita combinado com tatgif1 permite criar animações!

Que tal dançar can-can? Use uma câmera digital para pegar as poses que serão vestidas pela Tat. As câmaras digitais gravam no formato jpg, basta usar um editor de imagens e passar para o formato gif ou bmp conforme o comando que será usado.



Roda-Gigante

Algumas idéias sobre como trabalhar com mais de uma Tat.

aprenda rodagigante

atat 1 repita 90 [pd 1 pf 1]

atat 2 repita 180 [pd 1 pf 1]

atat 3 repita 270 [pd 1 pf 1]

repita 90 [repita 4 [atat cv - 1 pf 1 pd 1]]

fim

Podemos colocar uma musiquinha para a roda-gigante:

aprenda rodagigante

atat 1 repita 90 [pd 1 pf 1]

atat 2 repita 180 [pd 1 pf 1]

atat 3 repita 270 [pd 1 pf 1]

esc abramidi

mensagemmidi (lista 192+13 112 0 192+13 112 0)

mensagemmidi (lista 144+13 40 300)

repita 90 [repita 4 [atat cv - 1 pf 1 pd 1]]

fechemidi

fim

Os comandos adicionados são “comandos de midi”. Esses comandos permitem que o computador funcione como um sintetizador de som de diferentes instrumentos (leia a tabela completa no ajuda do SuperLogo, em “Instrumentos Midi”).

No exemplo acima, o computador toca o som de um sino, que é o número 112 na linha mensagemmidi (lista 192+13 112 0 192+13 112 0).

Para sintetizar o som de uma flauta (número 73, usaríamos mensagemmidi (lista 192+13 73 0 192+13 73 0). Há mais de 100 instrumentos e sons que o computador pode sintetizar. Experimente-os!

A freqüência do som (“nota”) é controlada pelo penúltimo número na linha mensagemmidi (lista 144+13 40 300).

Exemplo:

esc abramidi

mensagemmidi (lista 192+13 73 0 192+13 73 0)

mensagemmidi (lista 144+13 200 300)

mensagemmidi (lista 144+13 200 0)

mensagemmidi (lista 144+13 600 300)

fechemidi

Pode-se tocar mais de uma nota ao mesmo tempo, com diferentes instrumentos, formando uma orquestra.


Jogue em Rede

O Superlogo permite que computadores de uma rede se comuniquem entre si com os comandos inicializerede e aceiteconexão.

É possível também conectar micros que estejam em cidades e mesmo países diferentes. Para entender como funciona, trabalhe com dois grupos (um computador para cada grupo).

inicializerede

;aguarde o outro grupo fazer o mesmo

mostre aceiteconexão 5124 [] [escreva recebavalorconexãoaceita]

;se aparecer a palavra verd é porque está tudo OK


mostre aceiteconexão "NomedaMáquina 5124 [escreva [OK enviar novamente]] []

verd

;Substitua “NomedaMáquina” pelo nome do computador que aparece em “Ambiente de Rede” ou “Meus Locais de Rede” (são nomes dados pelo técnico que configurou a rede).

mostre envievalorconexão [Olá]

;veja o que acontece na máquina do colega

verd

;use sempre mostre envievalorconexão para escrever para o micro do outro grupo. Pode -se fazer um bate-papo (“chat”).


desligueconexão

nãoaceiteconexão

terminerede


inicializerede ; Inicie a rede

mostre ligueconexão "NomedaMáquina 5124 [esc [pronto para enviar novamente]] [esc [Eu tenho algo]]

verd


desligueconexão

terminerede


Pode ser que esse recurso não funcione dependendo da configuração do micro (como ele usa a rede). No caso de uma LAN (um laboratório na escola, por exemplo), é preciso que esteja usando protocolo TCP/IP.

O projeto labirede (labirede.lgo) utliza esse recurso.


Vamos brincar de pega-pega?

Esse é o pontapé inicial para um projeto que pode se tornar bem mais complexo, sofisticado. Poderia ser dada uma mensagem ou emitir um som quando uma tartaruga pega a outrar de pega-pega; proibir que as tartarugas voadoras caiam no telhado ou usá-lo como “raia”; limitar o território do jogo ao cenário (não poder sair de cima dele), etc.


aprenda andar

ativetecla [atr "ABC car asciitecla

se :ABC = "q [atat 0 mudedc 0 pf 10]

se :ABC = "w [atat 0 mudedc 180 pf 10]

se :ABC = "s [atat 0 mudedc 90 pf 10]

se :ABC = "a [atat 0 mudedc 270 pf 10]]

fim

aprenda radar

atat 0 atr "xy pos

atat 1 mudedc direçãopara :xy pf 10

fim

aprenda vai

rolex -116 roley -142

carreguebmp "labirinto2.bmp

atat 0 un mudepos [-50 250]

atat 1 un mudepos [135 200]

ativetemporizador 1 200 [andar]

ativetemporizador 2 200 [radar]

espere 1000

desativetecla

desativetemporizador 2

desativetemporizador 1

mostrecaixamensagem [Ops!] ~ [Terminou seu tempo!]

fim

Um desenho doido:

aprenda desenhodoido

atat 0 tatgif1 "abobora2.gif

atat 1 tatgif1 "abobora.gif

repita 90 [repita 2 ~

[atat cv - 1 mudex 300 - sortnum 600 mudey 250 - sortnum 500] ]

fim

A reprodução deste material (todo ou em parte) é permitida e desejada desde que citada a fonte. Proibida distribuição deste material visando lucro de qualquer espécie (contate o autor antes).

Todas as atividades criadas por Alexandre R. Soares.

1