교컴로고초기화면으로 header_kyocom
교컴메뉴
교컴소개 이용안내 소셜교컴 나눔마당 배움마당 자료마당 교과마당 초등마당 특수마당 글로벌교컴 온라인프로젝트학습 교컴 UCC
회원 로그인
정보기억 정보기억에 체크할 경우 다음접속시 아이디와 패스워드를 입력하지 않으셔도 됩니다.
그러나, 개인PC가 아닐 경우 타인이 로그인할 수 있습니다.
PC를 여러사람이 사용하는 공공장소에서는 체크하지 마세요.
소셜네트워크 서비스를 통해서 로그인하시면 별도의 로그인 절차없이 회원서비스를 이용하실 수 있습니다.
교컴 키우기 자발적 후원


:::: 교컴가족 로그인(0)

  • 주간 검색어
  • 현재 검색어
  1. 전남중등음악사랑연구회 http://jnjmuse.cnei.or.kr/home.htm 3
  2. 경민이가
  3. 예시문
  4. 국어
  5. 생활지도
  6. 사회5학년1학기 2단원
  7. 영화
  8. 창체 32
  9. 상담
기간 : ~
기간 : 현재기준

교컴 포토갤러리

플래시수업

교플강8 - 자유낙하운동

민서아빠 | 2009.02.15 22:39 | 조회 8644 | 공감 0 | 비공감 0

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;

}


<마우스로 볼을 잡아서 올렸다가 놓아보자>

displayMultimedia("files/attach/images/1569/999/008/fall.swf", "400","320", { autostart : false });
바닥과 충돌 후 같은 높이까지 튀어 오르지 않도록 하려면 어떻게야 할까. 즉 완전 탄성충돌이 일어나지 않게 하려면 바닥과 충돌한후 마찰력에 의해 감쇠효과가 나타나야 한다. vy = -1*Math.abs(vy)-g; 값에서 -1을 -0.9 로 바꾸어 보자. 다른 값으로도 바꾸어 보자.
<-1을 -0.9로 바꾸면>
displayMultimedia("files/attach/images/1569/999/008/fall2.swf", "400","320", { autostart : false });


<질문> vy=0 으로 바꾸면 어떻게 될까? -1대신 -1.1 로 바꾸면 어떻게 될까?

좋아요! 싫어요!
twitter facebook me2day
448개(1/23페이지) rss
플래시수업
번호 제목 글쓴이 조회 날짜
공지 [활용] 수업 활용 감동 플래시 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