人物排队bug修复(潜在的排队后不走)
This commit is contained in:
parent
af7c44305b
commit
11c78bc818
@ -65,3 +65,15 @@ func _on_area_3d_area_exited(area: Area3D) -> void:
|
|||||||
AreaExit.emit(area)
|
AreaExit.emit(area)
|
||||||
if currentExerciseType == Exercise_type.navigation and area.is_in_group('needStopWalk') :
|
if currentExerciseType == Exercise_type.navigation and area.is_in_group('needStopWalk') :
|
||||||
goToTarget()
|
goToTarget()
|
||||||
|
|
||||||
|
var frontPeople = 0
|
||||||
|
func _on_people_front_area_3d_area_entered(area: Area3D) -> void:
|
||||||
|
var peopleWalkFollow = area.get_parent().get_parent()
|
||||||
|
if ( area.is_in_group('player') and peopleWalkFollow.id != self.get_parent().id ) or area.is_in_group('needStopWalk') :
|
||||||
|
frontPeople += 1
|
||||||
|
|
||||||
|
|
||||||
|
func _on_people_front_area_3d_area_exited(area: Area3D) -> void:
|
||||||
|
var peopleWalkFollow = area.get_parent().get_parent()
|
||||||
|
if ( area.is_in_group('player') and peopleWalkFollow.id != self.get_parent().id ) or area.is_in_group('needStopWalk') :
|
||||||
|
frontPeople -= 1
|
||||||
|
@ -16,7 +16,7 @@ var generateArea = 'A'
|
|||||||
var speed:float = 1
|
var speed:float = 1
|
||||||
|
|
||||||
#生成时候的id
|
#生成时候的id
|
||||||
var id = 0
|
var id = '0A'
|
||||||
|
|
||||||
##设置路线点坐标
|
##设置路线点坐标
|
||||||
func setPathPoints(points : Array,angle :Vector3 = Vector3()) -> void:
|
func setPathPoints(points : Array,angle :Vector3 = Vector3()) -> void:
|
||||||
@ -52,7 +52,7 @@ func _on_path_follow_timer_timeout() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _on_player_area_enter(area: Area3D) -> void:
|
func _on_player_area_enter(area: Area3D) -> void:
|
||||||
if player.currentExerciseType == player.Exercise_type.pathFollow and (area.is_in_group('needStopWalk') or area.is_in_group('player')):
|
if player.currentExerciseType == player.Exercise_type.pathFollow and (area.is_in_group('needStopWalk') or area.is_in_group('player') ) and player.frontPeople == 1 :
|
||||||
peopleStopWalk()
|
peopleStopWalk()
|
||||||
|
|
||||||
var waitTimeWalkAgain = 0.2
|
var waitTimeWalkAgain = 0.2
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=7 format=3 uid="uid://c6noskjp3ks4p"]
|
[gd_scene load_steps=8 format=3 uid="uid://c6noskjp3ks4p"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://sceen/people/Player.gd" id="1_pursd"]
|
[ext_resource type="Script" path="res://sceen/people/Player.gd" id="1_pursd"]
|
||||||
[ext_resource type="PackedScene" uid="uid://ql5aokids4f6" path="res://sceen/people/people.tscn" id="2_ggqm4"]
|
[ext_resource type="PackedScene" uid="uid://ql5aokids4f6" path="res://sceen/people/people.tscn" id="2_ggqm4"]
|
||||||
@ -9,6 +9,9 @@
|
|||||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_n25t3"]
|
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_n25t3"]
|
||||||
radius = 0.4
|
radius = 0.4
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_ywkfy"]
|
||||||
|
size = Vector3(0.113147, 0.145019, 0.102899)
|
||||||
|
|
||||||
[node name="Player" type="CharacterBody3D"]
|
[node name="Player" type="CharacterBody3D"]
|
||||||
script = ExtResource("1_pursd")
|
script = ExtResource("1_pursd")
|
||||||
|
|
||||||
@ -45,6 +48,15 @@ height = 2.0
|
|||||||
[node name="NavigationTimer" type="Timer" parent="."]
|
[node name="NavigationTimer" type="Timer" parent="."]
|
||||||
wait_time = 0.05
|
wait_time = 0.05
|
||||||
|
|
||||||
|
[node name="PeopleFrontArea3D" type="Area3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.00255, -0.378363)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="PeopleFrontArea3D"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00299683, -0.0159907, 0.00346985)
|
||||||
|
shape = SubResource("BoxShape3D_ywkfy")
|
||||||
|
|
||||||
[connection signal="area_entered" from="Area3D" to="." method="_on_area_3d_area_entered"]
|
[connection signal="area_entered" from="Area3D" to="." method="_on_area_3d_area_entered"]
|
||||||
[connection signal="area_exited" from="Area3D" to="." method="_on_area_3d_area_exited"]
|
[connection signal="area_exited" from="Area3D" to="." method="_on_area_3d_area_exited"]
|
||||||
[connection signal="timeout" from="NavigationTimer" to="." method="_on_navigation_timer_timeout"]
|
[connection signal="timeout" from="NavigationTimer" to="." method="_on_navigation_timer_timeout"]
|
||||||
|
[connection signal="area_entered" from="PeopleFrontArea3D" to="." method="_on_people_front_area_3d_area_entered"]
|
||||||
|
[connection signal="area_exited" from="PeopleFrontArea3D" to="." method="_on_people_front_area_3d_area_exited"]
|
||||||
|
File diff suppressed because one or more lines are too long
@ -1,12 +1,12 @@
|
|||||||
extends Node3D
|
extends Node3D
|
||||||
|
|
||||||
##车门
|
##闸机门
|
||||||
class_name GateDoor
|
class_name GateDoor
|
||||||
@onready var left_animation_player: AnimationPlayer = $LeftAnimationPlayer
|
@onready var left_animation_player: AnimationPlayer = $LeftAnimationPlayer
|
||||||
@onready var right_animation_player: AnimationPlayer = $RightAnimationPlayer
|
@onready var right_animation_player: AnimationPlayer = $RightAnimationPlayer
|
||||||
|
|
||||||
|
|
||||||
## 车门的状态枚举
|
## 闸机门的状态枚举
|
||||||
enum Gate_Door_STATE{
|
enum Gate_Door_STATE{
|
||||||
opening,# 正在开门
|
opening,# 正在开门
|
||||||
open,#开到位
|
open,#开到位
|
||||||
@ -14,7 +14,7 @@ enum Gate_Door_STATE{
|
|||||||
close,# 关到位
|
close,# 关到位
|
||||||
}
|
}
|
||||||
|
|
||||||
##车门的状态
|
##闸机门的状态
|
||||||
@onready var gateDoorState : Gate_Door_STATE = Gate_Door_STATE.close :
|
@onready var gateDoorState : Gate_Door_STATE = Gate_Door_STATE.close :
|
||||||
set(value):
|
set(value):
|
||||||
if gateDoorState != value:
|
if gateDoorState != value:
|
||||||
@ -27,13 +27,28 @@ enum Gate_Door_STATE{
|
|||||||
right_animation_player.play("rightClose")
|
right_animation_player.play("rightClose")
|
||||||
|
|
||||||
|
|
||||||
##打开车门
|
##打开闸机门
|
||||||
func openGateDoor ()-> void:
|
func openGateDoor ()-> void:
|
||||||
if gateDoorState == Gate_Door_STATE.close :
|
if gateDoorState == Gate_Door_STATE.close :
|
||||||
gateDoorState = Gate_Door_STATE.open
|
gateDoorState = Gate_Door_STATE.open
|
||||||
|
|
||||||
|
|
||||||
##关闭车门
|
##关闭闸机门
|
||||||
func closeGateDoor ()-> void:
|
func closeGateDoor ()-> void:
|
||||||
if gateDoorState == Gate_Door_STATE.open :
|
if gateDoorState == Gate_Door_STATE.open :
|
||||||
gateDoorState=Gate_Door_STATE.close
|
gateDoorState=Gate_Door_STATE.close
|
||||||
|
|
||||||
|
var waitPeopleCount = 0
|
||||||
|
func _on_area_3d_area_entered(area: Area3D) -> void:
|
||||||
|
var peopleWalkFollow = area.get_parent().get_parent()
|
||||||
|
if peopleWalkFollow is PlayerPathFollow :
|
||||||
|
waitPeopleCount += 1
|
||||||
|
openGateDoor()
|
||||||
|
|
||||||
|
|
||||||
|
func _on_area_3d_area_exited(area: Area3D) -> void:
|
||||||
|
var peopleWalkFollow = area.get_parent().get_parent()
|
||||||
|
if peopleWalkFollow is PlayerPathFollow :
|
||||||
|
waitPeopleCount -= 1
|
||||||
|
if waitPeopleCount==0 :
|
||||||
|
closeGateDoor()
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=16 format=3 uid="uid://c0368j6203bj8"]
|
[gd_scene load_steps=17 format=3 uid="uid://c0368j6203bj8"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://sceen/platform/gate/gateDoor.gd" id="1_b8ekv"]
|
[ext_resource type="Script" path="res://sceen/platform/gate/gateDoor.gd" id="1_b8ekv"]
|
||||||
[ext_resource type="Texture2D" uid="uid://dwjh85d7n6c6d" path="res://Model/trainingLargePassengerFlow/textures/DKL_zhaji.jpg" id="1_uqk0r"]
|
[ext_resource type="Texture2D" uid="uid://dwjh85d7n6c6d" path="res://Model/trainingLargePassengerFlow/textures/DKL_zhaji.jpg" id="1_uqk0r"]
|
||||||
@ -90,12 +90,12 @@ tracks/0/keys = {
|
|||||||
"times": PackedFloat32Array(0),
|
"times": PackedFloat32Array(0),
|
||||||
"transitions": PackedFloat32Array(1),
|
"transitions": PackedFloat32Array(1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [Vector3(0, 0, 0)]
|
"values": [Vector3(0, 0, -0.0872665)]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_hyiee"]
|
[sub_resource type="Animation" id="Animation_hyiee"]
|
||||||
resource_name = "leftClose"
|
resource_name = "leftClose"
|
||||||
length = 0.8
|
length = 0.5
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
@ -103,7 +103,7 @@ tracks/0/path = NodePath("left:rotation")
|
|||||||
tracks/0/interp = 1
|
tracks/0/interp = 1
|
||||||
tracks/0/loop_wrap = true
|
tracks/0/loop_wrap = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
"times": PackedFloat32Array(0, 0.8),
|
"times": PackedFloat32Array(0, 0.5),
|
||||||
"transitions": PackedFloat32Array(1, 1),
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [Vector3(0, 0, 0.506145), Vector3(0, 0, -0.0872665)]
|
"values": [Vector3(0, 0, 0.506145), Vector3(0, 0, -0.0872665)]
|
||||||
@ -111,7 +111,7 @@ tracks/0/keys = {
|
|||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_0sy4u"]
|
[sub_resource type="Animation" id="Animation_0sy4u"]
|
||||||
resource_name = "leftOpen"
|
resource_name = "leftOpen"
|
||||||
length = 0.8
|
length = 0.5
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
@ -119,7 +119,7 @@ tracks/0/path = NodePath("left:rotation")
|
|||||||
tracks/0/interp = 1
|
tracks/0/interp = 1
|
||||||
tracks/0/loop_wrap = true
|
tracks/0/loop_wrap = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
"times": PackedFloat32Array(0, 0.8),
|
"times": PackedFloat32Array(0, 0.5),
|
||||||
"transitions": PackedFloat32Array(1, 1),
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [Vector3(0, 0, -0.0872665), Vector3(0, 0, 0.506145)]
|
"values": [Vector3(0, 0, -0.0872665), Vector3(0, 0, 0.506145)]
|
||||||
@ -144,12 +144,12 @@ tracks/0/keys = {
|
|||||||
"times": PackedFloat32Array(0),
|
"times": PackedFloat32Array(0),
|
||||||
"transitions": PackedFloat32Array(1),
|
"transitions": PackedFloat32Array(1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [Vector3(0, 0, 0)]
|
"values": [Vector3(0, 0, 0.0872665)]
|
||||||
}
|
}
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_60d8m"]
|
[sub_resource type="Animation" id="Animation_60d8m"]
|
||||||
resource_name = "rightClose"
|
resource_name = "rightClose"
|
||||||
length = 0.8
|
length = 0.5
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
@ -157,7 +157,7 @@ tracks/0/path = NodePath("right:rotation")
|
|||||||
tracks/0/interp = 1
|
tracks/0/interp = 1
|
||||||
tracks/0/loop_wrap = true
|
tracks/0/loop_wrap = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
"times": PackedFloat32Array(0, 0.8),
|
"times": PackedFloat32Array(0, 0.5),
|
||||||
"transitions": PackedFloat32Array(1, 1),
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [Vector3(0, 0, -0.506145), Vector3(0, 0, 0.0872665)]
|
"values": [Vector3(0, 0, -0.506145), Vector3(0, 0, 0.0872665)]
|
||||||
@ -165,7 +165,7 @@ tracks/0/keys = {
|
|||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_oxrhd"]
|
[sub_resource type="Animation" id="Animation_oxrhd"]
|
||||||
resource_name = "rightOpen"
|
resource_name = "rightOpen"
|
||||||
length = 0.8
|
length = 0.5
|
||||||
tracks/0/type = "value"
|
tracks/0/type = "value"
|
||||||
tracks/0/imported = false
|
tracks/0/imported = false
|
||||||
tracks/0/enabled = true
|
tracks/0/enabled = true
|
||||||
@ -173,7 +173,7 @@ tracks/0/path = NodePath("right:rotation")
|
|||||||
tracks/0/interp = 1
|
tracks/0/interp = 1
|
||||||
tracks/0/loop_wrap = true
|
tracks/0/loop_wrap = true
|
||||||
tracks/0/keys = {
|
tracks/0/keys = {
|
||||||
"times": PackedFloat32Array(0, 0.8),
|
"times": PackedFloat32Array(0, 0.5),
|
||||||
"transitions": PackedFloat32Array(1, 1),
|
"transitions": PackedFloat32Array(1, 1),
|
||||||
"update": 0,
|
"update": 0,
|
||||||
"values": [Vector3(0, 0, 0.0872665), Vector3(0, 0, -0.506145)]
|
"values": [Vector3(0, 0, 0.0872665), Vector3(0, 0, -0.506145)]
|
||||||
@ -186,17 +186,20 @@ _data = {
|
|||||||
"rightOpen": SubResource("Animation_oxrhd")
|
"rightOpen": SubResource("Animation_oxrhd")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_qkt18"]
|
||||||
|
size = Vector3(0.754211, 0.91748, 0.72006)
|
||||||
|
|
||||||
[node name="GateDoor" type="Node3D"]
|
[node name="GateDoor" type="Node3D"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.4, 0)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.4, 0)
|
||||||
script = ExtResource("1_b8ekv")
|
script = ExtResource("1_b8ekv")
|
||||||
|
|
||||||
[node name="left" type="MeshInstance3D" parent="."]
|
[node name="left" type="MeshInstance3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.3, 0, 0)
|
transform = Transform3D(0.996195, 0.0871557, 0, -0.0871557, 0.996195, 0, 0, 0, 1, -0.3, 0, 0)
|
||||||
mesh = SubResource("ArrayMesh_rgh8h")
|
mesh = SubResource("ArrayMesh_rgh8h")
|
||||||
skeleton = NodePath("")
|
skeleton = NodePath("")
|
||||||
|
|
||||||
[node name="right" type="MeshInstance3D" parent="."]
|
[node name="right" type="MeshInstance3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.3, 0, 0)
|
transform = Transform3D(0.996195, -0.0871557, 0, 0.0871557, 0.996195, 0, 0, 0, 1, 0.3, 0, 0)
|
||||||
mesh = SubResource("ArrayMesh_eyu4m")
|
mesh = SubResource("ArrayMesh_eyu4m")
|
||||||
skeleton = NodePath("")
|
skeleton = NodePath("")
|
||||||
|
|
||||||
@ -209,3 +212,12 @@ libraries = {
|
|||||||
libraries = {
|
libraries = {
|
||||||
"": SubResource("AnimationLibrary_ppdod")
|
"": SubResource("AnimationLibrary_ppdod")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[node name="Area3D" type="Area3D" parent="."]
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.000457764, 0.0412598, 0.376033)
|
||||||
|
shape = SubResource("BoxShape3D_qkt18")
|
||||||
|
|
||||||
|
[connection signal="area_entered" from="Area3D" to="." method="_on_area_3d_area_entered"]
|
||||||
|
[connection signal="area_exited" from="Area3D" to="." method="_on_area_3d_area_exited"]
|
||||||
|
@ -71,9 +71,9 @@ const areaInfo = {
|
|||||||
'passage':Vector3(3,5.22,41),
|
'passage':Vector3(3,5.22,41),
|
||||||
'stationHallExit':Vector3(3,5.22,18.74),
|
'stationHallExit':Vector3(3,5.22,18.74),
|
||||||
'ticketingArea':[Vector3(-11.27,5.22,18.74)],
|
'ticketingArea':[Vector3(-11.27,5.22,18.74)],
|
||||||
'entranceGateArea':[Vector3(-11.27,5.22,17.25),Vector3(36,5.22,17.25),Vector3(36,5.22,14)],
|
'entranceGateArea':[Vector3(-11.27,5.22,17.25),Vector3(36,5.22,17.25),Vector3(36,5.22,14.48)],
|
||||||
'gangwayUpArea':[Vector3(36,5.22,7.45),Vector3(31,5.22,7.45)],
|
'gangwayUpArea':[Vector3(36,5.22,7.45),Vector3(31,5.22,7.45)],
|
||||||
'gangwayDownArea': [Vector3(14.12,0.85,7.45)]
|
'gangwayDownArea': [Vector3(14.12,0.85,7.45),Vector3(11.6,0.85,7.45)]
|
||||||
},
|
},
|
||||||
'B':{
|
'B':{
|
||||||
'entrance':[ Vector3(-54.8,9.8,-67.3),Vector3(-50,9.8,-64),Vector3(-30.1,9.8,-62.3)],
|
'entrance':[ Vector3(-54.8,9.8,-67.3),Vector3(-50,9.8,-64),Vector3(-30.1,9.8,-62.3)],
|
||||||
@ -88,9 +88,9 @@ const areaInfo = {
|
|||||||
'passage':Vector3(93.38,5.22,39.55),
|
'passage':Vector3(93.38,5.22,39.55),
|
||||||
'stationHallExit':Vector3(93.38,5.22,21.04),
|
'stationHallExit':Vector3(93.38,5.22,21.04),
|
||||||
'ticketingArea':[Vector3(99,5.22,14.25),Vector3(99,5.22,7.86),Vector3(109.26,5.22,7.86)],
|
'ticketingArea':[Vector3(99,5.22,14.25),Vector3(99,5.22,7.86),Vector3(109.26,5.22,7.86)],
|
||||||
'entranceGateArea':[Vector3(109.26,5.22,6.86),Vector3(92,5.22,6.86),Vector3(92,5.22,12.98),Vector3(78.33,5.22,17.29),Vector3(56,5.22,17.29),Vector3(56,5.22,14)],
|
'entranceGateArea':[Vector3(109.26,5.22,6.86),Vector3(92,5.22,6.86),Vector3(92,5.22,12.98),Vector3(78.33,5.22,17.29),Vector3(56.29,5.22,17.29),Vector3(56.29,5.22,14.48)],
|
||||||
'gangwayUpArea':[Vector3(56,5.22,7.45),Vector3(61.46,5.22,7.45)],
|
'gangwayUpArea':[Vector3(56,5.22,7.45),Vector3(61.46,5.22,7.45)],
|
||||||
'gangwayDownArea': [Vector3(77,0.85,7.45)]
|
'gangwayDownArea': [Vector3(77,0.85,7.45),Vector3(81.2,0.85,7.45)]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,7 +125,7 @@ func playerGoToNextArea(peopleWalkFollow:PlayerPathFollow,nextArea: PlayerWalkAr
|
|||||||
peopleWalkFollow.waitTimeWalkAgain = 0.5
|
peopleWalkFollow.waitTimeWalkAgain = 0.5
|
||||||
walkByPathFollow(targetAreaInfo.entranceGateArea,peopleWalkFollow)
|
walkByPathFollow(targetAreaInfo.entranceGateArea,peopleWalkFollow)
|
||||||
await peopleWalkFollow.player.ArriveTargetPos
|
await peopleWalkFollow.player.ArriveTargetPos
|
||||||
await get_tree().create_timer(0.2).timeout
|
await get_tree().create_timer(0.5).timeout
|
||||||
playerGoToNextArea(peopleWalkFollow,PlayerWalkArea3D.gangwayUpArea)
|
playerGoToNextArea(peopleWalkFollow,PlayerWalkArea3D.gangwayUpArea)
|
||||||
PlayerWalkArea3D.gangwayUpArea:
|
PlayerWalkArea3D.gangwayUpArea:
|
||||||
walkByPathFollow(targetAreaInfo.gangwayUpArea,peopleWalkFollow)
|
walkByPathFollow(targetAreaInfo.gangwayUpArea,peopleWalkFollow)
|
||||||
@ -134,6 +134,7 @@ func playerGoToNextArea(peopleWalkFollow:PlayerPathFollow,nextArea: PlayerWalkAr
|
|||||||
PlayerWalkArea3D.gangwayDownArea:
|
PlayerWalkArea3D.gangwayDownArea:
|
||||||
walkByPathFollow(targetAreaInfo.gangwayDownArea,peopleWalkFollow)
|
walkByPathFollow(targetAreaInfo.gangwayDownArea,peopleWalkFollow)
|
||||||
await peopleWalkFollow.player.ArriveTargetPos
|
await peopleWalkFollow.player.ArriveTargetPos
|
||||||
|
peopleWalkFollow.queue_free()
|
||||||
#playerGoToNextArea(peopleWalkFollow,PlayerWalkArea3D.screenDoorWaitArea)
|
#playerGoToNextArea(peopleWalkFollow,PlayerWalkArea3D.screenDoorWaitArea)
|
||||||
PlayerWalkArea3D.screenDoorWaitArea:
|
PlayerWalkArea3D.screenDoorWaitArea:
|
||||||
goToScreenDoorAreaAndWaitTrain(peopleWalkFollow,0)
|
goToScreenDoorAreaAndWaitTrain(peopleWalkFollow,0)
|
||||||
@ -234,20 +235,24 @@ func walkByPathFollow(allTargetPos:Array,peopleWalkFollow:PlayerPathFollow,curve
|
|||||||
var people_scene = preload("res://sceen/people/peopleWalkFollow.tscn")
|
var people_scene = preload("res://sceen/people/peopleWalkFollow.tscn")
|
||||||
func startGeneratePeople() -> void:
|
func startGeneratePeople() -> void:
|
||||||
$AllTimer/generatePeopleAEntranceTimer.start()
|
$AllTimer/generatePeopleAEntranceTimer.start()
|
||||||
|
$AllTimer/generatePeopleBEntranceTimer.start()
|
||||||
|
$AllTimer/generatePeopleCEntranceTimer.start()
|
||||||
|
$AllTimer/generatePeopleDEntranceTimer.start()
|
||||||
|
$AllTimer/generatePeopleAtBTicketingArea.start()
|
||||||
|
|
||||||
|
|
||||||
##A入口生成
|
##A入口生成
|
||||||
var totalOfAEntrance=0
|
var totalOfAEntrance=0
|
||||||
func generatePeopleAtAEntrance() -> void:
|
func generatePeopleAtAEntrance() -> void:
|
||||||
if $AllAreaDetection/APassageAreaDetection.passPeopleCount< 0 and currentActiveCameraOfLarge != Camera_name.APassage:
|
if $AllAreaDetection/APassageAreaDetection.passPeopleCount< 1 and currentActiveCameraOfLarge != Camera_name.APassage:
|
||||||
generatePeopleAPassage()
|
generatePeopleAPassage()
|
||||||
if $AllAreaDetection/TicketingLfetAreaDetection.passPeopleCount< 0 and currentActiveCameraOfLarge != Camera_name.BTVM:
|
if $AllAreaDetection/TicketingLfetAreaDetection.passPeopleCount< 1 and currentActiveCameraOfLarge != Camera_name.BTVM:
|
||||||
generatePeopleAtBTVM()
|
generatePeopleAtBTVM()
|
||||||
totalOfAEntrance += 1
|
totalOfAEntrance += 1
|
||||||
if totalOfAEntrance > 15:
|
if totalOfAEntrance > 10:
|
||||||
$AllTimer/generatePeopleAEntranceTimer.wait_time = 10
|
$AllTimer/generatePeopleAEntranceTimer.wait_time = 10
|
||||||
var peoplePosition = Vector3(-80,9.8,40.5)
|
var peoplePosition = Vector3(-80,9.8,40.5)
|
||||||
generatePeopleAtDesignatedArea(peoplePosition,PlayerWalkArea3D.entrance,'A',totalOfAEntrance)
|
generatePeopleAtDesignatedArea(peoplePosition,PlayerWalkArea3D.entrance,'A','A{0}'.format([totalOfAEntrance]))
|
||||||
|
|
||||||
|
|
||||||
##A通道生成
|
##A通道生成
|
||||||
@ -255,23 +260,25 @@ var totalOfAPassage=0
|
|||||||
func generatePeopleAPassage() -> void:
|
func generatePeopleAPassage() -> void:
|
||||||
totalOfAPassage += 1
|
totalOfAPassage += 1
|
||||||
var peoplePosition = Vector3(3,5.22,41)
|
var peoplePosition = Vector3(3,5.22,41)
|
||||||
generatePeopleAtDesignatedArea(peoplePosition,PlayerWalkArea3D.stationHallExit,'A')
|
generatePeopleAtDesignatedArea(peoplePosition,PlayerWalkArea3D.stationHallExit,'A','A{0}'.format([totalOfAPassage]))
|
||||||
|
|
||||||
##A闸机生成
|
##A闸机生成
|
||||||
var totalOfBTVM=0
|
var totalOfBTVM=0
|
||||||
func generatePeopleAtBTVM() -> void:
|
func generatePeopleAtBTVM() -> void:
|
||||||
totalOfBTVM += 1
|
totalOfBTVM += 1
|
||||||
var peoplePosition = Vector3(-11.27,5.22,18.74)
|
var peoplePosition = Vector3(-11.27,5.22,18.74)
|
||||||
generatePeopleAtDesignatedArea(peoplePosition,PlayerWalkArea3D.entranceGateArea,'A')
|
generatePeopleAtDesignatedArea(peoplePosition,PlayerWalkArea3D.entranceGateArea,'A','A{0}'.format([totalOfBTVM]))
|
||||||
|
|
||||||
##售票厅循环排队
|
##售票厅循环排队
|
||||||
var totalOfBTicketingArea = 8
|
var totalOfBTicketingArea = 0
|
||||||
func generatePeopleAtBTicketingArea() -> void:
|
func generatePeopleAtBTicketingArea() -> void:
|
||||||
if $AllAreaDetection/TicketingAreaDetection.waitPeopleCount < totalOfBTicketingArea:
|
if $AllAreaDetection/TicketingAreaDetection.waitPeopleCount < 8:
|
||||||
var peoplrInstance = people_scene.instantiate()
|
var peoplrInstance = people_scene.instantiate()
|
||||||
add_child(peoplrInstance)
|
add_child(peoplrInstance)
|
||||||
peoplrInstance.global_position = Vector3(1,5.22,15.84)
|
peoplrInstance.global_position = Vector3(1,5.22,15.84)
|
||||||
peoplrInstance.buildPos = Vector3(1,5.22,15.84)
|
peoplrInstance.buildPos = Vector3(1,5.22,15.84)
|
||||||
|
totalOfBTicketingArea += 1
|
||||||
|
peoplrInstance.id = 'A{0}'.format([totalOfBTicketingArea])
|
||||||
walkByPathFollow([Vector3(-11.27,5.22,15.84)],peoplrInstance)
|
walkByPathFollow([Vector3(-11.27,5.22,15.84)],peoplrInstance)
|
||||||
await peoplrInstance.player.ArriveTargetPos
|
await peoplrInstance.player.ArriveTargetPos
|
||||||
await get_tree().create_timer(5).timeout
|
await get_tree().create_timer(5).timeout
|
||||||
@ -288,7 +295,7 @@ func generatePeopleAtDownPlatform() -> void:
|
|||||||
if totalOfDownPlatform > 0:
|
if totalOfDownPlatform > 0:
|
||||||
totalOfDownPlatform -= 1
|
totalOfDownPlatform -= 1
|
||||||
var peoplePosition = Vector3(13.54,0.85,11.2)
|
var peoplePosition = Vector3(13.54,0.85,11.2)
|
||||||
generatePeopleAtDesignatedArea(peoplePosition,PlayerWalkArea3D.screenDoorWaitArea,'A')
|
generatePeopleAtDesignatedArea(peoplePosition,PlayerWalkArea3D.screenDoorWaitArea,'A','A{0}'.format([totalOfDownPlatform]))
|
||||||
else :
|
else :
|
||||||
$AllTimer/generatePeopleDownPlatformTimer.stop()
|
$AllTimer/generatePeopleDownPlatformTimer.stop()
|
||||||
|
|
||||||
@ -298,7 +305,7 @@ func generatePeopleAtBEntrance() -> void:
|
|||||||
if totalOfBEntrance> 0:
|
if totalOfBEntrance> 0:
|
||||||
totalOfBEntrance -= 1
|
totalOfBEntrance -= 1
|
||||||
var peoplePosition = Vector3(-54.8,9.8,-61)
|
var peoplePosition = Vector3(-54.8,9.8,-61)
|
||||||
generatePeopleAtDesignatedArea(peoplePosition,PlayerWalkArea3D.entrance,'B',totalOfAEntrance)
|
generatePeopleAtDesignatedArea(peoplePosition,PlayerWalkArea3D.entrance,'B','B{0}'.format([totalOfDownPlatform]))
|
||||||
else :
|
else :
|
||||||
$AllTimer/generatePeopleBEntranceTimer.stop()
|
$AllTimer/generatePeopleBEntranceTimer.stop()
|
||||||
|
|
||||||
@ -308,22 +315,21 @@ func generatePeopleAtCEntrance() -> void:
|
|||||||
if totalOfCEntrance> 0:
|
if totalOfCEntrance> 0:
|
||||||
totalOfCEntrance -= 1
|
totalOfCEntrance -= 1
|
||||||
var peoplePosition = Vector3(146.12,9.8,-60)
|
var peoplePosition = Vector3(146.12,9.8,-60)
|
||||||
generatePeopleAtDesignatedArea(peoplePosition,PlayerWalkArea3D.entrance,'C',totalOfAEntrance)
|
generatePeopleAtDesignatedArea(peoplePosition,PlayerWalkArea3D.entrance,'C','C{0}'.format([totalOfDownPlatform]))
|
||||||
else :
|
else :
|
||||||
$AllTimer/generatePeopleCEntranceTimer.stop()
|
$AllTimer/generatePeopleCEntranceTimer.stop()
|
||||||
|
|
||||||
##D入口生成
|
##D入口生成
|
||||||
var totalOfDEntrance=15
|
var totalOfDEntrance = 0
|
||||||
func generatePeopleAtDEntrance() -> void:
|
func generatePeopleAtDEntrance() -> void:
|
||||||
if totalOfDEntrance > 0:
|
totalOfDEntrance += 1
|
||||||
totalOfDEntrance -= 1
|
if totalOfDEntrance > 10:
|
||||||
|
$AllTimer/generatePeopleDEntranceTimer.wait_time = 10
|
||||||
var peoplePosition = Vector3(146.12,9.8,46)
|
var peoplePosition = Vector3(146.12,9.8,46)
|
||||||
generatePeopleAtDesignatedArea(peoplePosition,PlayerWalkArea3D.entrance,'D',totalOfAEntrance)
|
generatePeopleAtDesignatedArea(peoplePosition,PlayerWalkArea3D.entrance,'D','D{0}'.format([totalOfDownPlatform]))
|
||||||
else :
|
|
||||||
$AllTimer/generatePeopleDEntranceTimer.stop()
|
|
||||||
|
|
||||||
##在指定区域增加人
|
##在指定区域增加人
|
||||||
func generatePeopleAtDesignatedArea(peoplePosition:Vector3, goToNextArea: PlayerWalkArea3D,generateArea:String, peopleId:int=0) -> void:
|
func generatePeopleAtDesignatedArea(peoplePosition:Vector3, goToNextArea: PlayerWalkArea3D,generateArea:String, peopleId:String='0A') -> void:
|
||||||
var peoplrInstance = people_scene.instantiate()
|
var peoplrInstance = people_scene.instantiate()
|
||||||
add_child(peoplrInstance)
|
add_child(peoplrInstance)
|
||||||
peoplrInstance.global_position = peoplePosition
|
peoplrInstance.global_position = peoplePosition
|
||||||
|
@ -144,19 +144,15 @@ wait_time = 2.0
|
|||||||
|
|
||||||
[node name="generatePeopleBEntranceTimer" type="Timer" parent="AllTimer"]
|
[node name="generatePeopleBEntranceTimer" type="Timer" parent="AllTimer"]
|
||||||
wait_time = 10.0
|
wait_time = 10.0
|
||||||
autostart = true
|
|
||||||
|
|
||||||
[node name="generatePeopleCEntranceTimer" type="Timer" parent="AllTimer"]
|
[node name="generatePeopleCEntranceTimer" type="Timer" parent="AllTimer"]
|
||||||
wait_time = 10.0
|
wait_time = 10.0
|
||||||
autostart = true
|
|
||||||
|
|
||||||
[node name="generatePeopleDEntranceTimer" type="Timer" parent="AllTimer"]
|
[node name="generatePeopleDEntranceTimer" type="Timer" parent="AllTimer"]
|
||||||
wait_time = 2.0
|
wait_time = 2.0
|
||||||
autostart = true
|
|
||||||
|
|
||||||
[node name="generatePeopleAtBTicketingArea" type="Timer" parent="AllTimer"]
|
[node name="generatePeopleAtBTicketingArea" type="Timer" parent="AllTimer"]
|
||||||
wait_time = 2.0
|
wait_time = 2.0
|
||||||
autostart = true
|
|
||||||
|
|
||||||
[node name="generatePeopleDownPlatformTimer" type="Timer" parent="AllTimer"]
|
[node name="generatePeopleDownPlatformTimer" type="Timer" parent="AllTimer"]
|
||||||
wait_time = 2.0
|
wait_time = 2.0
|
||||||
|
Loading…
Reference in New Issue
Block a user