Mercurial > nagslang
changeset 544:ea396ebc7a92
Less leaky object movement
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Sat, 07 Sep 2013 21:26:32 +0200 |
parents | 80264aee0af2 |
children | 15f066cc5bf1 |
files | tools/area_editor.py |
diffstat | 1 files changed, 9 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/tools/area_editor.py Sat Sep 07 21:11:19 2013 +0200 +++ b/tools/area_editor.py Sat Sep 07 21:26:32 2013 +0200 @@ -187,6 +187,7 @@ def reset_objs(self): # Reset the object state - needed when changing stuff + old_drawable = self.drawables[:] self.drawables = [] self.overlay_drawables = [] self._glue = np.PuzzleGlue() @@ -633,7 +634,7 @@ if self.move_obj: corrected_pos = self._level_coordinates(ev.pos) snapped_pos = self.snap_to_grid(corrected_pos) - self._update_pos(self.move_obj, snapped_pos) + self._move_obj(self.move_obj, snapped_pos) if old_pos != self.mouse_pos and (self.cur_poly or self._draw_lines or self._move_point_mode or self._move_poly_mode): @@ -872,7 +873,13 @@ new_cls, None): edit_dlg.cleanup() - def _update_pos(self, obj, new_pos): + def _move_obj(self, obj, new_pos): + new_coords = self.level.point_to_pymunk(new_pos) + shape = obj.get_shape() + shape.body.position = (new_coords[0], new_coords[1]) + self.invalidate() + + def _update_pos(self, obj, new_pos, final=False): data = self.level.lookup[obj] new_coords = self.level.point_to_pymunk(new_pos) args = data['args']