godot-psd-training/sceen/platform/platform.gd

53 lines
1.5 KiB
GDScript3
Raw Normal View History

2024-04-25 17:00:46 +08:00
extends Node3D
var screenDoorALL = []
##开整体屏蔽门
func openScreenDoorALL ()-> void:
for child in screenDoorALL:
child.openScreenDoor()
##关整体屏蔽门
func closeScreenDoorALL ()-> void:
for child in screenDoorALL:
child.closeScreenDoor()
2024-04-25 17:00:46 +08:00
##所有屏蔽门开门到位
func allScreenDoorOpen ()-> bool:
for child in screenDoorALL:
if child.screenDoorState != ScreenDoor.ScreenDoor_State.open :
return false
return true
##所有屏蔽门关门到位
func allScreenDoorClose ()-> bool:
for child in screenDoorALL:
if child.screenDoorState != ScreenDoor.ScreenDoor_State.close :
return false
return true
2024-04-25 17:00:46 +08:00
func _ready() -> void:
var screenDoor_scene = preload("res://sceen/platform/screenDoor.tscn")
for i in range(1, 5):
var screenDoorInstance = screenDoor_scene.instantiate()
add_child(screenDoorInstance)
screenDoorALL.append(screenDoorInstance)
screenDoorInstance.position.x=(i-1)*4.385
2024-04-25 17:00:46 +08:00
screenDoorInstance.name = 'screenDoor{0}'.format([i])
screenDoorInstance.connect("clickLcbSignalAndSent",Callable($LCB,"_on_screen_door_click_lcb_signal"))
2024-04-30 16:02:08 +08:00
screenDoorInstance.connect("clicksScreenDoorSignal",Callable($ScreenDoorOperate,"_on_screen_door_click_signal"))
var count=0
func _process(delta: float) -> void:
count+=1
if count>150 and count<360:
if screenDoorALL[0].screenDoorState == ScreenDoor.ScreenDoor_State.close:
openScreenDoorALL()
elif count>540 and count<720 :
if screenDoorALL[0].screenDoorState == ScreenDoor.ScreenDoor_State.open:
closeScreenDoorALL()
elif count>2000 :
count=0