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: 29.476 ]

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

Como criar pacotes para o Arch Linux

ProFTPD com autenticação via MySQL

Arch Linux: Uma distribuição otimizada para i686

KDEmod: Tornando mais simples o KDE do seu Arch Linux

Procurando rootkits no seu sistema

Leitura recomendada

Transforme seu Linux num Neo Geo

Jogando America's Army no Linux

Estratégias para expansão dos jogos em Linux

Jogo Portal e outros games da Valve no Linux via Steam

Tocando guitarra com Frets on Fire

  
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