diff --git a/columbus/env.py b/columbus/env.py index 28fcfc3..2e09ad7 100644 --- a/columbus/env.py +++ b/columbus/env.py @@ -513,7 +513,7 @@ class ColumbusConfigDefined(ColumbusEnv): if s.replace('.', '', 1).isdigit(): return True num, unit = s[:-2], s[-2:] - if unit in ['px', 'em', 'rx', 'ry', 'ct']: + if unit in ['px', 'em', 'rx', 'ry', 'ct', 'au']: if num.replace('.', '', 1).isdigit(): return True return False @@ -538,6 +538,8 @@ class ColumbusConfigDefined(ColumbusEnv): em = num elif unit == 'px': em = num / ({'x': self.width, 'y': self.height}[axis]) + elif unit == 'au': + em = num * 36 / ({'x': self.width, 'y': self.height}[axis]) elif unit == 'ct': em = num / 100 else: diff --git a/configs/Example_Units.yaml b/configs/Example_Units.yaml index 4499b74..c5ba7d7 100644 --- a/configs/Example_Units.yaml +++ b/configs/Example_Units.yaml @@ -6,13 +6,15 @@ name: "DEFAULT" # ct: 100ct = Full Width / Height # rx: pixels relative to width # ry: pixels relative to height +# au: 1au = 36px # # When no unit is given, we use the folowing defaults # (compatible with legacy behavior) # pos: em # all other: px # -# ct is the recommendet unit... +# ct is the recommendet unit. +# If you need a unit, that is not responsive in regards to width/height, use au / px. params: task: @@ -70,7 +72,7 @@ params: pos: [0.75em, 90px] - type: OnceReward reward: 100 - radius: 3ct + radius: 1au pos: [0.3, 0.8] # defaults to em start_pos: [90ct, 20ct] default_collision_elasticity: 0.8