인프런 커뮤니티 질문&답변

suhyeon kim님의 프로필 이미지
suhyeon kim

작성한 질문수

웹게임을 만들며 배우는 인터렉티브웹! JAVASCRIPT

requestanimationframe 성능관련 궁금증

작성

·

445

0

안녕하세요 좋은 강의 잘 참고해서 재밌게 만들어보고있습니다. ^^

requestanimationframe을 사용해서 애니메이션이 부드럽게 잘 이동합니다만

애니메이션 종료를 따로 설정해주지 않으면 renderGame()은 무한히 반복될텐데 성능에 문제가 없을까요?

bulletComProp.arr와 allMonsterComProp.arr의 경우 충돌하거나 사라질때 배열에서 삭제하기때문에 순회할게 없어 동작이 안된다고하더라도 hero.keyMotion 혹은 setGameBackground는 console로 찍어보니 값이 무한히 반복해서 성능에 문제가 되지 않을까 고민해보게 되네요

답변주시면 감사하겠습니다

정말 감사합니다.

답변 1

0

깡코딩님의 프로필 이미지
깡코딩
지식공유자

안녕하세요 :)

일반적으로 requestanimationframe을 종료하지 않으면 반복문이 계속 돌고 있는 상황이기 때문에 자원에 영향을 끼칠 수 있습니다. 하지만 단순히 requestanimationframe 1개의 함수를 따지고 봤을때 큰 자원 낭비는 아닌데요. 말씀하신대로 requestanimationframe안에서 또 다른 반복문이 계속 실행 된다던지 아니면 또 다른 requestanimationframe이 동시에 많이 실행된다면 성능에 큰 영향을 끼칠 수도 있습니다.

마지막으로 쉽게 생각해보면 웹에서 슬라이더를 사용할때 자동 재생하는 기능이 있죠?

그 기능 역시 requestanimationframe같은 반복문이 계속 실행중인거라 이것과 비슷한 성능 수준을 생각하시면 될 것 같습니다.

물론 여러가지 상황을 고려해 사용자가 게임을 종료했을때는 requestanimationframe을 종료하는 방법을 사용해도 상관 없습니다 :D

그럼 또 다른 궁금증이 생기면 문의주세요 :)

suhyeon kim님의 프로필 이미지
suhyeon kim
질문자

와우 웹슬라이더를 생각해보니 딱 느낌이 오네요 스탑버튼을 따로 만들지 않아도 큰 문제없는 그런 성능!! 빠른답변 정말 정말 감사합니다 이해가 확 되었어요 ㅎㅎ :) 좋은 하루 보내세요

suhyeon kim님의 프로필 이미지
suhyeon kim

작성한 질문수

질문하기