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