Grid.gd 729 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. extends TileMap
  2. signal kace_broken
  3. signal has_moved
  4. enum Tile {
  5. BRICK = 0,
  6. }
  7. enum State {
  8. DONE,
  9. MOVING,
  10. }
  11. var current_state = State.DONE
  12. var current_row = 1
  13. func generate_row():
  14. for k in range(10):
  15. set_cell(k, -current_row, Tile.BRICK)
  16. func move():
  17. current_row += 1
  18. position.y += cell_size.y
  19. func _on_Ball_kace_contact(contact_pos:Vector2):
  20. var local_position = to_local(contact_pos)
  21. var tile_pos = world_to_map(local_position)
  22. var cell = get_cellv(tile_pos)
  23. if cell != TileMap.INVALID_CELL and cell == Tile.BRICK:
  24. set_cellv(tile_pos, -1)
  25. emit_signal("kace_broken")
  26. func _on_Launcher_is_full():
  27. generate_row()
  28. current_state = State.MOVING
  29. move()
  30. current_state = State.DONE
  31. emit_signal("has_moved")