Exemplo n.º 1
0
 def on_mouse_press(self, x, y, buttons, mod):
     slots = self.coll_man_slots.objs_touching_point(x, y)
     if len(slots) and self.points >= 20:
         self.points -= 20
         slot = next(iter(slots))
         turret = actors.Turret(*slot.cshape.center)
         self.turrets.append(turret)
         self.add(turret)
Exemplo n.º 2
0
 def on_mouse_press(self, x, y, buttons, mod): #當滑鼠點擊到的地方跟砲塔槽碰撞時檢查分數是否夠放一個砲塔
     slots = self.coll_man_slots.objs_touching_point(x, y)
     #print(slots)
     if len(slots) and self.points >= 20:
         self.points -= 20
         
         """
         上方print(slots),會出現{<actors.TurretSlot object at 0x0000016EB93C4B48>},可見是一個元組 所以必須取出 這裡作者取出的方法是生成iter之後用next取出
         為何使用next,課本未解釋 next功能原為每次運行時依序取出迭代器中的值
         但這裡即便我們一直選擇將砲塔放置在同一個砲塔槽,砲塔槽始終只有一個,所以原則上並不需要next
         """
         
         slot = next(iter(slots))
         #print(slot)
         
         #將砲塔設置於砲塔槽中心
         # #用"*"可以一次傳x、y座標(=一組參數),加入砲塔
         turret = actors.Turret(*slot.cshape.center)
         self.turrets.append(turret) #加入砲塔至已有砲塔中
         self.add(turret)