comparison tools/area_editor.py @ 549:f868a8592432

Less leaky terrain movement
author Neil Muller <drnlmuller@gmail.com>
date Sat, 07 Sep 2013 21:48:55 +0200
parents c13f81f8d48c
children 3c7593a84b06
comparison
equal deleted inserted replaced
548:b0c5f032eb9d 549:f868a8592432
875 new_coords = self.level.point_to_pymunk(new_pos) 875 new_coords = self.level.point_to_pymunk(new_pos)
876 shape = obj.get_shape() 876 shape = obj.get_shape()
877 shape.body.position = (new_coords[0], new_coords[1]) 877 shape.body.position = (new_coords[0], new_coords[1])
878 data = self.level.lookup[obj] 878 data = self.level.lookup[obj]
879 args = data['args'] 879 args = data['args']
880 old_coords = list(args[0])
880 param_defs = obj.requires()[1:] # chop off name 881 param_defs = obj.requires()[1:] # chop off name
881 for i, (_key, key_type) in enumerate(param_defs): 882 for i, (_key, key_type) in enumerate(param_defs):
882 if i > len(args): 883 if i > len(args):
883 break 884 break
884 if key_type == "polygon (convex)": 885 if key_type == "polygon (convex)":
885 self._update_pos(obj, new_pos) 886 new_outline = self.level.translate_poly(
887 args[i], old_coords, new_coords)
888 obj.update_image(new_outline)
886 self.invalidate() 889 self.invalidate()
887 890
888 def _update_pos(self, obj, new_pos): 891 def _update_pos(self, obj, new_pos):
889 data = self.level.lookup[obj] 892 data = self.level.lookup[obj]
890 new_coords = self.level.point_to_pymunk(new_pos) 893 new_coords = self.level.point_to_pymunk(new_pos)