Bem Vindos ao Circo Voador da Programação Python¶
Aqui vamos ter uma introdução rápida de como programar jogos para Web usando Python. Na verdade vamos usar o Brython que é o Python que funciona dentro de um navegador web como o Firefox.

Manual¶
Vitollino - Classes Principais¶
See also
Auxiliares Vitollino - Classes Auxiliares
Jogo¶
See also
Cena | _spy.vitollino.vitollino.Cena |
Elemento | _spy.vitollino.vitollino.Elemento |
Salao | _spy.vitollino.vitollino.Salao |
Sala | _spy.vitollino.vitollino.Sala |
Texto | _spy.vitollino.vitollino.Texto |
Portal | _spy.vitollino.vitollino.Portal |
Inventario | _spy.vitollino.vitollino.Inventario |
Musica¶
Inventario¶
See also
Elemento _spy.vitollino.vitollino.Elemento
-
class
_spy.vitollino.vitollino.
Inventario
(tela=<browser.BrythonMock object>)[source]¶ Bases:
object
Os objetos que estão de posse do jogador.
Parameters: tela – Div do HTML onde o inventário será anexado -
GID
= '00000000000000000000'¶
-
bota
(nome_item, item='', acao=None)[source]¶ Os objetos que estão de posse do jogador.
>>> inv.bota("uma_coisa") >>> "uma_coisa" in inv.inventario True
Parameters: - nome_item – uma string com o nome do item, ele será criado e colocado no inventário
- item – URL da imagem do item nomeado por nome_item
- acao – ação associada com o item nomeado quando ele é clicado
-
Cena¶
-
class
_spy.vitollino.vitollino.
Cena
(img='', esquerda=<CenaNula>, direita=<CenaNula>, meio=<CenaNula>, vai=None, nome='', xy=(0, 0), score={}, **kwargs)[source]¶ Bases:
object
Use para construir uma cena.
from _spy.vitollino import Cena cena_esq = Cena(img="esq.jpg") cena_mei = Cena(img="mei.jpg", cena_esq) cena_mei.vai()
Parameters:
Sala¶
Salao¶
Elemento¶
-
class
_spy.vitollino.vitollino.
Elemento
(img='', vai=None, style={}, tit='', alt='', cena=Inventario, score={}, **kwargs)[source]¶ Bases:
object
Um objeto de interação que é representado por uma imagem em uma cena.
- papel = Elemento(
- img=”papel.png”, tit=”caderno de notas”, vai=pega_papel, style=dict(left=350, top=550, width=60))
Parameters: - img – URL de uma imagem
- vai – função executada quando se clica no objeto
- style – dicionário com dimensões do objeto {“left”: …, “top”: …, width: …, height: …}
- tit – Texto que aparece quando se passa o mouse sobre o objeto
- alt – Texto para leitores de tela
- cena – cena alternativa onde o objeto vai ser colocado
- score – determina o score para este elemento
- kwargs – lista de parametros nome=URL que geram elementos com este nome e a dada imagem
-
limbo
= <browser.BrythonMock object>¶
Portal¶
-
class
_spy.vitollino.vitollino.
Portal
(cena=None, debug_=False, **kwargs)[source]¶ Bases:
object
-
L
= {'left': '90%', 'min-height': '60%', 'position': 'absolute', 'top': '20%', 'width': '10%', 'margin': '0%', 'cursor': 'e-resize'}¶
-
N
= {'left': '20%', 'min-height': '20%', 'position': 'absolute', 'top': 0, 'width': '60%', 'margin': '0%', 'cursor': 'n-resize'}¶
-
O
= {'left': 0, 'min-height': '60%', 'position': 'absolute', 'top': '20%', 'width': '10%', 'margin': '0%', 'cursor': 'w-resize'}¶
-
PORTAIS
= {'L': {'left': '90%', 'min-height': '60%', 'position': 'absolute', 'top': '20%', 'width': '10%', 'margin': '0%', 'cursor': 'e-resize'}, 'S': {'left': '20%', 'bottom': 0, 'position': 'absolute', 'min-height': '10%', 'width': '60%', 'margin': '0%', 'cursor': 's-resize'}, 'Z': {'width': '10%', 'min-height': '10%', 'position': 'absolute', 'margin': '0%', 'cursor': 'zoom-in'}, 'N': {'left': '20%', 'min-height': '20%', 'position': 'absolute', 'top': 0, 'width': '60%', 'margin': '0%', 'cursor': 'n-resize'}, 'O': {'left': 0, 'min-height': '60%', 'position': 'absolute', 'top': '20%', 'width': '10%', 'margin': '0%', 'cursor': 'w-resize'}}¶
-
S
= {'left': '20%', 'bottom': 0, 'position': 'absolute', 'min-height': '10%', 'width': '60%', 'margin': '0%', 'cursor': 's-resize'}¶
-
Z
= {'width': '10%', 'min-height': '10%', 'position': 'absolute', 'margin': '0%', 'cursor': 'zoom-in'}¶
-
Popup¶
Texto¶
-
class
_spy.vitollino.vitollino.
Texto
(cena=<CenaNula>, tit='', txt='', **kwargs)[source]¶ Bases:
_spy.vitollino.vitollino.Popup
-
POP
= <Popup>¶
-
d
(cena, tit='', txt='')¶
-
Labirinto¶
Dropper¶
Dragger¶
Droppable¶
Vitollino - Classes Auxiliares¶
See also
Classes Principais Vitollino - Classes Principais
NoEv¶
See also
Elemento _spy.vitollino.vitollino.singleton()
SalaCenaNula¶
See also
Elemento _spy.vitollino.vitollino.singleton()
-
class
_spy.vitollino.vitollino.
SalaCenaNula
[source]¶ Bases:
_spy.vitollino.vitollino.SalaCenaNula
Define uma Sala ou uma Cena vazia.
>>> cena = Cena(SalaCenaNula()) # A próxima cena >>> uma_cena = Cena(SalaCenaNula(), cena) # Cena nula à esquerda, proxima no meio >>> uma_cena.vai_esquerda() # tenta navegar para a cena à esquerda >>> # não vai, pois a cena é nula e não deixa que se navegue para ela >>> print(INVENTARIO.cena == cena) True
Deve ser usado quando um parâmetro requer uma cena mas não deve ter uma cena válida ali.
wraps_class_to_mimic_wrapped¶
-
_spy.vitollino.vitollino.
wraps_class_to_mimic_wrapped
(original_cls)[source]¶ Empacota uma classe decoradora para que apareça corretamente nos documentos.
>>> @wraps_class_to_mimic_wrapped ... class Exemplo: ... ... ... >>> print(Exemplo.__doc__) Atualiza wrapper_cls para se assemelhar à classe original_cls.
Parameters: original_cls – A Classe a ser empacotada Returns: O empacotador da classe
singleton¶
-
_spy.vitollino.vitollino.
singleton
(cls_to_decorate)[source]¶ Decora um classe para ser um singleton e retornar sempre a mesma instância.
>>> @singleton ... class Mono: ... def __init__(self): ... self.x = 0 ... >>> Mono().x, Mono().x = 1, 2 >>> print(Mono().x == Mono().x, Mono().x) True 2
Parameters: cls_to_decorate – A classe para ser definida como singleton Returns: O decorador de singleton
Tutorial¶
Vitollino - Jogo da Marcela¶
Treinamento de Manuseio Alimentar¶
See also
Jardim | Vitollino - Jardim Radical |
Vitollino | Primeiro Cenário do Jogo |
Treinamento de Manuseio de Alimentos.¶
Gerador de labirintos e jogos tipo ‘novel’.
-
class
lab.views.marcela.
Config
[source]¶ Bases:
object
- CONFIGURA
Dicionário de configuração das cenas.
CONFIGURA = dict(origem=["vestiário#armário#Asseio#Por o avental", True, dict(left=429))
Origem, Destino, Título e Texto Com Popup Hot Spot “Origem#Destino#Título#Texto” True or False {“top”:1} - Origem, Destino, Título e Texto
String com partes separadas por #
- Origem
- Nome da cena de origem, precisa ser uma chave de CONFIGURA
- Destino
- Nome da cena de destino, precisa ser uma chave de CONFIGURA
- Título
- Título do popup de texto
- Texto
- Texto do popup de texto
- Com Popup
- Determina se vai aparecer o popup de texto na transição de cenas
- Hot Spot
Dicionário com as dimensões do hot spot que vai receber o click
dict(left=429, top=112, width=109, height=300)
-
CONFIGURA
= {'descontaminando': ['descontaminando#saindo#o_asseio#acionou_a_pia', True, {'width': 181, 'left': 610, 'height': 676, 'top': 116}], 'vestiário': ['vestiário#abriu_o_armário#Asseio#Você deve por o avental', True, {'width': 109, 'left': 429, 'height': 300, 'top': 112}], 'saindo': ['descontaminando#saindo#o_asseio#acionou_a_pia', True, {'width': 181, 'left': 610, 'height': 676, 'top': 116}], 'abriu_o_armário': ['abriu_o_armário#o_asseio#Asseio#Você deve lavar as mão', True, {'width': 109, 'left': 437, 'height': 300, 'top': 127}], 'as_bactérias': ['as_bactérias#enxaguando#o_asseio#acionou_a_pia', True, {'width': 62, 'left': 349, 'height': 79, 'top': 666}], 'acionou_a_pia': ['acionou_a_pia#molhando_as_mãos#o_asseio#acionou_a_pia', True, {'width': 171, 'left': 313, 'height': 96, 'top': 390}], 'secando': ['secando#descontaminando#o_asseio#acionou_a_pia', True, {'width': 49, 'left': 449, 'height': 109, 'top': 256}], 'origem': ['vestiário#vestiário#Asseio#Você deve por o avental', True, {'width': 109, 'left': 429, 'height': 300, 'top': 112}], 'enxaguando': ['enxaguando#secando#o_asseio#acionou_a_pia', True, {'width': 81, 'left': 381, 'height': 121, 'top': 252}], 'molhando_as_mãos': ['molhando_as_mãos#usando_sabão#o_asseio#acionou_a_pia', True, {'width': 54, 'left': 316, 'height': 95, 'top': 276}], 'usando_sabão': ['usando_sabão#as_bactérias#o_asseio#acionou_a_pia', True, {'width': 188, 'left': 310, 'height': 121, 'top': 403}], 'o_asseio': ['o_asseio#acionou_a_pia#o_asseio#acionou_a_pia', True, {'width': 60, 'left': 354, 'height': 60, 'top': 653}]}¶
-
class
lab.views.marcela.
JogoMarcela
(legendas=['vestiário', 'abriu_o_armário', 'o_asseio', 'acionou_a_pia', 'molhando_as_mãos', 'usando_sabão', 'as_bactérias', 'enxaguando', 'secando', 'descontaminando', 'saindo'], momentos=[(1, 1), (1, 2), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (2, 6), (2, 7), (2, 8), (3, 1)])[source]¶ Bases:
object
Constroi o jogo completo da Marcela.
Parameters: - legendas – lista contendo nomes das cenas [<nome da cena>, …]
- momentos – lista de tuplas indicando o quadro e o momento [(<q0>, <m0>), … ]
-
static
_cria_cenas
(cenas)[source]¶ Cria um conjunto de objetos Cena a partir de um dicionário.
Usa a função cria de criar cenas do Vitollino: JOGO.c.c
:param cenas:dicionário contendo <nome da cena>: <url da imagem> :return: cenário, uma lista de quadros criados
-
static
_decorador_do_vai_do_texto
(port)[source]¶ Decorador do texto para refinamento, publica as dimensões do cursor no popup de texto.
Parameters: port – portal que vai ser decorado Returns: Nenhum
-
configura_momentos
(cena)[source]¶ Configura a cena do momento para ativar seu portal segundo os dados em CONFIGURA.
- configura_portal_com_texto
Portal decorado com texto.
- @JOGO.n.texto
- decorador que adiciona um popup de texto. A ação do portal acontece quando se fecha o popup.
um_portal = configura_portal_com_texto("vestiário", "armário", hot_spot=dict(left=10, top=90)):
Parameters: cena – Nome do momento a ser configurado, tem que ser chave de CONFIGURA. Returns: Proxi da cena construída pela classe interna PreviaDoMomento.
-
class
lab.views.marcela.
PreviaDoMomento
(jogo, destino)[source]¶ Bases:
object
Cria um proxi para a cena que ativa os portais somente quando é montrada pelo comando vai.
- self.destino
- nome da cena que surge ao clicar no portal.
- self._destino
- objeto cena referente à cena destino, recuperada como atributo da classe Cena.
Parameters: - jogo – Instância da classe JogoMarcela
- destino – nome da cena destino
Note
Ambiente de treinamento para manuseio alimentar.
Vitollino - Jardim Radical¶
Aventura no Jardim Botânico¶
See also
Marcela | Vitollino - Jogo da Marcela |
Vitollino | Primeiro Cenário do Jogo |
ROTEIRO DO GAME JARDIM RADICAL.¶
Gerador de labirintos e jogos tipo ‘novel’.
Sequência de forma lógica para o funcionamento do jogo, ou seja, “costurar” as histórias das cenas.
See also
-
class
lab.views.jardim.
Config
[source]¶ Bases:
object
- CONFIGURA
Dicionário de configuração das cenas.
CONFIGURA = dict(origem=["vestiário#armário#Asseio#Por o avental", True, dict(left=429))
Origem, Destino, Título e Texto Com Popup Hot Spot “Origem#Destino#Título#Texto” True or False {“top”:1} - Origem, Destino, Título e Texto
String com partes separadas por #
- Origem
- Nome da cena de origem, precisa ser uma chave de CONFIGURA
- Destino
- Nome da cena de destino, precisa ser uma chave de CONFIGURA
- Título
- Título do popup de texto
- Texto
- Texto do popup de texto
- Com Popup
- Determina se vai aparecer o popup de texto na transição de cenas
- Hot Spot
Dicionário com as dimensões do hot spot que vai receber o click
dict(left=429, top=112, width=109, height=300)
-
CONFIGURA
= {'gruta': ['gruta#guarita#gruta#guarita', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'bambus': ['bambus#bambuzal#bambus#bambuzal', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'serpabrandao': ['serpabrandao#tartarugas#serpabrandao#tartarugas', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'clarisse': ['clarisse#comoro#clarisse#comoro', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'orquidario': ['orquidario#ossanha#orquidario#ossanha', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'portal': ['portal#portao#portal#portao', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'mirante': ['mirante#narciso#mirante#narciso', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'tartarugas': ['tartarugas#tetis#tartarugas#tetis', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'comoro': ['comoro#entrada#comoro#entrada', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'entrada': ['entrada#gruta#entrada#gruta', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'palmeiras': ['palmeiras#pesquisa#palmeiras#pesquisa', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'aleiapalmeiras': ['aleiapalmeiras#bambus#aleiapalmeiras#bambus', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'portao': ['portao#relogio#portao#relogio', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'relogio': ['relogio#serpabrandao#relogio#serpabrandao', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'lago': ['lago#macaco#lago#macaco', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'macaco': ['macaco#mexicano#macaco#mexicano', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'tomjobim': ['tomjobim#vitoriaregia#tomjobim#vitoriaregia', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'japones': ['japones#lago#japones#lago', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'pesquisa': ['pesquisa#portal#pesquisa#portal', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'narciso': ['narciso#orquidario#narciso#orquidario', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'bromeliario': ['bromeliario#cascata#bromeliario#cascata', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'mexicano': ['mexicano#mirante#mexicano#mirante', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'guarita': ['guarita#herborizada#guarita#herborizada', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'vitoriaregia': ['vitoriaregia#xochipili#vitoriaregia#xochipili', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'academia': ['academia#aleiapalmeiras#academia#aleiapalmeiras', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'tetis': ['tetis#tomjobim#tetis#tomjobim', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'cascata': ['cascata#clarisse#cascata#clarisse', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'insetivoras': ['insetivoras#jambeiros#insetivoras#jambeiros', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'herborizada': ['herborizada#insetivoras#herborizada#insetivoras', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'origem': ['abrico#academia#abrico#academia', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'jambeiros': ['jambeiros#japones#jambeiros#japones', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'bambuzal': ['bambuzal#bromeliario#bambuzal#bromeliario', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'abrico': ['abrico#academia#abrico#academia', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}], 'ossanha': ['ossanha#palmeiras#ossanha#palmeiras', True, {'left': 0, 'width': 100, 'height': 100, 'top': 0}]}¶
-
class
lab.views.jardim.
JogoJardim
(legendas=['abrico', 'academia', 'aleiapalmeiras', 'bambus', 'bambuzal', 'bromeliario', 'cascata', 'clarisse', 'comoro', 'entrada', 'gruta', 'guarita', 'herborizada', 'insetivoras', 'jambeiros', 'japones', 'lago', 'macaco', 'mexicano', 'mirante', 'narciso', 'orquidario', 'ossanha', 'palmeiras', 'pesquisa', 'portal', 'portao', 'relogio', 'serpabrandao', 'tartarugas', 'tetis', 'tomjobim', 'vitoriaregia', 'xochipili'])[source]¶ Bases:
object
Constroi o jogo completo do Jardim.
Parameters: legendas – lista contendo nomes das cenas [<nome da cena>, …] -
static
_cria_cenas
(cenas)[source]¶ Cria um conjunto de objetos Cena a partir de um dicionário.
Usa a função cria de criar cenas do Vitollino: JOGO.c.c
:param cenas:dicionário contendo <nome da cena>: <url da imagem> :return: cenário, uma lista de quadros criados
-
static
_decorador_do_vai_do_texto
(port)[source]¶ Decorador do texto para refinamento, publica as dimensões do cursor no popup de texto.
Parameters: port – portal que vai ser decorado Returns: Nenhum
-
configura_momentos
(cena)[source]¶ Configura a cena do momento para ativar seu portal segundo os dados em CONFIGURA.
- configura_portal_com_texto
Portal decorado com texto.
- @JOGO.n.texto
- decorador que adiciona um popup de texto. A ação do portal acontece quando se fecha o popup.
um_portal = configura_portal_com_texto("vestiário", "armário", hot_spot=dict(left=10, top=90)):
Parameters: cena – Nome do momento a ser configurado, tem que ser chave de CONFIGURA. Returns: Proxi da cena construída pela classe interna PreviaDoMomento.
-
static
-
class
lab.views.jardim.
PreviaDoMomento
(jogo, destino)[source]¶ Bases:
object
Cria um proxi para a cena que ativa os portais somente quando é montrada pelo comando vai.
- self.destino
- nome da cena que surge ao clicar no portal.
- self._destino
- objeto cena referente à cena destino, recuperada como atributo da classe Cena.
Parameters: - jogo – Instância da classe JogoMarcela
- destino – nome da cena destino
Note
Aventura no Jardim Botânico.
Primeiro Cenário do Jogo¶
- Vamos começar importando o módulo vitollino para criar um jogo baseado na biblioteca Vitollino.
- Neste módulo vamos usar a classe Cena, que vai permitir a criação da primeira cena, o lago das tartarugas:

from _spy.vitollino import Cena
TARTARUGAS = "https://activufrj.nce.ufrj.br/studio/labase/lago.jpg?disp=inline&size=G"
def main():
uma_cena = Cena(img=TARTARUGAS)
uma_cena.vai()
if __name__ == "__main__":
main()
Note
Ainda é um programa bem simples.
Desenvolvimento¶
Vitollino - Introdução¶
Engenho de Games para Ensino de Programação | LABASE | ![]() |
Visão Global
Vitollino é um engenho para construção de jogos inteligentes para ensino de programação ou qualquer outro asunto que possa ser ensinado por games.
Este ambiente facilita a aprendizagem da linguagem Python
O jogo é dirigido principalmente ao ensino de programação de computadores para jovens e crianças do ensino médio e fundamental.
O engenho Vitollino é baseado no Phaser e é programado em Brython
Código Fonte | Github |
Registro de Tiquets | Github-Issues |
Especificações e Qualidade
Atividades em Waffle.io | |
Integração em Codeship | |
Manual em Read the Docs | |
Equipe de Desenvolvimento
Carlo Emmanoel Tolla de Oliveira | |||
Gráfico de Produção
Copyleft 2016 Carlo E. T. Oliveira
Vitollino - Módulos¶
Vitollino é programado em Brython
Funcionalidades Documentadas:
Vitollino - Jogo de Novelas¶
Vitollino¶
Gerador de labirintos e jogos tipo ‘novel’.¶
Gerador de labirintos e jogos tipo ‘novel’.
-
class
_spy.vitollino.vitollino.
Cena
(img='', esquerda=<CenaNula>, direita=<CenaNula>, meio=<CenaNula>, vai=None, nome='', xy=(0, 0), score={}, **kwargs)[source]¶ Bases:
object
Use para construir uma cena.
from _spy.vitollino import Cena cena_esq = Cena(img="esq.jpg") cena_mei = Cena(img="mei.jpg", cena_esq) cena_mei.vai()
Parameters:
-
class
_spy.vitollino.vitollino.
Cursor
(alvo, cena=<browser.BrythonMock object>)[source]¶ Bases:
object
-
class
_spy.vitollino.vitollino.
Droppable
(droppable, dropper_name='', action=None, cursor=None)[source]¶ Bases:
object
-
class
_spy.vitollino.vitollino.
Elemento
(img='', vai=None, style={}, tit='', alt='', cena=Inventario, score={}, **kwargs)[source]¶ Bases:
object
Um objeto de interação que é representado por uma imagem em uma cena.
- papel = Elemento(
- img=”papel.png”, tit=”caderno de notas”, vai=pega_papel, style=dict(left=350, top=550, width=60))
Parameters: - img – URL de uma imagem
- vai – função executada quando se clica no objeto
- style – dicionário com dimensões do objeto {“left”: …, “top”: …, width: …, height: …}
- tit – Texto que aparece quando se passa o mouse sobre o objeto
- alt – Texto para leitores de tela
- cena – cena alternativa onde o objeto vai ser colocado
- score – determina o score para este elemento
- kwargs – lista de parametros nome=URL que geram elementos com este nome e a dada imagem
-
limbo
= <browser.BrythonMock object>¶
-
class
_spy.vitollino.vitollino.
Inventario
(tela=<browser.BrythonMock object>)[source]¶ Bases:
object
Os objetos que estão de posse do jogador.
Parameters: tela – Div do HTML onde o inventário será anexado -
GID
= '00000000000000000000'¶
-
bota
(nome_item, item='', acao=None)[source]¶ Os objetos que estão de posse do jogador.
>>> inv.bota("uma_coisa") >>> "uma_coisa" in inv.inventario True
Parameters: - nome_item – uma string com o nome do item, ele será criado e colocado no inventário
- item – URL da imagem do item nomeado por nome_item
- acao – ação associada com o item nomeado quando ele é clicado
-
-
class
_spy.vitollino.vitollino.
Jogo
[source]¶ Bases:
object
-
algo
¶ Acessa a classe Elemento
-
cena
¶ Acessa a classe Cena
-
nota
¶ Acessa a classe Texto
-
quarto
¶ Acessa a classe Sala
-
sala
¶ Acessa a classe Salao
-
-
class
_spy.vitollino.vitollino.
Labirinto
(c=<CenaNula>, n=<CenaNula>, l=<CenaNula>, s=<CenaNula>, o=<CenaNula>)[source]¶ Bases:
object
-
class
_spy.vitollino.vitollino.
Musica
(sound, loop=True, autoplay=True, sound_type='audio/mpeg')[source]¶ Bases:
object
-
class
_spy.vitollino.vitollino.
NoEv
[source]¶ Bases:
_spy.vitollino.vitollino.NoEv
Representa um evento vazio.
>>> print(ev.x, ev.y) -100 -100
-
class
_spy.vitollino.vitollino.
Popup
(cena, tit='', txt='', vai=None, **kwargs)[source]¶ Bases:
object
-
POP
= <Popup>¶
-
-
class
_spy.vitollino.vitollino.
Portal
(cena=None, debug_=False, **kwargs)[source]¶ Bases:
object
-
L
= {'left': '90%', 'min-height': '60%', 'position': 'absolute', 'top': '20%', 'width': '10%', 'margin': '0%', 'cursor': 'e-resize'}¶
-
N
= {'left': '20%', 'min-height': '20%', 'position': 'absolute', 'top': 0, 'width': '60%', 'margin': '0%', 'cursor': 'n-resize'}¶
-
O
= {'left': 0, 'min-height': '60%', 'position': 'absolute', 'top': '20%', 'width': '10%', 'margin': '0%', 'cursor': 'w-resize'}¶
-
PORTAIS
= {'L': {'left': '90%', 'min-height': '60%', 'position': 'absolute', 'top': '20%', 'width': '10%', 'margin': '0%', 'cursor': 'e-resize'}, 'S': {'left': '20%', 'bottom': 0, 'position': 'absolute', 'min-height': '10%', 'width': '60%', 'margin': '0%', 'cursor': 's-resize'}, 'Z': {'width': '10%', 'min-height': '10%', 'position': 'absolute', 'margin': '0%', 'cursor': 'zoom-in'}, 'N': {'left': '20%', 'min-height': '20%', 'position': 'absolute', 'top': 0, 'width': '60%', 'margin': '0%', 'cursor': 'n-resize'}, 'O': {'left': 0, 'min-height': '60%', 'position': 'absolute', 'top': '20%', 'width': '10%', 'margin': '0%', 'cursor': 'w-resize'}}¶
-
S
= {'left': '20%', 'bottom': 0, 'position': 'absolute', 'min-height': '10%', 'width': '60%', 'margin': '0%', 'cursor': 's-resize'}¶
-
Z
= {'width': '10%', 'min-height': '10%', 'position': 'absolute', 'margin': '0%', 'cursor': 'zoom-in'}¶
-
-
class
_spy.vitollino.vitollino.
Sala
(n=<CenaNula>, l=<CenaNula>, s=<CenaNula>, o=<CenaNula>, nome='', **kwargs)[source]¶ Bases:
object
-
leste
¶
-
norte
¶
-
oeste
¶
-
sul
¶
-
-
class
_spy.vitollino.vitollino.
SalaCenaNula
[source]¶ Bases:
_spy.vitollino.vitollino.SalaCenaNula
Define uma Sala ou uma Cena vazia.
>>> cena = Cena(SalaCenaNula()) # A próxima cena >>> uma_cena = Cena(SalaCenaNula(), cena) # Cena nula à esquerda, proxima no meio >>> uma_cena.vai_esquerda() # tenta navegar para a cena à esquerda >>> # não vai, pois a cena é nula e não deixa que se navegue para ela >>> print(INVENTARIO.cena == cena) True
Deve ser usado quando um parâmetro requer uma cena mas não deve ter uma cena válida ali.
-
class
_spy.vitollino.vitollino.
Salao
(n=<CenaNula>, l=<CenaNula>, s=<CenaNula>, o=<CenaNula>, nome='', **kwargs)[source]¶
-
_spy.vitollino.vitollino.
singleton
(cls_to_decorate)[source]¶ Decora um classe para ser um singleton e retornar sempre a mesma instância.
>>> @singleton ... class Mono: ... def __init__(self): ... self.x = 0 ... >>> Mono().x, Mono().x = 1, 2 >>> print(Mono().x == Mono().x, Mono().x) True 2
Parameters: cls_to_decorate – A classe para ser definida como singleton Returns: O decorador de singleton
-
_spy.vitollino.vitollino.
wraps_class_to_mimic_wrapped
(original_cls)[source]¶ Empacota uma classe decoradora para que apareça corretamente nos documentos.
>>> @wraps_class_to_mimic_wrapped ... class Exemplo: ... ... ... >>> print(Exemplo.__doc__) Atualiza wrapper_cls para se assemelhar à classe original_cls.
Parameters: original_cls – A Classe a ser empacotada Returns: O empacotador da classe
Note
Biblioteca Cliente para Jogos.
Flying Circus - Jogo Phaser¶
Braser¶
-
class
_spy.circus.braser.
Braser
(x=800, y=600, mode=None, name='pydiv', **_)[source]¶ Bases:
object
Brython object-oriented wrapper for js Phaser.
Parameters: - x – Canvas width.
- y – Canvas height.
- mode – Canvas mode.
- name – Game name.
- keyargs – Extra arguments
-
PHASER
= <MagicMock name='mock.Phaser' id='140160404162264'>¶
Note
Biblioteca Cliente para Jogos.
Game¶
-
class
_spy.circus.game.
Actor
[source]¶ Bases:
_spy.circus.game.Circus
Define um ator, personagem ou cenário.
-
class
_spy.circus.game.
Circus
[source]¶ Bases:
object
Interface com o engenho de games Phaser.
-
BRASER
= None¶
-
See also
Module _spy.circus.braser
Note
Biblioteca Cliente para Jogos.
Masmorra¶
-
class
_spy.circus.circus.
DesafioA
(masmorra=[['LS', 'JN', 'KO'], ['IO', 'FN', 'IL'], ['GS', 'JS', 'GL']], off=0)[source]¶ Bases:
object
-
ODD
= False¶
-
-
_spy.circus.circus.
circus
(desafio=1, param=[['LS', 'JN', 'KO'], ['IO', 'FN', 'IL'], ['GS', 'JS', 'GL']])[source]¶
-
_spy.circus.circus.
random
() → x in the interval [0, 1).¶
See also
Module _spy.circus.game
Note
Biblioteca Cliente para Jogos.
Lançamentos¶
Notas de Lançamento V. 1.1.0¶
Vitollino
Milestone¶
Gatíneo - Ativar modo multiusuário 🐱
- [ ] Aspecto #1: Console do mentor
- [ ] Aspecto #2: Equipes de jogadores
- [ ] Aspecto #3: Import reload
- [ ] Aspecto #4: Gerência de mentoria
- [ ] Aspecto #5: Módulo de supervisão de mentoria
- [ ] Aspecto #6: Modelagem gráfica colaborativa
Aspectos do Lançamento¶
Destaques dos Aspectos¶
Início da documentação do tutorial
Aspecto #1¶
- Console do mentor 🏠
- Este console permite que o mentor do tutorial receba notificações de dificuldades que os estudantes estão tendo com seus projetos.
Aspecto #2¶
- Equipes de jogadores 🏠
- Permite que os jogadores formem equipes e resolvam conjuntamente uma aventura.
Aspecto #3¶
- Import reload 🏠
- Esta função permite que o cache de módulos seja invalidada, permitindo que se use o código atualizado produzido por outro estudante deste projeto.
Aspecto #4¶
- Gerência de mentoria 🏠
- Facilita que diversos mentores se dividam no atendimento dos problemas.
Melhoramentos¶
Facilidades para a formação de equipes.
Consertos¶
Nenhum conserto notável.
Questões e Problemas Conhecidos¶
A funcionalidade ainda é muito simples, requer melhorias.
Lançamentos Anteriores e Posteriores¶
Lançamento Anterior: Milestone Catioro Lançamento 1.0.0
Próximo Lançamento: Milestone Ratíneo Lançamento 1.2.0
Notas de Lançamento V. 1.0.0¶
Vitollino
Milestone¶
Catioro - Montagem do Ambiente de Jogo 🐱
- [ ] Aspecto #1: Navegação através de portais
- [ ] Aspecto #2: Construção de mapas de labirinto
- [ ] Aspecto #3: Adiciona música e sons
- [ ] Aspecto #4: Texto decorador
- [ ] Aspecto #5: Montagem interativa com cursor móvel
- [ ] Aspecto #6: Banco de dado Redis via Walrus
Aspectos do Lançamento¶
Destaques dos Aspectos¶
Início da documentação do tutorial
Aspecto #1¶
- Navegação através de portais 🏠
- A navegação entre cenários se dá através de cursores indicativos que flutuam sobre o local do portal.
Aspecto #2¶
- Construção de mapas de labirinto 🏠
- Um labirinto pode ser construído montando uma matriz de duas dimensões. Cada célula da matriz irá se conectar coms seus vizinhos nos quatro pontos cardeais.
Aspecto #4¶
- Texto decorador 🏠
- Um portal pode ser decorado com um popup de texto que aparece antes de transitar para outra cena.
Melhoramentos¶
Reúne Vitollino e Braser no mesmo repositório.
Melhoramento #1¶
Tutorial vitollino sendo portado para Restrutured Text.
Consertos¶
Nenhum conserto notável.
Questões e Problemas Conhecidos¶
A funcionalidade ainda é muito simples, requer melhorias.
Uma nova versão deve integrar melhor as duas modalidades de tutorial.
Lançamentos Anteriores e Posteriores¶
Próximo Lançamento: A ser definido Lançamento 1.1.0
Notas de Lançamento Futuro¶
Vitollino
Milestones¶
Catioro - Criar e personalizar equipes 🐶
Gatíneo - Ativar modo multiusuário 🐱
Ratíneo - Ativar modo cooperativo 🐭
Aspectos dos Lançamentos¶
Destaques dos Aspectos¶
Início da documentação do tutorial
Milestone Catioro 🐶¶
- [ ] Navegação através de portais
- [ ] Construção de mapas de labirinto
- [ ] Adiciona música e sons
- [ ] Texto decorador
- [ ] Montagem interativa com cursor móvel
- [ ] Banco de dado Redis via Walrus
Milestone Gatíneo 🐱¶
- [ ] Console do mentor
- [ ] Equipes de jogadores
- [ ] Import reload
- [ ] Gerência de mentoria
- [ ] Módulo de supervisão de mentoria
- [ ] Modelagem gráfica colaborativa
Milestone Ratíneo 🐭¶
