Os modos de py5
Uma breve visão geral
A biblioteca py5 pode ser usada de várias maneiras, são estilos ou contextos de programação que chamamos de “modos”. Mais detalhes podem ser encontrados em py5coding.org - The Five py5 Modes.
⚠️ Se estiver em um Mac:
Leia Special Notes for OSX Users.
Module mode (modo de módulo)
Este modo pode parecer familiar para alguns programadores Python. Você importa a biblioteca no começo do código e define algumas funções especiais que o py5 chama para você, como setup()
(executa uma vez quando o sketch é iniciado), draw()
(repete continuamente, usado para interação e animações ) e, se quiser, algumas outras funções de evento. No final você chama py5.run_sketch()
.
O exemplo a seguir cria um pequeno sketch que desenha retângulos na posição atual do mouse:
import py5
def setup():
py5.size(300, 200)
py5.rect_mode(py5.CENTER)
def draw():
py5.rect(py5.mouse_x, py5.mouse_y, 10, 10)
py5.run_sketch()
⚠️ Cuidado:
Não usefrom py5 import *
, isso quebra muitas coisas! Se você quiser evitar os prefixospy5.
, considere usar o imported mode.
ℹ️ Detalhe interno:
Se você não definir uma funçãosettings()
(opcional neste modo), a funçãosetup()
será dividida emsetup()
esettings()
para você “automagicamente” sob o capô, de acordo com algumas regras especiais, pois a infra do Processing requer quesize()
esteja emsettings()
, mas você não precisa se preocupar com isso.
Imported mode (modo importado)
Originalmente criado para programadores iniciantes, o modo importado é análogo ao modo como as pessoas programamam no Processing IDE. Você não precisa digitar py5.
o tempo todo.
Para usar este modo, você precisa do py5 Jupyter Notebook Kernel (instruções de instalação aqui) ou, se estiver usando outros editores de código, precisa executar o seu código a partir da ferramenta de linha de comando run_sketch
($ run_sketch your_sketch.py
).
Outra opção é usar o Thonny IDE com o plug-in thonny-py5mode instalado, que cria um menu py5 com a opção Imported mode for py5, que, quando estiver marcada, faz o Thonny executar a ferramenta run_sketch
para você.
Este é o exemplo anterior escrito para imported mode:
def setup():
size(300, 200)
rect_mode(CENTER)
def draw():
rect(mouse_x, mouse_y, 10, 10)
# Se estiver usando um Jupyter Notebook precisa acrescentar:
run_sketch()
Se estiver usando a ferramenta
run_sketch
ou o pluginthonny-py5mode
no Thonny não precisarun_sketch()
no final.
Static mode (modo estático)
No static mode podemos criar imagens estáticas usando código sem precisar de declarações de função. Ele foi pensado para quem está dando seus primeiros passos na programação com Python.
O código abaixo, escrito para static mode, criará uma imagem de 300 por 200 pixels com fundo cinza e 20 quadrados posicionados aleatoriamente:
size(300, 200)
rect_mode(CENTER)
for _ in range(20):
rect(random_int(width), random_int(height), 10, 10)
Para usar o modo estático no Jupyter Lab, instale o py5bot Kernel conforme descrito na página de instalação do py5, depois inicie o Jupyter Lab usando $ jupyter lab
. Você verá py5bot apresentado como uma opção no Launcher. Clique nele e coloque o código em uma célula do notebook.
Você também pode usar a ferramenta run_sketch
ou o plug-in Thonny IDE conforme descrito para modo importado.
Class mode (modo de classe)
Para usuários mais avançados que desejam executar vários esboços ao mesmo tempo, o class mode convida você a criar uma classe com um método settings
, agora necessário, setup
,draw
e outros métodos desejados.
O primeiro exemplo de module mode convertido para class mode seria assim:
from py5 import Sketch
class TestSketch(Sketch):
def settings(self):
self.size(300, 200)
def setup(self):
self.rect_mode(self.CENTER)
def draw(self):
self.rect(self.mouse_x, self.mouse_y, 10, 10)
test = TestSketch()
test.run_sketch()
Leitura adicional
Para mais detalhes, visite a documentação do py5 completa em py5coding.org