|
@@ -1,14 +1,41 @@
|
|
|
extends TileMap
|
|
|
|
|
|
signal kace_broken
|
|
|
+signal has_moved
|
|
|
|
|
|
enum Tile {
|
|
|
BRICK = 0,
|
|
|
}
|
|
|
|
|
|
+enum State {
|
|
|
+ DONE,
|
|
|
+ MOVING,
|
|
|
+}
|
|
|
+
|
|
|
+var current_state = State.DONE
|
|
|
+
|
|
|
+var current_row = 1
|
|
|
+
|
|
|
+func generate_row():
|
|
|
+ for k in range(10):
|
|
|
+ set_cell(k, -current_row, Tile.BRICK)
|
|
|
+
|
|
|
+func move():
|
|
|
+ current_row += 1
|
|
|
+ position.y += cell_size.y
|
|
|
+
|
|
|
func _on_Ball_kace_contact(contact_pos:Vector2):
|
|
|
- var tile_pos = world_to_map(contact_pos)
|
|
|
+ var local_position = to_local(contact_pos)
|
|
|
+ var tile_pos = world_to_map(local_position)
|
|
|
var cell = get_cellv(tile_pos)
|
|
|
if cell != TileMap.INVALID_CELL and cell == Tile.BRICK:
|
|
|
set_cellv(tile_pos, -1)
|
|
|
emit_signal("kace_broken")
|
|
|
+
|
|
|
+
|
|
|
+func _on_Launcher_is_full():
|
|
|
+ generate_row()
|
|
|
+ current_state = State.MOVING
|
|
|
+ move()
|
|
|
+ current_state = State.DONE
|
|
|
+ emit_signal("has_moved")
|