Bastien Sevajol 7 years ago
parent
commit
c791d2ebd8
3 changed files with 17 additions and 7 deletions
  1. 6 0
      sandbox/tiledstrategy/gui/base.py
  2. 5 5
      synergine2_cocos2d/gui.py
  3. 6 2
      synergine2_cocos2d/layer.py

+ 6 - 0
sandbox/tiledstrategy/gui/base.py View File

11
         man = Actor('man.png')
11
         man = Actor('man.png')
12
         man.update_position(euclid.Vector2(100.0, 100.0))
12
         man.update_position(euclid.Vector2(100.0, 100.0))
13
         self.layer_manager.add_subject(man)
13
         self.layer_manager.add_subject(man)
14
+        self.layer_manager.set_selectable(man)
15
+
16
+        man2 = Actor('man.png')
17
+        man2.update_position(euclid.Vector2(200.0, 200.0))
18
+        self.layer_manager.add_subject(man2)
19
+        self.layer_manager.set_selectable(man2)

+ 5 - 5
synergine2_cocos2d/gui.py View File

218
         # TODO: Hardcoded here, should be obtained from level properties or calc
218
         # TODO: Hardcoded here, should be obtained from level properties or calc
219
         # from available actors or current actors in worldview
219
         # from available actors or current actors in worldview
220
         gsize = 32 * 1.25
220
         gsize = 32 * 1.25
221
-        self.collman = collision_model.CollisionManagerGrid(
221
+        self.collision_manager = collision_model.CollisionManagerGrid(
222
             -gsize,
222
             -gsize,
223
             self.wwidth + gsize,
223
             self.wwidth + gsize,
224
             -gsize,
224
             -gsize,
429
         del self.selection[actor]
429
         del self.selection[actor]
430
 
430
 
431
     def end_drag_selection(self, wx, wy, modify_selection):
431
     def end_drag_selection(self, wx, wy, modify_selection):
432
-        new_selection = self.collman.objs_into_box(*self.elastic_box_wminmax)
432
+        new_selection = self.collision_manager.objs_into_box(*self.elastic_box_wminmax)
433
         if not modify_selection:
433
         if not modify_selection:
434
             # new_selected becomes the current selected
434
             # new_selected becomes the current selected
435
             self.selection.clear()
435
             self.selection.clear()
512
         self.drag_moving = False
512
         self.drag_moving = False
513
 
513
 
514
     def single_actor_from_mouse(self):
514
     def single_actor_from_mouse(self):
515
-        under_mouse = self.collman.objs_touching_point(*self.world_mouse)
515
+        under_mouse = self.collision_manager.objs_touching_point(*self.world_mouse)
516
         if len(under_mouse) == 0:
516
         if len(under_mouse) == 0:
517
             return None
517
             return None
518
         # return the one with the center most near to mouse, if tie then
518
         # return the one with the center most near to mouse, if tie then
533
         self.selection_in_collman = bool_value
533
         self.selection_in_collman = bool_value
534
         if bool_value:
534
         if bool_value:
535
             for actor in self.selection:
535
             for actor in self.selection:
536
-                self.collman.add(actor)
536
+                self.collision_manager.add(actor)
537
         else:
537
         else:
538
             for actor in self.selection:
538
             for actor in self.selection:
539
-                self.collman.remove_tricky(actor)
539
+                self.collision_manager.remove_tricky(actor)
540
 
540
 
541
     def on_mouse_scroll(self, x, y, scroll_x, scroll_y):
541
     def on_mouse_scroll(self, x, y, scroll_x, scroll_y):
542
         # TODO: check if mouse over scroller viewport?
542
         # TODO: check if mouse over scroller viewport?

+ 6 - 2
synergine2_cocos2d/layer.py View File

94
 
94
 
95
     def add_subject(self, subject: 'Actor') -> None:
95
     def add_subject(self, subject: 'Actor') -> None:
96
         self.subject_layer.add(subject)
96
         self.subject_layer.add(subject)
97
-        self.edit_layer.collman.add(subject)
98
 
97
 
99
     def remove_subject(self, subject: 'Actor') -> None:
98
     def remove_subject(self, subject: 'Actor') -> None:
100
         self.subject_layer.remove(subject)
99
         self.subject_layer.remove(subject)
101
-        self.edit_layer.collman.remove_tricky(subject)
100
+
101
+    def set_selectable(self, subject: 'Actor') -> None:
102
+        self.edit_layer.collision_manager.add(subject)
103
+
104
+    def unset_selectable(self, subject: 'Actor') -> None:
105
+        self.edit_layer.collision_manager.remove_tricky(subject)