浏览代码

Generate every cell by programming

DricomDragon 3 年之前
父节点
当前提交
05c510b6b3
共有 3 个文件被更改,包括 23 次插入8 次删除
  1. 0 1
      godot/scenes/main.tscn
  2. 16 4
      godot/scripts/Grid.gd
  3. 7 3
      godot/scripts/Launcher.gd

+ 0 - 1
godot/scenes/main.tscn

@@ -74,7 +74,6 @@ tile_set = SubResource( 6 )
 cell_size = Vector2( 40, 20 )
 cell_custom_transform = Transform2D( 40, 0, 0, 20, 0, 0 )
 format = 1
-tile_data = PoolIntArray( 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0, 6, 0, 0, 7, 0, 0, 8, 0, 0, 9, 0, 0, 65536, 0, 0, 65537, 0, 0, 65538, 0, 0, 65539, 0, 0, 65540, 0, 0, 65541, 0, 0, 65542, 0, 0, 65543, 0, 0, 65544, 0, 0, 65545, 0, 0 )
 script = ExtResource( 6 )
 
 [node name="Target" type="Sprite" parent="Launcher"]

+ 16 - 4
godot/scripts/Grid.gd

@@ -16,14 +16,29 @@ var current_state = State.DONE
 
 var current_row = 1
 
+var living_cells = {}
+
+
+func generate_and_move():
+	generate_row()
+	current_state = State.MOVING
+	move()
+	current_state = State.DONE
+
 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 _ready():
+	generate_and_move()
+
+
 func _on_Ball_kace_contact(contact_pos:Vector2):
 	var local_position = to_local(contact_pos)
 	var tile_pos = world_to_map(local_position)
@@ -34,8 +49,5 @@ func _on_Ball_kace_contact(contact_pos:Vector2):
 
 
 func _on_Launcher_is_full():
-	generate_row()
-	current_state = State.MOVING
-	move()
-	current_state = State.DONE
+	generate_and_move()
 	emit_signal("has_moved")

+ 7 - 3
godot/scripts/Launcher.gd

@@ -13,15 +13,19 @@ const BULLET_SPEED = 300.0
 
 var _ballScene = preload("res://scenes/Ball.tscn")
 
-var nbAmmo = 1
-var nbStorage = 0
+var nbAmmo = 0
+var nbStorage = 1
 
 onready var target = $Target
 onready var source = $Source
 onready var shootDelay = $ShootDelay
 onready var grid = $Grid
 
-onready var current_state = State.READY
+onready var current_state = State.WAITING
+
+
+func _ready():
+	get_ready()
 
 
 func _input(event):