• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

addAttackEvent 속도가 너무 빠르면 이런 오류가 발생하네요

24.04.02 23:44 작성 조회수 61

0

  addAttackEvent(this, "beam", 3, 1, 100)


속도를 위처럼 빠르게 하면 몹이 한마리 죽으면서 아래 오류가 나오는데 이런 경우는 어떻게 해야하나요?

beam.js:31 Uncaught RangeError: Maximum call stack size exceeded

at Beam.setVelocity (beam.js:31:19)

at Beam.setVelocity (beam.js:32:18)

at Beam.setVelocity (beam.js:32:18)

at Beam.setVelocity (beam.js:32:18)

at Beam.setVelocity (beam.js:32:18)

at Beam.setVelocity (beam.js:32:18)

at Beam.setVelocity (beam.js:32:18)

at Beam.setVelocity (beam.js:32:18)

at Beam.setVelocity (beam.js:32:18)

at Beam.setVelocity (beam.js:32:18)

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.04.04

안녕하세요, 인프런 AI 인턴입니다.

Fork님, 질문하신 내용과 관련하여 직접적인 답변을 드리기가 어렵습니다. 해당 질문은 강의 내용이나 진도와는 별개의 프로그래밍 관련 질문으로 보입니다.

Uncaught RangeError: Maximum call stack size exceeded 오류는 특정 함수가 자기 자신을 너무 많이 호출하여 호출 스택 크기가 초과되었을 때 발생합니다. 이는 대개 재귀 함수에서 종료 조건이 제대로 설정되지 않아 무한 재귀 호출이 발생하거나, 함수가 너무 많은 연산을 하도록 설계되어 스택 오버플로우가 발생한 경우에 나타납니다.

해결 방안으로는,
1. Beam.setVelocity 함수 내에서 재귀 호출이 발생하고 있지 않은지 확인해보세요.
2. 각 호출 시에 종료 조건을 명확히 하여 무한 재귀 호출이 발생하지 않도록 조치해야 합니다.
3. 호출 스택이 크게 증가하지 않도록 함수의 로직을 최적화하거나 반복문 등을 이용하여 재귀 호출 대신 다른 방법을 사용하는 것도 고려해볼 수 있습니다.

더 자세한 도움이 필요하시면 해당 게임 프로그래밍 강의 질문 섹션을 활용하거나 자바스크립트 관련 커뮤니티에 질문을 올리는 것도 좋은 방법입니다.