megalgof

Upload: alexandre-r-soares

Post on 10-Apr-2018

265 views

Category:

Documents


0 download

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.