Python no PSP: "Olá Mundo"

Comprei um PSP recentemente e entre uma jogatina e outra descobri várias coisas bacanas que se podia fazer nele, incluindo programar em python. Como encontrei pouca documentação disponível (pior ainda se você procurar em pt-br), resolvi criar este tutorial básico mostrando como fiz para escrever um "Olá, Mundo!" na tela do PSP.

[ Hits: 28.771 ]

Por: Hugo Doria em 22/12/2008 | Blog: http://hugodoria.org


Entendendo o código



Vou explicar melhor o código. Como o foco aqui não é ensinar a linguagem em si, não vou me prender a conceitos da mesma e vou explicar apenas a parte necessária para se imprimir o "Olá, mundo!".

Quem já programa em python já deve estar familiarizado com a estrutura do código (identação, definição de função e tratamento de erros). Se ainda não programa recomendo que entre no site do python brasil e dê uma olhada nos ótimos tutoriais que existem por lá.

Enfim, vamos lá:

import psp2d

Aqui estamos importando o módulo psp2d. Com ele podemos fazer todo tipo de desenho 2d na tela, inclusive escrever o texto que queremos. :-)

Existem outros módulos que você usar como, por exemplo:
  • pspnet - Módulo com classes e funções relacionadas à rede;
  • pspsnd - Módulo que permite o controle de som e música;
  • pspos - Módulo com funções específicas do PSP.

Se quiser uma referência completa destes módulos visite: http://python-psp.net/pspdoc/

tela = psp2d.Screen()

A classe "Screen" representa a tela do PSP e você sempre precisará de uma para poder fazer qualquer coisa.

fundo = psp2d.Image(480, 272)

Essa linha serve para criar o fundo da tela, com as mesmas dimensões dela. No caso, você está definindo 480 para a largura e 272 para altura.

fonte = psp2d.Font('font.png')

Aqui estamos instanciando uma Fonte. Precisamos de uma para poder mostrar um texto, claro. Infelizmente não existe nenhuma fonte embutida, então você precisará baixar uma. O tipo da fonte é SFonte.

A font.png que eu usei no exemplo pode ser baixada aqui. Você precisa colocá-la no mesmo diretório do python.

tela.blit(fundo)

O método blit serve para copiar um objeto para sua instância. No caso, estamos copiando o fundo para a tela.

fonte.drawText(tela, 0, 0, mensagem)

O método drawText é usado para desenharmos o texto na tela. Seu uso é:

fonte.drawText(tela, posicaoX, posicaoY, mensagem)

No caso estamos desenhando na tela, na posição 0x 0y, o conteúdo da variável mensagem.

tela.swap()

Para se desenhar na tela são necessários dois buffers. Isso significa que ao invés de termos um buffer representando a tela, temos dois. Um é o buffer da visualização em si (display buffer), e o outro é o buffer do desenho (draw buffer).

Todas as opções de desenho são direcionadas ao buffer de desenho, que não é mostrado na tela. O método "swap" do objeto Screen troca o buffer de desenho e o buffer de visualização, fazendo com que o que desenhos na tela seja, de fato, mostrado nela.

O código mostrado aqui é o referente ao desenho do texto na tela.

  while True:
        joystick = psp2d.Controller()
        if joystick.circle:
            break

Este trecho do código está instanciando a classe Controller, que serve para reconhecer os botões do PSP e, dessa forma, permitir que você possa definir ações. O código acima está basicamente dizendo que se o botão circulo for pressionado é para ele sair do programa. O while True garante que isso fique em loop até que o botão seja pressionado.

if __name__ == '__main__':
    try:
        main('Ola, mundo! =)')
    except:
        import traceback
        traceback.print_exc(file = file('erro.txt', 'w'))

O código acima basicamente faz com que o programa, ao rodar, chame o método main, passando a frase "Ola, mundo! =)" como parâmetro. Caso aconteça algum erro o mesmo deve ser salvo em um arquivo chamado "erro.txt".

Bem, é isso. Vou continuar brincando com o python no PSP e fazer alguns joguinhos. Se você interessou pelo assunto recomendo entrar no sites abaixo para mais informações e tutoriais:
Página anterior    

Páginas do artigo
   1. Introdução
   2. Entendendo o código
Outros artigos deste autor

Gerenciando pacotes com o pacman

Como criar pacotes para o Arch Linux

Colocando ícones no menu do Fluxbox

Personalizando o Blackbox

Arch Linux: Uma distribuição otimizada para i686

Leitura recomendada

Levelhead - Um jogo Print & Play (realidade aumentada)

MSX: os bons tempos estão de volta II

Medalha de Honra emulado com o Wine

Controle do PS3 no Android

Usando Wine com desempenho máximo para jogos

  
Comentários
[1] Comentário enviado por renato.leite em 22/12/2008 - 20:56h

otimo artigo, isso mostra quanta coisa da para fazer com essa grande linguagem x]

[2] Comentário enviado por wswillianss em 23/12/2008 - 03:28h

Isso é Python meu irmão, a linguagem do passado, presente e futuro. Viva o Python! Chega de tanto "café".

[3] Comentário enviado por corvolino em 30/12/2008 - 02:24h

apoiado =d

[4] Comentário enviado por dmmaster em 02/01/2009 - 01:54h

Olá,

Tenho um PSP e tentei reproduzir o exemplo desse artigo e não consegui.

Foi gerado um arquivo de erro com as mensagens abaixo:

Traceback (most recent call last):
File "script.py", line 22, in <module>
main('Ola, mundo! =)')
File "script.py", line 9, in main
fonte = psp2d.Font('font.png')
IOError: Could not open file

Alguma sugestão?

Muito obrigado

[5] Comentário enviado por hdoria em 02/01/2009 - 08:15h

Olá dmmaster,

Você precisa colocar o arquivo font.png no mesmo diretório do script no seu PSP.

No texto do artigo eu falo:

"
fonte = psp2d.Font('font.png')

Aqui estamos instanciando uma Fonte. Precisamos de uma para poder mostrar um texto, claro. Infelizmente não existe nenhuma fonte embutida, então você precisará baixar uma. O tipo da fonte é SFonte.

A font.png que eu usei no exemplo pode ser baixada aqui. Você precisa colocá-la no mesmo diretório do python.
"

Só ficou faltando o link:
http://python-psp.net/trac/chrome/site/doc/font.png


[6] Comentário enviado por dmmaster em 02/01/2009 - 13:20h

Olá Hdoria,

Consegui rodar o "Olá Mundo", mto legal mesmo essa opção de programar em python para o PSP.

Tenho alguma experiencia em desenvolvimento (.net) e se quiser uma ajuda nesse projeto, pode contar comigo.

Valeu pela força.


[7] Comentário enviado por removido em 25/02/2009 - 02:01h

ola, boa noite tive um problema, fiz conforme o tutu mas apresenta a msg que n pode ser aberto, pois esta corrompido, recentimente fiz a atualização do firmware p/ o ultimo, será q tem alguma coisa haver?

grato


Jairo CarneiroO\;

[8] Comentário enviado por maurofav em 03/04/2009 - 00:48h

Por favor , eu queria poder baixar a fonte para rodar o Hello World , mas o site esta fora do ar , a onde eu posso arrumar tal arquivo??

Me ajudem , grato

Mauro

[9] Comentário enviado por ghregory em 14/05/2009 - 10:47h

FERÓÓÓÓIZ

[10] Comentário enviado por fabioarnoni em 01/07/2009 - 15:35h

Python é lindooooo, o linguagem maravilha !! já fiz vários programinhas facil facil e consegui utilizar em vários Sistemas Operacionais, inclusive no Ruindows, utilizei o py2exe e converti meu script pra exe heheheh também tem um outro aplicativo que da pra converter o codigo em java, fica perfeito heheh abraçcos !!!

[11] Comentário enviado por Miojo em 23/02/2010 - 19:36h

tem pyqt para psp?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts