타이머가 적용이 되지않습니다.

장애물 자체제작중 떨어지는 플랫폼을 구현하기위해 밟으면 1초뒤 떨어지는 장애물을 구현하려 하였는데
타이머의 코드를 짰는데도 밟은 직후 바로 떨어집니다, 어디가 문제일까요?
답변 2
1
안녕하세요. 용기있게 새로운 기능을 스스로 구현해보시고, 질문 남겨 주셔서 감사합니다.
코드 구현 자체만 보면 큰 문제는 없어 보이지만
"떨어지는플랫폼" 자체가 CharacterBody2D 노드로 되어 있어서
캐릭터가 위에서 밟으면 아래로 밀리게 되기 때문에,
밟자마자 바로 떨어지는 것처럼 느껴지실 수 있습니다. (캐릭터끼리 서로 밀어내듯이)
한번 캐릭터로 위에서 누르는 것이 아닌 옆에서 발판을 밀었을 때에도 밀리는지 확인해 보세요.
이 문제가 맞다면 인스펙터 탭에 있는 Collision 항목에서 자신을(Layer) 를 "지형" 에만 체크하시고 (강의에서는 2번에 할당했던 것으로 기억합니다)
충돌할 대상을(Mask) 전부 해제해 주시면,
캐릭터가 부딪혔을 때 플랫폼이 반응하지 않게 되어 원하시는 결과물이 나오지 않을까 생각됩니다.
추가로 발판의 velocity 는 중력을 받아 점차 빨리 떨어져야 하기 때문에(중력가속도)
velocity.y += 800 * delta
처럼 구현하시는 것이 좀 더 자연스러울 것 같습니다.
또한, CharacterBody2D 는 보통 캐릭터(사용자나, 다른 온라인 캐릭터)를 만들 때 사용하는 노드이기 때문에,
위처럼 발판을 만들 때는 RigidBody2D를 활용하시는 게 조금 더 자연스러울 수 있습니다.
다만, 위처럼 CharacterBody2D 를 활용하신 방법도 충분히 창의적이고 괜찮은 구현입니다.
또 궁금하신점 있으시다면 언제든지 질문 남겨주세요.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
김민석 님의 문제를 해결하는 데 도움을 드릴게요.
타이머가 의도한 대로 작동하지 않는 경우, 주로 코드에서 타이머의 설정 및 사용 방법에 문제가 있을 수 있습니다.
GDScript에서 타이머를 사용하는 일반적인 과정은 다음과 같습니다:
타이머 노드 설정:
- Scene에
Timer노드를 추가합니다.
Wait Time을 1초로 설정합니다.
One Shot을true로 설정하여 타이머가 한 번만 실행되도록 설정합니다.
- Scene에
타이머 실행 및 신호 연결:
- 특정 조건을 만족할 때
Timer노드의start()메서드를 호출하여 타이머를 시작합니다.
- 타이머 노드의
timeout신호를 사용할 수 있도록 연결합니다.
- 특정 조건을 만족할 때
코드 예:
# 타이머 노드를 변수에 연결 var timer = $Timer # 플레이어가 플랫폼 위에 있을 때 func _on_Player_body_entered(body): if body.name == "Player": timer.start() # 타이머 시작 # 타이머 완료 후 호출되는 함수 func _on_Timer_timeout(): # 장애물이 떨어지는 동작을 구현
위 코드를 참고하여, timeout 신호에 연결된 함수에서 장애물이 실제로 떨어지는 동작을 구현하지 않았거나 타이머 설정이 맞지 않다면 수정해보세요. 더 구체적인 코드나 설정이 필요하시면 알려주세요.
추가적으로 궁금한 사항이 있으시면 언제든지 문의하기 페이지에서 질문해 주세요. 최선을 다해 도와드리겠습니다.
이미지 출처: 
출처 URL: 인프런 FAQ
이 오류는 무슨 오류일까요?
0
44
1
강의 내용과 제 실습이 다릅니다.
0
37
1
강의 내용과 제 실습이 다름
0
45
1
54.(심화) 보스 구현(2) -state Machine
0
71
2
타일맵 강좌부분에서 경고메시지가 나와서 질문드립니다
0
59
1
21. Dictionary 활용 저장&로드
0
90
2
66강. INPUT 관리
0
62
2
31강 질문
0
66
2
69번 강의에서 에러 발생 보고
0
79
2
shift + x 단축키를 눌러도 색 스포이드가 되지 않습니다.
0
192
2
노드의 내장 시그널 이용 관련 문의
0
79
3
godot 학습방법에 대해서
0
51
1
박스 생성 후 가운데 빨간 점으로 위치 이동이 되지 않는 이유가 궁금합니다.
0
83
2
46. 상속씬(3) 수업 질문
0
75
2
영상이 보이지 않습니다.
1
89
1
error
0
61
2
3. 미니 슈터게임 > 레이저씬 에서 global_position 과 position 차이??
0
80
2
본과 바퀴의 중심점 싱크에 대해
0
92
1
토끼 이동이 안되는 현상에 대해서 질문드립니다.
1
183
2
변수 이름 한글인 이유??
1
331
2
Region Rect 디버그할때 수치가 바뀌는걸 볼 수 없어요.
1
242
2
영상에서는 디버깅할때 Sprite2D에서 Region Rect 수치가 계속 변하는걸로 보이는데...
1
130
1
재밌는 강의 감사합니다.
1
188
1
스프라이트 시트
1
195
1





