Ball.gd 433 B

1234567891011121314151617
  1. class_name Ball
  2. extends RigidBody2D
  3. signal kace_broken
  4. var grid:TileMap
  5. func _integrate_forces(state : Physics2DDirectBodyState):
  6. for i in range(state.get_contact_count()):
  7. var contact_pos = state.get_contact_local_position(i)
  8. var tile_pos = grid.world_to_map(contact_pos)
  9. var cell = grid.get_cellv(tile_pos)
  10. if cell != TileMap.INVALID_CELL and cell == 0:
  11. grid.set_cellv(tile_pos, -1)
  12. emit_signal("kace_broken")