python bge

Download Python BGE

Post on 20-Jun-2015

450 views

Category:

Documents

4 download

Embed Size (px)

TRANSCRIPT

Python & BGECriando jogos com o BlenderBrutto AVT (criao) Cerberus_1746 (reviso)

Antes de comear...Tudo tem que comear em algum lugar, certo? Basta analisar a imagem ao lado para ver a evoluo de alguns jogos clssicos. bem provvel que voc se lembre de alguns desses. Talvez lembre at mesmo de fases inteiras.

Antes de comear...Este o primeiro Super Mario, que podia ser jogado num NES l por 1985. Mesmo sendo de grficos simples, o jogo consegue te prender na frente da tela por algum tempo. Por que? Simplesmente pelo fato de que ele foi muito bem planejado e desenvolvido.

Definindo um objetivoVoc no pode criar algo e esperar que v dar certo, se no tiver uma idia bem clara do que pretende fazer. Ao processo de definio de um projeto dado o nome de prproduo ou planejamento.

Definindo um objetivoAntes de qualquer coisa, faa uma pergunta a si mesmo: "Qual o meu objetivo?" isso que o guiar at o final do projeto. Caso as coisas comecem a ficar confusas, basta se lembrar do seu objetivo inicial. Portanto, devemos ter algumas coisas em mente.

Dando forma ao objetivoQual o estilo do meu jogo? Plataforma, luta, RPG, corrida, futebol... Qual ser meu pblico alvo? Jogadores casuais, jogadores freqentes, jogadores hardcore... Os inimigos ou adversrios tero inteligncia artificial? Qual o tamanho do meu jogo? Ele ser dividido por fases? O jogador pode escolher qual fase quer jogar? Ser um jogo multiplayer?

Dando forma ao objetivoO que mais? Pense por alguns minutos nas caractersticas bsicas...

Dando forma ao objetivoTambm necessrio fazer um planejamento mais detalhado. Pode no parecer, mas isso nos economizar tempo no futuro. A idia , basicamente, que quando mais tempo se gasta planejando, menos tempo necessrio para desenvolver e corrigir erros. Ou voc realmente acha que Cabral descobriu o Brasil por acidente?

Um planejamento mais elaboradoNesta etapa preciamos ser bem mais precisos do que fomos no planejamento inicial. Ao final desta etapa, deveremos saber exatamente o que e como fazer. Portanto, agora voc deve pensar nos desafios que o jogador ir enfrentar, quem e como sero os inimigos, como sero os cenrios, etc...

Coletando recursosMuitas vezes no temos tempo ou menos habilidade para criar a trilha sonora, as texturas, etc. Nesses casos, o melhor tirar proveito de bibliotecas (legais) de sons, imagens, etc. Eis algumas que recomendo:http://www.grungetextures.com/ (texturas) http://www.jamendo.com/br/ (msicas) http://www.blender-materials.org/ (materiais) http://e2-productions.com/repository/index. php (modelos) http://opengameart.org/ (mix)

Pronto? Ainda no!Agora que temos o plano completo (espero que sim), eu devo lhe fazer uma pergunta: Voc sabe programar (de preferncia em Python)? Caso j tenha conhecimento, pule alguns slides, caso contrrio devo lhe apresentar a uma coisa chamada Lgica de Progamao antes disso.

Lgica de programaoA definio de "lgica", segundo o dicionrio Michaelis:

"1 Modo de raciocinar tal como de fato se exerce:Lgica natural. 2 Filos Estudo que tem por objeto determinar quais as operaes que so vlidas e quais as que no o so: Lgica formal, que trata dos conceitos, juzos e raciocnios, independentemente de seu contedo. Mais modernamente, anlise das formas e leis do pensamento, seja do ponto de vista racionalista e crtico, seja daquele em que se descreve a experincia: Lgica gentica, lgica das cincias, lgica simblica, lgica matemtica."

Lgica de programaoLogo, lgica de programao refere-se a como fazer as coisas acontecerem, seguindo por caminhos dedutivamente corretos (verdadeiros). Resumindo: lgica deduo. Agora, no podemos confundir deduo com adivinhao ou tentativa e erro. Deduo um processo racional, no qual temos um conjunto de possibilidades e, usando nosso conhecimento, vamos eliminando as que acharmos serem incorretas at sobrarem uma ou mais. No caso de sobrar mais do que uma, vamos sempre pela melhor opo.

Lgica de programaoUm exemplo: quem o irmo do pai da me da minha sobrinha? Se voc respondeu "meu tio", parabns! Voc atende ao requerimento mnimo necessrio para se tornar um programador: saber pensar logicamente. Vamos analisar um pouco sua resposta. Como voc tem certeza de que seu tio e no seu av? Ora, pelo seu conhecimento! Voc sabe a definio de sobrinho, pai, me e irmo, certo?

Lgica de programaoAgora outro exemplo: como proceder para trocar uma lmpada? A resposta pode variar de pessoa pra pessoa, pois graas a Deus somos todos diferentes e tambm raciocinamos de jeitos diferentes. A base de tudo? Conhecimento e experincia! O que sua experincia e/ou conhecimento sobre trocas de lmpadas lhes mandam responder? Bem, os meus dizem o seguinte...

Lgica de programao1. 2. 3. 4. 5. 6. Certificar-se de que o interruptor est desligado Subir numa cadeira/escada para alcanar o bocal Remover a lmpada queimada Colocar a lmpada nova Descer da cadeira/escada Ligar o interruptor

Ao processo de definir algo de acordo com os prprios conhecimentos ou a necessidade do projeto d-se o nome de abstrao.

Lgica de programaoJ ouviu falar em arte abstrata? Aquele monte de borres que ningum entende? Bem, arte abstrata nada mais do que o conceito do artista sobre determinado assunto. Como eu disse, todos pensam de forma diferente, assim como todos definem as coisas de modo diferente tambm. Em resumo: abstrao a sua definio para uma determinada situao, objeto, etc.

Lgica de programaoNa minha abstrao sobre a troca da lmpada, eu no levei em conta possveis problemas que possam acontecer. D uma olhada: 1. Certificar-se de que o interruptor est desligado (se no estiver, desligar) 2. Subir numa cadeira/escada para alcanar o bocal 3. Remover a lmpada queimada 4. Colocar a lmpada nova 5. Descer da cadeira/escada 6. Ligar o interruptor

Lgica de programaoNotou a diferena no primeiro passo? Eu impus uma condio para que a troca continuasse, j que ningum gosta de levar choque. Outra situao seria esta: Subir numa cadeira/escada para alcanar o bocal. Se no alcanar, procurar um objeto mais alto para subir. Notou que conforme avanamos no raciocnio, estamos dividindo nosso problema em problemas menores?

Lgica de programaoNo se programa algo de uma vez s num nico e gigantesco cdigo. Isso no funcionaria de verdade! por isso que to importante separar nosso problema maior em pequenos problemas, agrup-los e resolv-los um a um. Voc pode no ter percebido, mas foi exatamente isso que fizemos no planejamento do nosso jogo. Tratamos as coisas separadamente de forma a cobrir nosso jogo completo. Entretando, no acaba por a. Como vamos fazer para carregar a fase correta que o jogador escolher em nosso jogo, por exemplo?

Lgica de programaoDepois dessa breve introduo ao raciocnio lgico, estamos prontos para comear a pensar como programadores de verdade.

Senhoras e senhores, lhes apresento o fluxograma!

Lgica de programaoUm fluxograma, nada mais do que uma representao visual de um processo lgico. Ele nos ajuda a ter uma noo melhor da nossa prpria linha de raciocnio. Embora no iremos utilizar fluxogramas no nosso projeto, bom saber o que cada smbolo representa.

Lgica de programaoTerminal: indica o incio e o fim do processo Entrada ou Sada: troca de dados com usurio Processo: clculo ou processamento de dados Condio: compara valores e devolve "sim" ou "no" Conexo: ligao de dois pontos no fluxograma Sabendo isso, veja se consegue entender o fluxograma do slide anterior.

Lgica de programaoExistem mais alguns smbolos, mas por hora, os que vimos j esto de bom tamanho para que possamos seguir adiante. Alm da representao visual (fluxograma), tambm possvel fazer uma representao textual de um processo. A esse texto damos o nome de algoritmo. Finalmente, um algoritmo que criado conforme uma linguagem de programao chamado cdigo-fonte.

Lgica de programaoOs algoritmos obedecem a alguns padres bsicos que iremos ver nos prximos slides, por hora quero que lembre de algo que foi visto anteriormente: "Subir numa cadeira/escada para alcanar o bocal. Se no alcanar, procurar um objeto mais alto para subir." Como pode-se notar, temos uma condio para que o processo continue. Nos algoritmos, condies so representadas pela palavra Se.

Lgica de programaoLogo, o fragmento de algoritmo do exemplo ficaria assim: faa (Subir numa cadeira/escada para alcanar o bocal); Se (no alcanar) ento faa (procurar um objeto mais alto para subir); Fim Se; As primeiras regras aqui so: 1. Nomes reservados (Se, ento) sempre em destaque 2. Parmetros para o Se sempre entre parnteses 3. Todo Se, deve ser terminado com um ento 4. Toda instruo deve terminar com ponto e vrgula 5. Vamos deixar o Fim Se para mais tarde...

Lgica de programaoO termo "nomes reservados" refere-se a todas as palavras que fazem parte do conjunto de comandos. Voc no poderia ter uma ao (funo) chamada "Se", j que esta palavra reservada. Alguns desses comandos so funes, ou seja, eles recebem valores de entrada, os processam e retornam um valor de sada. Esse o caso do Se. Os valores de entrada so chamados parmetros. Note que o Se no termina com ponto e vrgula, pois ele no uma instruo e sim uma condio.

Lgica de programaoAntes de continuar, necessrio que conheamos os tipos de dados bsicos que podemos utilizar. So eles: Inteiro (-1, 0, 1, 2, ...) Decimal (-1.5, 0.2, 1.55, ...) Caracteres ('a', '$', 'bl bl bl', ...) Lgicos (Verdadeiro, Falso) Com esses tipos de dados chamados "primitivos" e um pouco de conhecimento das regras (sintaxe) dos algoritmos, podemos criar processos bastante complexos.

Lgica de programaoDe nada adianta poder trabalhar com vrios tipos de dados, se no temos como guard-los, certo? a que entram as variveis. Lembra-se do X da matemtica? Podemos fazer uma analogia dele com as variveis dos algoritmos. Assim como na matemtica, ela no precisa se chamar necessariamente 'X'. Po