megalgof
TRANSCRIPT
-
8/8/2019 megalgOf
1/5
Oficina Megalogo Criao de Jogos pgina 1 http://projetologo.webs.com
ApresentaoAlgo que fascina crianas e adolescentes so os vdeo-games. Melhor do que
jog-los, cri-los. A tarefa no fcil. Requer tempo, dedicao, pacincia, ...Nessa tarefa, muita coisa se pode aprender ou ter que estudar: tcnicas deprogramao, lgica, psicologia, matemtica, princpios fsicos, etc. Nessa
oficina, tenta-se explorar alguns princpios que devem ser levados em conta aocriar um jogo (seja ele pedaggico ou no):
1) Interatividade (via teclado ou mouse);2) Multimdia ( importante fazer uso de imagem e som);3) Elemento surpresa.
O elemento surpresa pode ajudar a evitar que um jogo seja repetitivo, o quelevaria o usurio a cansar do mesmo, desistindo dele aps pouco dias de uso.Alguns jogos so to montonos ou bvios que o usurio sequer joga mais deuma vez. Finais alternativos, objetos escondidos no cenrio (que mudam de lugara cada novo jogo), mudanas de cenrio e alternncia nos dilogos so algumasdas possibidades a serem pensadas em um jogo.Alm dos princpios citados acima, considere que no processo de criao de um
jogo, deve-se pensar o que se quer com o jogo (fazer um esboo, um roteiro) e
qual o seu pblico alvo. justamente a que est o ponto de partida. Geralmentecomeo um projeto do seu bsico. A parte esttica e os princpios acima citadosso deixados para pensar mais adiante. Afinal, de que adianta concentrarmostanto em tudo isso sem termos antes feito o programa funcionar? Por exemplo,de que adianta comearmos a criar um jogo de adivinhaes com cenriomaravilhoso, msicas escolhidas a dedo, ... se no conseguimos pelo menosfazer com que o jogo sorteie um nmero para adivinharmos? como se estressarcom a decorao de uma casa antes mesmo de construir seus alicerces.
Interatividade com Teclado e MouseFaa o Megalogo ler o teclado:atr "ABC leiateclaO MegaLogo pra at que seja pressionada uma tecla.
Melhor ainda deixar a tat fazer algo:atr "ABC leiateclase :ABC = 97 [pf 45]
Para saber o nmero de uma teclabasta escreveres leiatecla na linha de
comandos e pressionar uma tecladesejada.
No exemplo acima, a tat andar 45 passos se pressionarmos a tecla A.
Podemos sofisticar um pouco:
para andaratr "ABC leiatecla
; leiatecla faz a tat ler a teclapressionadase :ABC = -72 [pf 45]se :ABC = -80 [pt 45]se :ABC = -77 [gd 45]se :ABC = -75 [ge 45]se :ABC = 27 [pare]se :ABC = -79 [pare]andar; necessria a recurso para que; a leitura do teclado seja contnua.
fim
Pode ser interessante dar a opo de
parar o jogo. Como isso poderia ser feito?Que tal colocar um cenrio no fundo?Isso pode ser feito escolhendo umaimagem bitmap (BMP) no menu Arquivo-> Carregar grficos...ou ainda com o comando carregagrficos:carregagrficos "ceu.bmpO jogo Supertat ( lab2.lgp) um exemplo simples que utiliza os recursos mostradosat aqui ( figura acima).Compare-o com o jogo do Labirinto ( lab1.lgp).
O Megalogo permite interao com o mouse. H dois comandos: rato (mouse) eestadorato (mousestate).Vejamos um exemplo simples de uso:
para desenhar :inse :in = -1 [fixapos mouse]desenhar leiatecla
fim
Incremente um projeto com imagensBMP. Elas podem ser feitas comprogramas tais como o Paint e o Drawing
for Children. Se preferir, desenhe noMegapaint.
Escreva desenhar leiatecla na linha de comando e mova o mouse com o botoesquerdo pressionado.Para incrementar um pouco mais, modifique o procedimento desenhar:
-
8/8/2019 megalgOf
2/5
Oficina Megalogo Criao de Jogos pgina 2 http://projetologo.webs.com
para desenhar :inse :in = 0 [un f ixapos mouse ul]se :in = -1 [fixapos mouse]se :in = 27 [pare]desenhar leiatecla
fim
uma boa idia manter oarquivo ajuda profissional aberto
para tirar dvidas sobre comandos!
Agora, o comportamento do mouse diferente e ainda podemos interromper oprocedimento usando a tecla ESC (nmero 27).
Uso de som e vdeoDigite o comando toquewave:toquewave [Opa.wav]Dentro dos colchetes coloca-se o nome do arquivo de som que se deseja tocar.No necessria sua extenso ( .wav).O Megalogo permite usar comando mci. Isso significa que voc pude usarpoderosos recursos multimdia de seu computador. O arquivo ajuda do Megalogono esclarece como us-lo e foge aos propsitos dessa oficina. Para facilitar o
trabalho, use o seguinte procedimento:
para toquemdia1 :c :tituloignore abrevideo :c "m1p [0 titulo]mci [play m1p wait]fechevideo m1p
fim
Ou, melhor ainda:
A possibilidade de introduzir sons,imagens e mesmo vdeos, permitiu a
elaborao de vrias verses do jogode forca, inclusive na lngua de sinais
no SuperLogo (outro programa delinguagem logo que tambm aceita
comando MCI).
para toquemdia :cignore mci ( frase "open :c [type mpegvideo alias m1p] )mci [play m1p wait]
mci [close m1p]fim
O procedimento toquemdia permite tocar vdeos (mpeg, avi, ...), e ainda msica(mp3, midi, ...). Tudo isso e muito mais. Por exemplo, escreva agora na linha decomando: toquemdia bomba.mpg. Note que o arquivo bomba.mpg deve estarsalvo na mesma pasta que salvou o projeto do procedimento toquemdia. Docontrrio, voc ter que indicar todo o caminho: toquemdia [d:\\Sons\\applause.wav]
( s um exemplo, voc deve saber qual o caminho em seu computador).Este ltimo exemplo tocaria o arquivo applause.wav que est na pasta Sons deum cd (drive d:). As barras duplas so necessrias. Em fim, o procedimentotoquemdia mais abrangente do que o toquemdia1.
Exemplos genricos:
toquemdia [minhamusica.mp3]toquemdia [meuvideo.mpg ]
Digite os comandos (um de cada vez):toquemdia [Opa.wav ]toquemdia [dimono.mid]toquemdia [Vid1.avi ]
Que fique bem claro: se o seumicro no consegue tocar uma
dessas mdias, no ser oMegalogo que ir consegui-lo.
Para tornar mais divertido, podemos fazertoquewave escolhe [Dimono.mid Legal.wav Gmgreen3.mid]
A linha mci [play m1p wait] pode ser substituda por algo como:
mci [play m1p from 100 to 200 wait]
Nesse caso, tocar somente um trecho da mdia (da posio 100 at 200).
Faam suas Apostas!Que tal fazer uma fzinha? Nesse jogo voc s tem a ganhar.
para adivinhaatr "loto sorteie 40atr "palpite pri ( leiacaixa [Adivinhe que nmero pensei!] [S vale de 0 a 39] )se :palpite = :loto [es "parabns] ~[es [Que pena!] es [O nmero sorteado foi] es :loto]
fim
No esquea de usar o pri (primeiro) antes de leiacaixa para que o Megalogoentenda o nmero escrito.
A ltima linha do procedimento adivinha poderia ser tambm:es ( frase [Que pena!] [O nmero sorteado foi] :loto )
-
8/8/2019 megalgOf
3/5
Oficina Megalogo Criao de Jogos pgina 3 http://projetologo.webs.com
Banco de DadosCrie uma lista de palavras no bloco de notas e salve com o nome teste. Lembre-se que, assim como no procedimento toquemdia, este arquivo deve ser salvo namesma pasta que voc salva seus projetos do Megalogo.
Veja o modelo na figura ao lado: uma palavra abaixo da outra.
Digite os comandos:fixaparaleitura "teste.txtes lpalavra[melancia ]es lpalavra[abracadabra ]fixaparaleitura [ ]
Quantas palavras tem nossa lista?Vamos pedir para o Megalogo contar para ns.
para leiturafixaparaleitura "teste.txtatr "i 0contarfixaparaleitura [ ]es :ifim
para contares lpalavra atr "i 1 + :iverifica fimleitura?sev [pare]sef [contar]fim
Uma forma mais elegante para o procedimento contarseria:
para contarenquanto [no fimleitura?] [es lpalavra atr "i 1 + :i]fim
A idia a mesma s que mais objetiva: o arquivo teste.txt ser lido at chegar asua ltima linha.Esse recurso utilizado em jogos como da srie Forca (que lem banco depalavras para depois sortear) e no Asteroid Miner (para registrar os recordes).
Nosso exemplo pode ser sofisticado para fazer um jogo de adivinhaes.Como fazer um jogo de adivinhao de palavras?Basta juntar essas idias com a anterior do Faam Suas Apostas!.
para leiturafixaparaleitura "teste.txtatr "i 0 contarfixaparaleitura [ ]escolhepalavra
fim
para contares lpalavra atr "i 1 + :iverifica fimleitura?sev [pare]sef [contar]
fim
para escolhepalavraatr vezes 1 + sorteie :i(local "pal "palpite)fixaparaleitura "teste.txtrepita :vezes [atr "pal lpalavra]fixaparaleitura [ ]atr "palpite pri ( leiacaixa [Adivinhe que palavra pensei!] [Adivinhe] )se :palpite =:pal [es "parabns ] ~[ es [Que pena!] es [A palavra era ] es :pal ]fim
A ltima linha do procedimento escolhepalavra poderia ser tambm [es [Quepena!] es (frase [A palavra era ] :pal)].
Roda-GiganteAlgumas idias sobre como trabalhar com mais de uma Tat.
para rodagigantelimpe ctat 1 [at] ctat 2 [at] ctat 3 [at]pede [0 1 2 3] [fmf "verdadeiro fixaforma "icones fixafase 3]pede 1 [repita 90 [gd 1 pf 1]]pede 2 [repita 180 [gd 1 pf 1]]pede 3 [repita 270 [gd 1 pf 1]]
pede [0 1 2 3] [repita 180 [pf 1 gd 1 espere 25] ]fim
Porque no colocar uma musiquinha para a roda-gigante?Usar o comando toquewave? Comandos mci?
-
8/8/2019 megalgOf
4/5
Oficina Megalogo Criao de Jogos pgina 4 http://projetologo.webs.com
Inserir um contadorContadores so interessantes em jogos. Podem estimular o usurio e tambmservirem de controle de certas aes.
para contarctat contador [at un] pede contador [ fixapos [-420 250] ]atr "contador 0 pede "contador [fixamodocaixa "verdadeiro]; a varivel e a tartaruga caixa devem ter o mesmo nome; nesse exemplo elas receberam o nome de contadorfim
Em que contexto poderamos inserir esse contador?H tantas possibilidades! Jogos para responder um clculo (Quanto 2 + 3?),clicar sobre a letra correta, ...O jogo abaixo sorteia dois nmeros de 0 a 10 e pede para o usurio responderquanto dar a soma dos dois:
para vai( local "x "y "resposta )atr "x sorteie 11 atr "y sorteie 11atr "resposta pri ( lcaixa ( frase [Quanto ] :x "+ :y "? ) [Calcule] )se :resposta = :x + :y [acertou] [errou]fim
para acertouatr "contador 1 + :contadorcaixa [Parabns]fim
para erroucaixa ( frase [O correto era:] :x + :y )fim
Para jogar pela primeira vez, digita-se contar(para criar o contador marcando
zero) e em seguida digita-se vai (que a essncia do jogo).Note que o jogo em si simples. Geralmente comea assim. Depois pode-secomear a pensar em increment-lo.Uma idia seria inserir uma personagem que fizesse uma carinha de triste paracada erro e mostrasse alegria para os acertos. Alm da carinha, ela poderia dizeralgo (usar som). possvel pedir participao das crianas, gravando suas vozes(gritos de alegria, tristeza, nmeros que seriam pronunciados, ...).
Pega-pegaQue tal aproveitar as tcnicas vistas at aqui e criar um jogo com certainteligncia (artificial?).O objetivo do jogo fazer com que uma tartaruga controlada pelo usurio seja
perseguida por outra tartaruga controlada pelo computador.Coisas para pensar antes de fazer o jogo:
a.Que cenrio usar?b.Como a tat do usurio ser controlada?c.Como a tat do computador ser controlada?d.Em que situaes o jogo ser encerrado?
Para os 4 elementos elencados acima, qual seria a sua ordem de prioridade? Ouseja, qual o elemento mais importante? E quais seriam os seguintes?Abaixo, um possvel caminho para comear a fazer o jogo:
para cenariolimpe ctat 1 [at]pede [0 1] [un]pede 0 [fixax -180 fixay -10 - sorteie 80 fixaforma "borbole]pede 1 [fixax sorteie 80 fixay sorteie 80 fixaforma "setas_7]carregagrficos "ceu.bmpcaixa [Ajude a borboleta a fugir do foguete]caixa [Use as setas no teclado para mover a borboleta]; marca quando iniciou o jogo ( em segundos ) :atr "inicio 60 * ( elem 2 hora ) + elem 3 hora; acrescenta 60 ao tempo inicial do jogo.; 60 segundos ser o tempo que vai durar o jogoatr "inicio 60 + :iniciofim
para andaratr "ABC leiatecla; leiatecla faz a tat ler a tecla pressionadase :ABC = -72 [pf 1] ; seta para cimase :ABC = -80 [pt 1] ; seta para baixose :ABC = -77 [gd 45] ; seta para direitase :ABC = -75 [ge 45] ; seta para esquerdafim
-
8/8/2019 megalgOf
5/5
Oficina Megalogo Criao de Jogos pgina 5 http://projetologo.webs.com
para ondestapede 0 [andar atr "xy0 arredonde pos]pede 1 [atr "xy1 arredonde pos fixarumo direo :xy0 pf 1]; deve - se arredondar xy0 e xy1 ou o logo no vai perceber que; elas esto prximas, por exemplo, em posies [121,1 0] e [121,15 0]
;se :ABC = 27 [pare] ; tecla ESC interrompe o jogose :ABC = -79 [pare] ; tecla END interrompe o jogo; Verifica se terminou o tempo de jogoatr "tempo 60 * ( elem 2 hora ) + elem 3 hora
se :tempo = :inicio [pare]verifica igual? :xy1 :xy0sev [ es [foi pega] pare ]sef [ ondesta ]fim
Uma estratrgia usada noensino da linguagem Logo
apresentar projetos incompletosou com erros para que o
aprendiz faa a depurao.
Aps testar os procedimentos acima e depur-los, cheguei seguinte soluo(que no a nica, nem a melhor possvel):
para pegapegacenario; marca quando iniciou o jogo (em segundos) :atr "inicio 60 * ( elem 2 hora ) + elem 3 hora; 20 segundos ser o tempo que vai durar o jogo; ento, acrescento 20 ao tempo inicial do jogo.atr "inicio 20 + :inicioandar ondestase :tempo > :inicio [caixa [Parabns] ]fim
para cenario
limpe ctat foguete [at un]ctat borbo [at un]pede borbo [fixax -180 fixay -10 - sorteie 80 fixaforma "borbole]pede foguete [fixax sorteie 80 fixay sorteie 80 fixaforma "setas_7]carregagrficos "ceu.bmpcaixa [Ajude a borboleta a fugir do foguete]caixa [Use as setas no teclado para mover a borboleta]fim
para ondestapede foguete [atr "xyF arredonde pos fixarumo direo :xyB pf 0.1]pede borbo [atr "xyB arredonde pos]se :ABC = 27 [pare] ; tecla ESC interrompe o jogose :ABC = -79 [pare] ; tecla END interrompe o jogo
; Verifica se terminou o tempo de jogoatr "tempo 60 * ( elem 2 hora ) + elem 3 hora
verifica igual? :xyF :xyBsev [ caixa [foi pega] pare ];se :tempo > :inicio [pare]se tecla? [pede borbo [andar] ]ondestafim
A tat foguete deve andar maisdevagar ( pf 0.1, por exemplo )
para que o usurio tenha tempo depensar e agir.
para andaratr "ABC leiatecla; leiatecla faz a tat ler a tecla pressionada
se :ABC = -72 [pf 10] ; seta para cimase :ABC = -80 [pt 10] ; seta para baixose :ABC = -77 [gd 45] ; seta para direitase :ABC = -75 [ge 45] ; seta para esquerdafim
Esse foi o pontap inicial para um projeto que pode se tornar bem maiscomplexo, sofisticado (que ajustes seriam necessrios?). Poderia ser dada umamensagem ou emitir um som quando uma tartaruga pegar a outra; proibir que astartarugas voadoras caiam num telhado ou us-lo como raia; limitar o territriodo jogo ao cenrio (no poder sair de cima dele), etc. Um projeto em logo nonecessariamente acaba. Hoje podemos estar satisfeitos com o que fizemos oupararmos por aqui por no termos idia de como prosseguir, talvez precisemos
estudar mais tcnicas ou a prpria linguagem logo... Mais tarde, podemosretom-lo ou dar-lhe um novo rumo. isso que precisamos assimilar nalinguagem logo: saber saborear as idias.
A reproduo deste material (todo ou em parte) permitida e desejada desde quecitada a fonte. Proibida distribuio deste material visando lucro de qualquerespcie (contate o autor antes).Todas as atividade criadas por Alexandre R.Soares.