교컴 키우기 자발적 후원 |
- 1초대! 『예술과 공통장』 출간 기념 권범철 저자와의 만남 (2024년 3월 31일 일 오후 2시)
- 2[모집] 느린학습아동 교육지원사업 ‘천천히 함께’ 참여 멘토 모집(~4/10)
- 3가입인사
- 4다큐멘터리 파룬궁 탄압(파룬궁[법륜대법]은 좋습니다)
- 5슈링클스(Shrinkles) 열쇠고리(keyring) 제작 학습지
- 6초대! 『기준 없이』 출간 기념 스티븐 샤비로 강연 (2024년 4월 20일 토 오전 10시)
- 7그림으로 공부하는 과학사
- 8페임랩(Fame Lab) 학습지
- 9새 책! 『육식, 노예제, 성별위계를 거부한 생태적 저항의 화신, 벤저민 레이』 글·그림 데이비드 레스터, 마커스 레디커·폴 불 엮음, 김정연 옮김, 신은주 감수
- 10새 책! 『죽음의 왕, 대서양의 해적들』 글·그림 데이비드 레스터, 글 마커스 레디커, 폴 불 엮음, 김정연 옮김, 신은주 감수
|
span> |
교컴 포토갤러리 |
플래시수업
교플강8 - 자유낙하운동
2. 자유낙하 운동을 컴퓨터로 구현할 수 있다.
가. 자유낙하 운동 공식 이해
자유낙하란 중력에 의해 물체가 지구중심으로 떨어지는 운동을 이야기 한다. 지구중심방향으로 떨어지는 물체는 중력가속도(g) 때문에 점점 속력이 빨라지는 등가속도 운동을 하게 된다. 이곳에서 자유낙하 운동을 다루고자 하는 이유는 우리 주변에서 항상 접하고 있는 사건이기 때문이다. 자유낙하 운동의 공식을 살펴보면 아래와 같다.
중력가속도 : g=9.8(m/s²) 속 도 : v=v0+gt 이 동거 리 : s=s0+v0t +(1/2)gt² v:나중속도(m/s), v0:처음속도(m/s), a:가속도(m/s²) t:걸린시간(s), s:이동거리(m) s0:초기위치(m) |
나. 자유낙하 운동 표현방법 구상
우선 시간부터 생각해 보자. 시간 변화는 플래시에서는 1Frame 으로 대신 생각할 수 있다. 즉 플래시 프로그램은 프레임 방식의 프로그램으로 매 프레임을 실행할 때 마다 사건이 발생하므로, 따로 시간을 나타내 주지 않아도, 프레임마다 시간이 흘러간다고 보면 될 것이다. 따라서 onEnterFrame = function () 문 안에 액션스크립트를 넣어 주는 것 만으로도 시간은 계속해서 프레임마다 흘러가고 있다는 것을 알 수 있다.
그렇다면 속력은 어떻게 나타낼 것인가? 속력은 아래와 같이 나타내면 된다.
처음속도를 0이라고 했을 때 프레임 스크립트에 아래와 같이 나타낼 수 있다.
//초기값 g = 1; //중력가속도 값 vy = 0; // 속력 초기화 onEnterFrame = function () { vy = vy+g; // vy 속력에 중력가속도 값 더해서 속력 증가 trace(vy); } |
<토의> 위 속력공식과 아래 스크립트에서 표현한 내용에 차이가 있어 보일 것이다. 어떤 차이가 있어 보이고, 왜 그런지 토의해 보자.(시간표현에 대한문제)
속력공식에서는 처음속도를 0이라고 v=gt 가 된다. 그래서 t 가 증가할 때 마다 v 값이 일정하게 증가하게 되는 것을 알 수 있다. 아래 액션스크립트에서는 스크립트상에서 t 에 대한 언급이 없다. 어떤 차이가 있는 것일까?
vy = vy+g 가 같는 의미를 생각해 보자. vy 는 우리가 만든 속력값이다. 그런데 vy 는 처음에는 0 이 었으나, 프레임이 실행될때마다. g 만큼 값이 증가하게 될 것이다. 그렇다면 vy 값도 일정하게 증가한다는 것을 알 수 있다. 즉 공식과는 달라 보이지만 스크립트로 표현한 값이 결과적으로는 똑같은 값을 나타내고 있다는 것을 알 수 있다.
t 라는 시간변수를 동원해서 프로그램을 할 수도 있겠지만, 플래시 특성상 플래시 프로그램이 프레임 방식이라는 것을 잘 이해하면 t 라는 시간변수를 사용하지 않고도 자유낙하 운동을 간단하게 표현해 낼 수 있는 것이다.
같은 방법으로 자유낙하 운동의 이동거리를 액션스크립트로 표현해 보아라
다. 자유낙하 운동 시뮬레이션
1)고려해야 할 사항에 대해 토의해 보고 변수명을 정해보자.
공의 인스턴스명 (ball) 중력가속도(g=1) 프레임 속도 30fps 화면크기 550*400 |
ball 무비클립을 마우스로 드래그 해서 원하는 위치에 가져다 놓고 마우스를 때는 순간 자유낙하 운동을 하도록 만들어 보자 .그러기 위해선 앞에서 배웠던 startDrag 문을 적당히 사용해야 할 것이다.
또 startDrag 하는 동안 자유낙하 운동이 일어나지 않게 하기 위해서는 어떻게 해야 할까. check1 이라는 변수를 사용하여, 마우스로 ball 의 위치를 이동시킨후 마우스를 때는 순간 자유낙하 운동이 발생할 수 있도록 해보자. 그리고 바닥에 충돌후 다시 튀어 오르는 것도 조건문을 활용하여 만들어 보자.
2) 액션스크립트 작성
//초기값 g = 1; //중력가속도 값 vy = 0; // 속력 초기값 sy = 0; // 위치 초기값 check1 = 0; // 자유낙하 여부 결정 0이면 동작정지, 1이면 작동 onEnterFrame = function () { if (check1 == 1) { vy = vy+g; //vy 속력에 중력가속도 값 더해서 속력 증가 sy = sy+vy; //sy 이동위치 증가 ball._y = sy; // ball 의 y 위치를 이동위치와 같게 해줌 // 만약 볼이 바닥에 닿으면 속력 방향 바꾸어줌 if (ball._y>400-ball._width/2) { vy = -1*Math.abs(vy)-g; } } } //볼을 마우스로 누르면 따라오게 함 ball.onPress = function() { this.startDrag(); check1 = 0; //볼을 이동하는 동안 자유낙하를 중지시킴 } //볼에서 마우스를 때는 순간 초기 변수값을 재조정 하고 떨어지게 함 ball.onRelease = function() { this.stopDrag(); check1 = 1; vy = 0; sy=ball._y; } |
<마우스로 볼을 잡아서 올렸다가 놓아보자>
<-1을 -0.9로 바꾸면>
<질문> vy=0 으로 바꾸면 어떻게 될까? -1대신 -1.1 로 바꾸면 어떻게 될까?
- 자유낙하운동.fla (43.5KB) (91)
- 자유낙하운동2.fla (45KB) (32)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
[활용] 수업 활용 감동 플래시 150편 [37+1] | 함영기 | 162927 | 2003.08.21 18:57 | |
447 | [기타플래시] 세상에서 가장 감동적인 이야기 [7] | 교컴지기 | 20493 | 2010.08.27 20:26 |
446 | [플래시강좌] 교플강12(마지막회)-대포게임 만들기 [1] | 민서아빠 | 11206 | 2009.02.15 22:46 |
445 | [플래시강좌] 교플강11 -포물선 운동 구현하기 | 민서아빠 | 11686 | 2009.02.15 22:45 |
444 | [플래시강좌] 교플강10-중력장에서 우주선 착륙게임 만들기 | 민서아빠 | 7056 | 2009.02.15 22:43 |
443 | [플래시강좌] 교플강9 - 관성효과에 의한 운동-키보드 입력 | 민서아빠 | 7243 | 2009.02.15 22:42 |
>> | [플래시강좌] 교플강8 - 자유낙하운동 | 민서아빠 | 8645 | 2009.02.15 22:39 |
441 | [플래시강좌] 교플강7-물체의 가속도 운동 구현하기 | 민서아빠 | 7187 | 2009.02.15 22:36 |
440 | [기타플래시] 투명인간 만들기1.0(웹캠이용) [1] | 민서아빠 | 6870 | 2009.02.08 21:27 |
439 | [플래시수업] 재미있는 플래시 만화 '재동이네' 48편 [3] | 교컴지기 | 12811 | 2008.11.24 12:57 |
438 | [플래시게임] 율동 플래시 - 얼굴 찌푸리지 말아요 [3] | 교컴지기 | 13551 | 2008.11.11 15:20 |
437 | [플래시유틸] 모둠 뽑기 플래시 [3] | 교컴지기 | 23204 | 2008.11.11 15:19 |
436 | [플래시유틸] 알람시계 플래시 [4] | 교컴지기 | 11710 | 2008.11.11 15:17 |
435 | [플래시수업] 플래시 생각 수업 : 세상에서 가장 아름다운 시 | 교컴지기 | 8752 | 2008.09.22 22:34 |
434 | [플래시수업] [모듈자료] 기후 그래프 그리기 [1] | 함영기 | 11433 | 2008.03.03 09:35 |
433 | [플래시유틸] [프리웨어]각종 동영상포멧을 FLV와 SWF로 전환시켜주는 프램 | 유춘모 | 7704 | 2008.01.29 22:29 |
432 | [플래시강좌] 서버에 실시간 AVI를 FLV로 변환하는 날개를 달자 | 유춘모 | 6752 | 2008.01.03 22:02 |
431 | [플래시수업] 환경교육과 플래시가 만나면? [6] | 함영기 | 7476 | 2007.10.29 14:48 |
430 | [플래시수업] [수학] 정다면체의 전개도 애니메이션 자료~* [1] | 함영기 | 9998 | 2007.10.24 21:56 |
429 | [기타플래시] [안내] 1~3분 분량의 주의집중 콘텐츠 공모 | 함영기 | 6130 | 2007.10.24 21:36 |
428 | [플래시강좌] 플래시로 쉽게 공부하는 포토샵 매뉴얼 | 함영기 | 8351 | 2007.10.24 21:29 |