mirror of
https://github.com/pyscript/pyscript.git
synced 2022-05-01 19:47:48 +03:00
Move antigravity to module
This commit is contained in:
33
pyscriptjs/examples/antigravity.py
Normal file
33
pyscriptjs/examples/antigravity.py
Normal file
@@ -0,0 +1,33 @@
|
||||
import random
|
||||
import sys
|
||||
|
||||
from js import document, DOMParser, setInterval
|
||||
from pyodide import create_proxy
|
||||
from pyodide.http import open_url
|
||||
|
||||
class Antigravity():
|
||||
|
||||
url = './antigravity.svg'
|
||||
|
||||
def __init__(self, target=None, interval=10, append=True):
|
||||
target = target or sys.stdout._out
|
||||
self.target = document.getElementById(target) if isinstance(target, str) else target
|
||||
doc = DOMParser.new().parseFromString(open_url(self.url).read(), "image/svg+xml")
|
||||
self.node = doc.documentElement
|
||||
if append:
|
||||
self.target.append(self.node)
|
||||
else:
|
||||
self.target.replaceChildren(self.node)
|
||||
self.xoffset, self.yoffset = 0, 0
|
||||
setInterval(create_proxy(self.move), interval)
|
||||
|
||||
def move(self):
|
||||
char = self.node.getElementsByTagName('g')[1]
|
||||
char.setAttribute('transform', f'translate({self.xoffset}, {-self.yoffset})')
|
||||
self.xoffset += random.normalvariate(0, 1)/20
|
||||
if self.yoffset < 50:
|
||||
self.yoffset += 0.1
|
||||
else:
|
||||
self.yoffset += random.normalvariate(0, 1)/20
|
||||
|
||||
Antigravity(append=True);
|
||||
Reference in New Issue
Block a user