Skip to content

Commit 68d4751

Browse files
committed
bug fix
1 parent 215f4bb commit 68d4751

File tree

8 files changed

+57
-30
lines changed

8 files changed

+57
-30
lines changed

Code/GameManager.gd

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,19 @@ func get_occupied_platforms_count():
2828
func _initialize_boxes():
2929
# Ensure boxes are initialized after they are added to the scene
3030
for box in boxes:
31-
box.connect("on_platform_sig", Callable(self, "_on_box_moved"))
31+
box.connect("on_platform_sig", Callable(self, "_on_box_moved_in"))
32+
box.connect("out_platform_sig", Callable(self, "_on_box_moved_out"))
3233

33-
func _on_box_moved(platform):
34+
func _on_box_moved_in(platform):
3435
_check_all_platforms_occupied(platform)
3536

37+
func _on_box_moved_out(platform):
38+
for platform_info in all_platforms:
39+
if platform_info["platform"] == platform:
40+
platform_info["occupied"] = false
41+
print("Updated platform state:", platform)
42+
break
43+
3644
func _check_all_platforms_occupied(platform):
3745
for platform_info in all_platforms:
3846
if platform_info["platform"] == platform:
@@ -46,9 +54,6 @@ func _check_all_platforms_occupied(platform):
4654
all_occupied = false
4755
break
4856

49-
#if all_occupied:
50-
#_load_next_level()
51-
5257
func _load_next_level():
5358
print("All platforms are occupied! Loading next level...")
5459
var next_level_path = "res://levels/level_1.tscn"

Code/box.gd

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ extends CharacterBody2D
66
@onready var area2d = $Area2D # Reference to the Area2D node
77

88
var tile_size = Vector2(16, 16)
9-
var on_platform = false
9+
var on_platform = null
1010
var previous_position = Vector2.ZERO # Initialize with a default value
1111
signal position_changed
1212
signal on_platform_sig
13+
signal out_platform_sig
1314
signal push_result(result: bool)
1415

1516
func _ready():
@@ -27,27 +28,37 @@ func _process(delta):
2728
previous_position = position
2829

2930
func _on_interact():
30-
var direction = (position - player.position).normalized()
31-
var new_position = position + direction * tile_size
32-
position = new_position
33-
emit_signal("position_changed")
31+
if _on_can_interact():
32+
var direction = (position - player.position).normalized()
33+
direction.x = round(direction.x)
34+
direction.y = round(direction.y)
35+
var new_position = position + direction * tile_size
36+
position = new_position
37+
emit_signal("position_changed")
3438

3539
func _on_can_interact() -> bool:
3640
var direction_to_box = (position - player.position).normalized()
3741
var player_facing_direction = player.facing.normalized()
38-
var is_next_to_box = abs(player.position.x - position.x) <= tile_size.x and abs(player.position.y - position.y) <= tile_size.y
42+
var is_next_to_box = abs(player.position.x - position.x) <= (tile_size.x * 1.5) and abs(player.position.y - position.y) <= (tile_size.y * 1.5)
43+
if !is_next_to_box:
44+
print(abs(player.position.x - position.x))
45+
print(abs(player.position.y - position.y))
46+
3947
var is_facing_box = direction_to_box.dot(player_facing_direction) > 0.9
4048
var can_interact = is_next_to_box and is_facing_box
4149
emit_signal("push_result", can_interact) # Emit result when checking if the box can be pushed
4250
return can_interact
4351

4452
func _on_area_entered(area):
4553
if area.is_in_group("platforms"):
46-
on_platform = true
54+
on_platform = area
4755
print("Box is on the platform!")
4856
emit_signal("on_platform_sig", area)
49-
57+
5058
func _on_area_exited(area):
5159
if area.is_in_group("platforms"):
52-
on_platform = false
53-
print("Box left the platform!")
60+
print("Box has left the platform!")
61+
emit_signal("out_platform_sig", on_platform)
62+
on_platform = null
63+
64+

Code/interaction/InteractionManager.gd

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ func _on_push():
2424
if can_interact:
2525
if active_areas.size() > 0:
2626
can_interact = false
27-
await active_areas[0].interact.call()
27+
for area in active_areas:
28+
await area.interact.call()
2829
can_interact = true
2930

3031
func _on_can_push():

Code/levels/level_0.tscn

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,8 @@ collision_mask = 15
358358

359359
[node name="EndZone" parent="." groups=["platforms"] instance=ExtResource("7_xxre3")]
360360
z_index = 0
361-
position = Vector2(56, 104)
361+
position = Vector2(55.6667, 103.667)
362+
scale = Vector2(0.9, 0.9)
362363

363364
[node name="GameManager" parent="." groups=["game_manager"] instance=ExtResource("8_nfk0q")]
364365
unique_name_in_owner = true

Code/levels/level_1.tscn

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,15 +348,18 @@ layer_2/tile_data = PackedInt32Array(262153, 2, 0, 196617, 2, 0, 131081, 2, 0, 6
348348
script = ExtResource("4_y45qn")
349349

350350
[node name="PlayerRobot" parent="." instance=ExtResource("5_45nlo")]
351+
z_index = 2
351352
position = Vector2(56, 56)
352353

353354
[node name="EndZone" parent="." groups=["platforms"] instance=ExtResource("7_you6s")]
354355
z_index = 1
355-
position = Vector2(104, 72)
356+
position = Vector2(103.667, 71.6667)
357+
scale = Vector2(0.9, 0.9)
356358

357359
[node name="EndZone2" parent="." groups=["platforms"] instance=ExtResource("7_you6s")]
358360
z_index = 1
359-
position = Vector2(72, 88)
361+
position = Vector2(71.3333, 87.6667)
362+
scale = Vector2(0.9, 0.9)
360363

361364
[node name="Box" parent="." instance=ExtResource("6_jjywg")]
362365
position = Vector2(87, 71)

Code/levels/level_3.tscn

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -349,21 +349,24 @@ layer_2/tile_data = PackedInt32Array(262153, 2, 0, 196617, 2, 0, 131081, 2, 0, 6
349349
script = ExtResource("4_cdt2c")
350350

351351
[node name="PlayerRobot" parent="." instance=ExtResource("5_v21du")]
352-
position = Vector2(40.6667, 40)
352+
z_index = 3
353+
position = Vector2(39.6667, 40)
353354

354355
[node name="Box" parent="." instance=ExtResource("6_xq0uy")]
355-
position = Vector2(56, 55.6667)
356+
position = Vector2(55.6667, 56)
356357

357358
[node name="Box2" parent="." instance=ExtResource("6_xq0uy")]
358-
position = Vector2(56, 72)
359+
position = Vector2(55.6667, 72)
359360

360361
[node name="EndZone" parent="." groups=["platforms"] instance=ExtResource("7_p85sb")]
361-
z_index = 1
362-
position = Vector2(72, 55.6667)
362+
z_index = 0
363+
position = Vector2(71.3333, 55.3333)
364+
scale = Vector2(0.9, 0.9)
363365

364366
[node name="EndZone2" parent="." groups=["platforms"] instance=ExtResource("7_p85sb")]
365-
z_index = 1
366-
position = Vector2(40, 55.6667)
367+
z_index = 0
368+
position = Vector2(39, 55.3333)
369+
scale = Vector2(0.9, 0.9)
367370

368371
[node name="InteractionManager" parent="." groups=["interaction_manager"] instance=ExtResource("8_t7y54")]
369372

Code/levels/level_4.tscn

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,7 @@ layer_2/tile_data = PackedInt32Array(262153, 2, 0, 196617, 2, 0, 131081, 2, 0, 6
348348
script = ExtResource("4_frsdp")
349349

350350
[node name="PlayerRobot" parent="." instance=ExtResource("5_pmg6m")]
351+
z_index = 2
351352
position = Vector2(72, 40)
352353

353354
[node name="Box" parent="." instance=ExtResource("6_rfvb2")]
@@ -357,11 +358,11 @@ position = Vector2(71, 55)
357358
position = Vector2(71, 71)
358359

359360
[node name="EndZone" parent="." groups=["platforms"] instance=ExtResource("7_8an80")]
360-
z_index = 1
361+
z_index = 0
361362
position = Vector2(104, 72)
362363

363364
[node name="EndZone2" parent="." groups=["platforms"] instance=ExtResource("7_8an80")]
364-
z_index = 1
365+
z_index = 0
365366
position = Vector2(104, 88)
366367

367368
[node name="InteractionManager" parent="." groups=["interaction_manager"] instance=ExtResource("8_riyqa")]

Code/levels/level_5.tscn

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,20 +348,22 @@ layer_2/tile_data = PackedInt32Array(262153, 2, 0, 196617, 2, 0, 131081, 2, 0, 6
348348
script = ExtResource("4_f85qq")
349349

350350
[node name="PlayerRobot" parent="." instance=ExtResource("5_n3kaq")]
351+
z_index = 2
351352
position = Vector2(40, 40)
352353

353354
[node name="Box" parent="." instance=ExtResource("6_q1up7")]
355+
z_index = 2
354356
position = Vector2(55, 55)
355357

356358
[node name="Box2" parent="." instance=ExtResource("6_q1up7")]
357359
position = Vector2(72, 55)
358360

359361
[node name="EndZone" parent="." groups=["platforms"] instance=ExtResource("7_g4owx")]
360-
z_index = 1
362+
z_index = 0
361363
position = Vector2(104, 71.6667)
362364

363365
[node name="EndZone2" parent="." groups=["platforms"] instance=ExtResource("7_g4owx")]
364-
z_index = 1
366+
z_index = 0
365367
position = Vector2(72, 72)
366368

367369
[node name="InteractionManager" parent="." groups=["interaction_manager"] instance=ExtResource("8_rcjvk")]

0 commit comments

Comments
 (0)