Source code for _spy.circus.braser
#! /usr/bin/env python
# -*- coding: UTF8 -*-
# Este arquivo é parte do programa Vittolino
# Copyright 2011-2017 Carlo Oliveira <carlo@nce.ufrj.br>,
# `Labase <http://labase.selfip.org/>`__; `GPL <http://is.gd/3Udt>`__.
#
# Vittolino é um software livre; você pode redistribuí-lo e/ou
# modificá-lo dentro dos termos da Licença Pública Geral GNU como
# publicada pela Fundação do Software Livre (FSF); na versão 2 da
# Licença.
#
# Este programa é distribuído na esperança de que possa ser útil,
# mas SEM NENHUMA GARANTIA; sem uma garantia implícita de ADEQUAÇÃO
# a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
# Licença Pública Geral GNU para maiores detalhes.
#
# Você deve ter recebido uma cópia da Licença Pública Geral GNU
# junto com este programa, se não, veja em <http://www.gnu.org/licenses/>
from browser import window, document
PHASER = window.Phaser
BraserGame = PHASER.Game
[docs]class Braser:
"""
Brython object-oriented wrapper for js Phaser.
:param x: Canvas width.
:param y: Canvas height.
:param mode: Canvas mode.
:param name: Game name.
:param keyargs: Extra arguments
"""
PHASER = window.Phaser
def __init__(self, x=800, y=600, mode=None, name="pydiv", **_):
mode = mode or PHASER.CANVAS
document[name].html = ""
self.game = BraserGame.new(x, y, mode, name,
{"preload": self.preload, "create": self.create, "update": self.update})
self.subscribers = []
[docs] def subscribe(self, subscriber):
"""
Subscribe elements for game loop.
:param subscriber:
"""
self.subscribers.append(subscriber)
[docs] def preload(self, *_):
"""
Preload element.
"""
for subscriber in self.subscribers:
subscriber.preload()
[docs] def create(self, *_):
"""
Create element.
"""
for subscriber in self.subscribers:
subscriber.create()
[docs] def update(self, *_):
"""
Update element.
"""
for subscriber in self.subscribers:
subscriber.update()