키 하나를 꾹누르고 3초지나면 어떤 동작을 하게 하려고 하는데
bool 변수 pressed라는걸 둬서 그걸 트루했다 펄스했다 해서 하려고 했음
그런데 emit()되고 동작이 되는거보니까
저 시그널과 연결된 함수 안에 있는 모든 코드가 실행되는게 아니라
어떤건 실행되고 어떤건 실행안됨. 안되는것도 어쩔땐되고 또 어쩔된 안됨
야매로 저래놔서 그런거같은데 타이머로 깔쌈하게 해야할거같음
저런식으로말고 키를 꾹 누를때만 타이머가 진행되도록 할 수 있음?
시그널과 연결된 모든 함수 모든 코드가 실행되어야 하는게 맞음. 님이 몬가 잘못짠거 같은데
이제 보니 코드 자체도 좀 이상한데 _input()에다가 이 코드를 넣어둬야할 특별한 이유가 잇슴? 얘는 매 프레임 반복 실행되는 코드가 아님 _physics_process()가 훨씬 적절해보이는데
ㄳㄳ 질문 한가지만 더 부탁하면 저 코드 말고 await get_tree().create_timer(3).timeout 이런식으로 해봤는데 이러니까 시그널과 연결된 코드들이 전부 항상 실행 잘되었음 그런데 저렇게 하니까 3초동안 기다리고 그 후에 원하는 동작을 하긴 했음 하지만 그 직후 다른 모든 객체들이 3초동안 작동을 안하는 그런 현상이 생겼음 create_timer() 안에 값을 1.5초로 하면 1.5초 꾹 누르고나서 원하는 동작 다 실행된 다음에 딱 1.5초동안 모든 객체가 잠시 멈춰있고 10초로하면 10초동안 그렇게 되는 식임 이런 이유가 뭔지 대체 모르겠음
님말대로 input를 physics_process로하니까 문제없이 잘 되서 걍 이렇게 가야겠음
코드를 다 까지 않는 이상 본인쟝도 이런 댓글만 보고 원인을 알아낼 수는 업슴...
웅.. 그래도 고마워!
굳이 타이머를 만들어야 하나요? 저는 이런 식으로 만들었거든요. if Input.is_action_pressed("restart"): ui_restart.show() time += delta ui_restart.value = time if time >= 0.5: Events.level_restarted.emit() else: ui_restart.hide() time = 0
고마워!