From 1ef1f27d1dfb117ec3dd7e881c5b0778adf42c58 Mon Sep 17 00:00:00 2001 From: iggy <iggy@muc.ccc.de> Date: Sun, 4 Jun 2023 18:23:33 +0200 Subject: [PATCH] demo_worms.py: cleanup and more OO --- python_payload/demo_worms.py | 40 +++++++++++++++--------------------- 1 file changed, 17 insertions(+), 23 deletions(-) diff --git a/python_payload/demo_worms.py b/python_payload/demo_worms.py index 1d087d32ab..4dd84eed38 100644 --- a/python_payload/demo_worms.py +++ b/python_payload/demo_worms.py @@ -1,18 +1,26 @@ -#python +#python imports import random import time import math -#badge23 +#flow3r imports import event import application import ui + # Subclass Application class AppWorms(application.Application): def on_init(self): print("on init") + self.add_event(event.Event( + name="worms_control", + action=self.handle_input, + condition=lambda data: data.get("type","")=="captouch" and data.get("value")==1 and data["change"], + ) + ) + self.worms = [] for i in range(0): worms.append(Worm()) @@ -39,26 +47,12 @@ class AppWorms(application.Application): w.draw() w.move() -app = AppWorms("worms") + def handle_input(self,data): + worms = app.worms + worms.append(Worm(data.get("index",0)*2*math.pi/10+math.pi )) + if len(worms)>10: + worms.pop(0) -def handle_input(data): - worms = app.worms - worms.append(Worm(data.get("index",0)*2*math.pi/10+math.pi )) - if len(worms)>10: - worms.pop(0) - -app.add_event(event.Event( - name="worms_control", - action=handle_input, - condition=lambda data: data.get("type","")=="captouch" and data.get("value")==1 and data["change"], - ) -) - -app.add_event(event.Event( - name="worms_exit", - action=app.exit, - condition=lambda e: e["type"]=="button" and e.get("from")==2 and e["change"] -)) class Worm(): def __init__(self,direction=None): @@ -115,8 +109,8 @@ class Worm(): self._lastdist = dist -#app.run() -#app.engine.eventloop() +app = AppWorms("worms") + #Known problems: #ctx.rotate(math.pi) turns the display black until powercycled -- GitLab