240824 TIL - 번외의 토요일

LIHA·2024년 8월 24일
0

내일배움캠프

목록 보기
25/54
post-thumbnail

잡담

규아님의 응원을 받아 2킬을 달성하고 당당하게 이겼다
이것이 팀 차 이

동현님께 당한(?) 마구마구 찌르기로 동기분 놀래키기

트러블슈팅

로비이동 후 새 게임 시 이전 로그가 겹치던 현상 수정

이렇게 쓰니까 왠지 게임 패치노트 쓰는 것 같다...(?)

문제상황: 도망성공, 사망, 클리어 등 로비로 이동하도록 설정 시, 새 게임을 눌렀는데 이전 로그가 계속 남는 현상

시도방법:
1. console.log 메시지들을 담아주는 배열인 logs를 초기화
2. 로비로 이동하는 함수 호출 전 console.clear()를 배치
3. 다시 메인화면을 소환(?) 하도록 start() 함수 배치
4. 그 함수 언저리가 실행은 되는 것인지 console.log()에 메시지를 넣어 실행 (로비로 돌아가고싶어요!!!)

결론: 대실패. 예상과는 다르게 뒤죽박죽
1. 전투 이탈 후 로비 이동 -> 새 게임 진입 시 이전 화면이 계속 출력된다
2. 그 이전 화면에서 뭔가 키입력을 하면 (스페이스 바를 누르면 메인으로 간다 등) 또 그게 작동을 한다...

  • 위 현상에 대해 정섭 튜터님께서는 '의도치 않게 클로저를 쓰고 있는 것일 수도 있다'고 말씀해주심

해결책:
1. logs는 해당 스코프 내에서 선언된 것이 아니라 not defined가 나와서 뺐다
(어차피 새 전투 시작할 때 logs = [ ]; 절을 지나므로 logs도 초기화 된다)
2. start() 함수에 async를 붙이고 await start()로 호출해주었다
-> 이것이 정답이었다!

내내 고민하던 문제를 해결해서 기분이 좋다.

가능하다면 더 고쳐보고 싶은 것들

  1. 로딩화면동안 키입력을 받지 못하게 차단할 수 있을까? (로딩동안 연타하는 키들이 모두 다음화면에 입력됨)
  2. 명예의전당(간단한 로그)을 구현해볼 수 있을까? -> logs처럼 빈 배열을 만들고 이름 푸쉬하는 식이 가능할까?
  3. 위 명예의 전당을 만들려면 클리어 날짜를 받아오는 함수를 써볼 수 있을까?
profile
갑자기 왜 춤춰?

0개의 댓글