Season 01 - 09 속도! 가속! 감속! 움직임의 물리!
⚡ Season 01 - 09 속도! 가속! 감속! 움직임의 물리!
“멈추지마! 더 빨리! 근데 너무 빠르면… 무서워!”
코딩스타랩 교실.
어제 벽에 박은 충돌 실험이 너무 즐거웠던 딕은 오늘도 시작부터 소리쳤다.
“리오오온! 오늘은 더 빠르게 달리자!! 속도 맥스까지 가보자!!”
세이는 깊은 한숨을 쉬었다.
“딕… 너는 속도가 아니라 사고가 맥스야…”
리온은 이미 칠판 앞에 서 있었다.
오늘은 속도(speed)와 가속(acceleration), 그리고 감속(deceleration)이 주제였다.
그는 칠판 위에 단 한 단어를 크게 적었다.
velocity (속도)
딕은 눈이 번쩍였다.
“이거 게임에서 본 단어다! 무조건 신나는 거야!”
세이는 조용히 덧붙였다.
“속도… 마음에도 있는 거야. 너무 빠르면 무서워지고, 너무 느리면 답답하고.”
리온은 고개를 끄덕였다.
“그래. 게임 속 속도도 똑같아. 그래서 조절이 필요하지.”
🚀 1. 속도 = 위치 변화량
리온은 칠판에 숫자를 적었다.
let x = 0;
let speed = 5; // 속도
x = x + speed;
세이: “속도는… 위치가 얼마나 빨리 바뀌는지?”
리온: “맞아. speed가 크면 한 번에 더 많이 움직이지.”
딕: “그럼 speed를 100으로 올리면…?”
리온은 잠시 딕을 바라보았다.
“…너는 왜 항상 위험한 걸 먼저 생각하니?”
딕은 어깨를 으쓱했다.
“재밌잖아!!!”
🔥 2. 가속 = 속도를 더하는 힘
“그럼 이제 진짜 재미있는 걸 하자.” 리온은 두 번째 코드를 적었다.
let x = 0;
let speed = 0;
let accel = 2; // 가속
document.addEventListener("keydown", () => {
speed = speed + accel;
x = x + speed;
});
딕이 어깨를 들썩였다.
“속도에 속도를 더하면…?!”
세이는 조용히 말했다.
“…엄청 빨라지겠네?”
리온: “맞아. 이게 바로 가속(acceleration)이지.”
딕은 키를 눌렀다.
파란 박스가 갑자기 “쓱— 슝— 슈슈슈슉—!” 속도로 넘어갔다.
딕: “우와와와아!! 미쳤다!! 이거 완전 롤러코스터잖아!!”
세이: “딕… 조심해… 화면 밖으로 또 튀어나간다…”
딕: “그럼 잡아줘어어어어!!”
⛔ 3. 감속 = 브레이크
딕의 광적인 속도 실험을 막기 위해 리온은 세 번째 공식을 적었다.
if (speed > 0) {
speed = speed - 1; // 감속
}
세이: “속도가 조금씩 줄어들어…”
리온: “그래. 브레이크를 걸어주는 거지. 게임에서는 감속이 없으면… 제어가 안 돼.”
딕은 감속된 박스를 보며 말했다.
“근데… 감속도 좀 슬프다. 점점 느려지고 멈추고…”
세이는 미소 지었다.
“멈춘다고 끝나는 건 아니야. 다시 달릴 수 있잖아.”
딕은 금세 다시 기운을 차렸다.
“그럼 다시 달릴래!!!!!!”
🌪 4. 마찰(friction) = 자연 감속
리온은 조금 더 전문적인 개념을 꺼냈다.
speed = speed * 0.9; // 마찰
세이는 눈을 크게 떴다.
“속도가 자연스럽게 줄어들어…?”
리온: “그래. 현실 세계에서 물체가 굴러가면 조금씩 속도가 줄어드는 것처럼.”
딕은 고개를 끄덕였다.
“오… 이제 좀 ‘진짜 게임’ 같다!”
리온: “맞아. 움직임이 자연스러워지면 게임의 몰입도가 올라가.”
🏃 5. 속도 + 경계 + 충돌 = 진짜 움직임
모든 개념을 합친 최종 코드가 칠판에 등장했다.
let x = 0;
let speed = 0;
let accel = 2;
document.addEventListener("keydown", () => {
speed += accel; // 가속
});
function move() {
speed = speed * 0.9; // 마찰
x = x + speed; // 이동
if (x < 0) x = 0; // 경계
if (x > 400) x = 400;
box.style.left = x + "px";
requestAnimationFrame(move);
}
move();
딕은 감탄했다.
“와… 이제 진짜 살아있는 것 같아!”
세이는 화면을 바라보며 말했다.
“속도도 감정 같아… 올랐다가, 줄어들고… 다시 오르고.”
리온은 조용히 말했다.
“맞아. 그래서 게임의 움직임이 사람 마음을 닮을 때
더 재밌어지는 거야.”
🎯 오늘의 배움
- 속도(speed) = 위치가 변하는 양
- 가속(acceleration) = 속도를 증가시키는 힘
- 감속(deceleration) = 속도를 줄이는 힘
- 마찰(friction) = 자연스러운 감속
- 속도 + 경계 + 이벤트 → 움직임의 완성
딕은 여전히 화면 속 파란 박스를 보며 말했다.
“아… 달리고 싶다… 나도.”
세이는 웃으며 말했다.
“너는 이미 달리고 있어.”
리온은 다음 칸에 새로운 문장을 적었다.
“Season 01 - 10 중력(Gravity)! 점프(Jump)! 떨어짐(Fall)!”
딕: “점프!!! 드디어 점프!!!!!”
세이: “딕… 아직 시작도 안 했어.”
리온: “그럼 시작하자. 다음 시간엔… 우리가 하늘로 뜬다.”
🌍 English Summary (≈500 words)
Season 01 - 09: “Speed, Acceleration, and the Physics of Movement!”
In this episode, the kids explore core game physics: speed, acceleration, deceleration, and friction.
Dick becomes obsessed with speed, pushing the object to extreme levels, while Sei observes how movement resembles emotional flow — rising, falling, slowing down.
Leon explains how velocity works, how acceleration adds force, and why friction and deceleration are necessary for control.
They build a fully functional movement system combining boundaries, velocity updates, and natural slowing.
This marks their first step into real “game physics,” setting the stage for gravity and jumping next.
MAKE · PLAY · DREAM.
© 2025 CodingStar Lab | MAKE · PLAY · DREAM | by endic
#코딩스타랩 #속도 #가속 #감속 #마찰 #게임물리 #초등코딩 #중등코딩 #리온세이딕 #velocity #javascript기초

Leave a Comment