내일배움캠프 Node.js 사전캠프 9일차
1. ZEP에서 이루어진 팀단위 JavaScript 스터디
(1) 스터디 진행 과정
🐣JavaScript 문법 익히기
JavaScript Algorithms and Data Structures (Beta) Certification | freeCodeCamp.org
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference
🐣freeCodeCamp를 통해 텍스트 RPG 만들어보기
RPG - Dragon Repeller
→ 깃 페이지
🐣르탄이 달리기 → 르탄이 슈팅 게임으로 수정해보자!
르탄이 달리기 게임
→ 깃 페이지
(2) 내맘대로 코드 짜보기
🐣어떤 기능을 추가하면 좋을까?
🐣10/15 추가사항 및 디벨롭 방향 정하기
/** 키보드 입력 저장하기 */
let keyPresses = {};
window.addEventListener('keydown', keyDownListener, false);
function keyDownListener(event) {
keyPresses[event.key] = true;
}
window.addEventListener('keyup', keyUpListener, false);
function keyUpListener(event) {
keyPresses[event.key] = false;
}
/** 중간 생략 */
if (keyPresses.w) {
rtan.y -= speed;
if (rtan.y < 20) rtan.y = 20;
} else if (keyPresses.s) {
rtan.y += speed;
if (rtan.y > RTAN_Y) rtan.y = RTAN_Y;
}
🐣좀 의아한 부분
🐣개선 사항 고민해보기
(3) 어떻게 개선할 수 있을까?
🐣팀원 분의 따뜻한 조언
해결방법이 크게 세 가지가 있을 수 있는데
1. 플레이어와 부딪히면 적이 사라진다.
2. 데미지는 한 번만 입고 적이 그냥 지나간다.
3. 적과 부딪히면 플레이어가 잠시 동안 무적이 된다.
이 게임에는 2번 방식이 제일 어울릴 것 같아서 2번을 골랐더니 해법을 알려주셨다.
그건 바로 ENEMY에 IsCrashed 변수를 부여하는 것!
해당 불리언 값을 false로 설정한 뒤, 플레이어와 충돌했을 때 그 값을 true로 바꾼다면 중복 충돌을 막을 수 있다!
[참고 자료]
- addEventListener()
EventTarget.addEventListener() - Web API | MDN
댓글