소스 검색

lifegame cocos: resolve gui conflict with events

Bastien Sevajol 7 년 전
부모
커밋
1123638bc5
1개의 변경된 파일8개의 추가작업 그리고 2개의 파일을 삭제
  1. 8 2
      sandbox/life_game/gui.py

+ 8 - 2
sandbox/life_game/gui.py 파일 보기

@@ -68,6 +68,9 @@ class Cells(Layer):
68 68
         self.grid_manager = GridManager(self, 32, border=2)
69 69
 
70 70
     def born(self, grid_position):
71
+        if grid_position in self.cells:
72
+            return  # cell can be added by gui
73
+
71 74
         cell = Sprite('resources/cells_l.png')
72 75
         cell.rotation = randint(0, 360)
73 76
         self.grid_manager.scale_sprite(cell)
@@ -78,8 +81,11 @@ class Cells(Layer):
78 81
         self.add(cell)
79 82
 
80 83
     def die(self, grid_position):
81
-        self.remove(self.cells[grid_position])
82
-        del self.cells[grid_position]
84
+        try:
85
+            self.remove(self.cells[grid_position])
86
+            del self.cells[grid_position]
87
+        except KeyError:
88
+            pass  # Cell can be removed by gui
83 89
 
84 90
 
85 91
 class MainLayer(ScrollableLayer):