• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

질문있습니다~~

22.03.14 22:45 작성 조회수 140

1

안녕하세요 강의 잘 보고 있습니다!

 

질문1

cosnt arr = []

arr['aa'] = true 

이렇게 하셨는데  배열안에 [aa: true] 이렇게 들어가서

for문 같은건 안되고 오브젝트처럼 .으로 접근이 되더라구요  arr.aa 이렇게 ....

타입보니 배열이긴한데  다른 배열처럼 arr[0] 이렇게 접근이 안되니 기존 배열처럼 쓸 수는 없는지 궁금하네요 

 

 

질문2 

리퀘스트애니메이션프레임에서 walk 함수를 계속 실행하며 감지 하고 있는데 이러면 성능상에 문제가 없을까요 ?  

아무래도 계속 함수를 실행하고 있어서 부하가 걸리진 않는지 궁금하네요 ...

 

그냥 이벤트리스너에 키마다 넣어서 하는거랑 차이가 있을까요 ?

window.addEventListener('keydown', e => {

    if(e.code === 'KeyW') ....

})

 

아 ..생각해보니 쭉 누르고 있을 때나 W+A키를 눌렀을 때 처리하는건 선생님이 하신 코드가 훨씬 대응하기 좋을거같긴하네요 !

 

 

답변 1

답변을 작성해보세요.

2

1) 네- arr['aa'] 이 방식은, 오브젝트의 속성이랑 똑같이 생각하시면 됩니다. 말씀대로 arr.aa 이렇게 접근 하는게 맞고요~
보통 속성 이름을 스크립트로 생성할 때 많이 쓰는 방식이랍니다. 예를들어
arr[`area-${num}`] 이런 식으로 한다든지 할 때요^^
개발 편의를 고려해서 선택하시면 될 것 같습니다.

2) key 이벤트 자체가 브라우저마다 살짝 다른 경우도 있고 조금은 불안정한 면이 있어서, 특히 게임처럼 키 입력이 중요한 경우는 key 이벤트에만 의존하면 조금 불안한 경우가 있어서 수업에서 쓰는 방식을 많이 사용하더라고요. 그리고 말씀대로, 동시입력에도 잘 대응할 수 있는 장점도 있고요!
어차피 three.js 애플리케이션이 tick 루프로 빠르게 반복실행이 되기 때문에, 저 정도 연산 부하는 신경쓰지 않아도 되는 수준이 대부분이라고 생각됩니다^^

jjongrrr님의 프로필

jjongrrr

질문자

2022.03.15

넵 감사합니다~ 강의 너무 재밌네요 ㅎㅎㅎㅎ 

완강하고 후기 남길게요~~