diff options
Diffstat (limited to 'behaviors/XYMove.py')
-rw-r--r-- | behaviors/XYMove.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/behaviors/XYMove.py b/behaviors/XYMove.py new file mode 100644 index 0000000..11cee96 --- /dev/null +++ b/behaviors/XYMove.py @@ -0,0 +1,24 @@ +from operationscore.Behavior import * +import util.Geo as Geo +class XYMove(Behavior): + """XYMove is a behavior designed to be used as a recursive hook to ResponseMover to move pixels by + XStep and YStep. As XStep and YStep are maintained in the responses itself, they can be + modulated to facilitate, acceleration, modulation, bouncing, etc. Specify: + <XStep> -- the starting XStep + <YStep> -- the starting YStep + """ + + def processResponse(self, sensor, recurs): + ret = [] + for loc in sensor: + oploc = dict(loc) + self.insertStepIfMissing(oploc) + oploc['Location'] = Geo.addLocations((oploc['XStep'], oploc['YStep']), oploc['Location']) + ret.append(oploc) + return (ret, []) + def insertStepIfMissing(self, data): + if not 'XStep' in data: + data['XStep'] = self['XStep'] + if not 'YStep' in data: + data['YStep'] = self['YStep'] + |