From e00ccc6c5d2b25350f0e16766a2f7804b85d92a0 Mon Sep 17 00:00:00 2001 From: iggy <iggy@muc.ccc.de> Date: Sun, 4 Jun 2023 23:49:57 +0200 Subject: [PATCH] demo_worms.py: cleanup and more OO --- python_payload/demo_worms.py | 40 +++++++++++++++++------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/python_payload/demo_worms.py b/python_payload/demo_worms.py index f20540cfc9..b1a2c4cf25 100644 --- a/python_payload/demo_worms.py +++ b/python_payload/demo_worms.py @@ -1,13 +1,14 @@ -#python +#python imports import random import time import math -#badge23 +#flow3r imports import event import application import ui + # Subclass Application class AppWorms(application.Application): @@ -21,6 +22,13 @@ class AppWorms(application.Application): self.frame_slack = None self.last_report = None + 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()) @@ -64,26 +72,12 @@ class AppWorms(application.Application): self.last_render = now -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): @@ -139,6 +133,10 @@ class Worm(): self.mutate() self._lastdist = dist + + +app = AppWorms("worms") + # To run standalone: #app.run() #app.engine.eventloop() -- GitLab