교컴 키우기 자발적 후원 |
- 1가입인사
- 2슈링클스(Shrinkles) 열쇠고리(keyring) 제작 학습지
- 3초대! 『기준 없이』 출간 기념 스티븐 샤비로 강연 (2024년 4월 20일 토 오전 10시)
- 4페임랩(Fame Lab) 학습지
- 5그림으로 공부하는 과학사
- 6새 책! 『육식, 노예제, 성별위계를 거부한 생태적 저항의 화신, 벤저민 레이』 글·그림 데이비드 레스터, 마커스 레디커·폴 불 엮음, 김정연 옮김, 신은주 감수
- 7마음 속 우편함
- 8새 책! 『죽음의 왕, 대서양의 해적들』 글·그림 데이비드 레스터, 글 마커스 레디커, 폴 불 엮음, 김정연 옮김, 신은주 감수
- 9스무가지 조언
- 10사랑의 다른 말
|
span> |
교컴 포토갤러리 |
플래시수업
교플강6(벽돌깨기 만들기 - 충돌이해)-벽돌깨기를 위하여
4. 무비클립간의 충돌을 이해하고, 충돌후 반응을 처리할 수 있다.
공도 화면상에서 움직이고, 조절바도 마우스를 따라 다니며 움직이도록 만들었다. 이제는 조절바로 내려오는 공을 받았을때 다시 튕겨 올라가게 만들어야 할 것이다 .그렇다면 조절바와 공이 충돌이 일어나는지 어떻게 알 수 있겠는가
가. 조절바와 공의 충동방법을 이해한다. (hitTest)
플래시 애션스크립트 중 hitTest 문을 이용하면 두 무비클립간의 충돌을 체크할 수 있다. hitTest는 두 무비클립이 충돌했는지 안했는지의 여부를 알려주는 역할을 한다.
무비클립A.hitTest.무비클립B |
무비클립A 와 무비클립B가 충돌을 했는지를 판정해 줍니다.
무비클립A.hitTest.(x,y,true) |
무비클립A가 우리가 지정해준 (x,y)좌표와 충돌하고 있는지 판정을 해 줍니다.
자 그렇다면 첫 번째 방법을 이용해서 조절바와 공이 충돌하고 있는지를 판정해 봅시다.
ball.hitTest(bar) |
나. 충돌후의 공 처리방법을 이해한다.
onEnterFrame = function () 문안에 아래와 같은 스크립트를 추가함으로써 조 절바와 공이 충돌하는지를 알 수 있고 충돌했을때 공의 방향이 바뀌도록 만들 수 있다. 아래 스크립트를 직접 추가한후 어떻게 변하는지 살펴보자..
//공과 조절바의 충돌여부 체크 if (ball.hitTest(bar)) { speedy = speedy*-1; } |
다. 벽돌 무비클립과 공의 충돌방법을 이해한다.
벽돌을 만들어 이름을 \'block1\'이라고 주고 공과 충돌했는지 여부를 판단한후 만약 충돌이 일어난다면 벽돌을 화면상에서 사라지게 만들어 보자.
if (ball.hitTest(block1)) { speedy = speedy*-1; block1._x = 1000; } |
만약 벽돌이 2개(block1.block2)라면 앞에서 쓴 스크립트를 한번 더 써주면서 block1 대신 block2라고 적어주면 될 것이다. 그렇다면 지금까지 배운 것을 토대로 벽돌깨기를 완성해 보자.
1)고려해야 할 사항에 대해 토의해 보고 변수명을 정해보자.
공의 인스턴스명 (ball) 조절바의 인스턴스명 (bar) 벽돌의 인스턴스명 (block1,block2.... ) 총 5개 |
2) 화면구성
3) 액션스크립트 작성
아래 액션스크립트에서 주의해 볼 것은
for (i=1; i<=5; i++) {
if (ball.hitTest(_root[\"block\"+i])) {
speedy = speedy*-1;
_root[\"block\"+i]._x = 1000;
}
}
이다 즉 각각의 벽돌과의 충돌체크를 일일이 해주지 않고 반복문을 사용해서 모든 벽돌과의 충돌을 한번에 체크하도록 하는 것이다. 반복문을 사용하여 체크하는 이유는 그렇게 하면 벽돌수가 10개 20개 가 된다해도 금방 스크립트를 수정할 수 있기 때문이다.
그리고 궁극적으로는 공이 y축위치가 400보다 커지면 게임오버 라는 메시지가 출력되도록 바꾸어야 할 것이다.
//초기 스피드 speedx = 10; speedy = 10; //조절바 움직이도록 함 bar.startDrag(true, 0, 350, 500, 350); //반복실행 onEnterFrame = function () { //공 이동 ball._x = ball._x+speedx; ball._y = ball._y+speedy; // 벽을 벗어나려고 할때의 조건문들 if (ball._x+ball._width/2>500) { speedx = speedx*-1; } if (ball._x-ball._width/2<0) { speedx = speedx*-1; } if (ball._y+ball._height/2>400) { speedy = speedy*-1; // 다음에는 ‘게임오버’로 교체 } if (ball._y-ball._height/2<0) { speedy = speedy*-1; } // 공과 조절바의 충돌여부 체크 if (ball.hitTest(bar)) { speedy = Math.abs(speedy)*-1; } // 공과 벽돌의 충돌여부 체크(반복문 이용) for (i=1; i<=5; i++) { if (ball.hitTest(_root[\"block\"+i])) { speedy = speedy*-1; _root[\"block\"+i]._x = 1000; } } } |
가. 배열을 이용한 벽돌 배열방법 연구
벽돌의 위치를 미리 변수로 만들어 놓았다가 한꺼번에 위치를 배열하도록 만들어 보자
나. 공의 크기와 조절바 크기 변환방법 연구.
공의 크기와 조절바의 크기를 바꾸어 가며 테스트 해 보자.
다. 점수 나타내는 방법 연구
시작화면과 종료화면 또 깨진 벽돌수등이 나오게 만들어 보자.
라. 벽돌없이 공을 오랫동안 칠수 있는 게임도 만들어 보자.
조절바 4개가 마우스를 따라 다닐 수 있도록 만들어 공을 떨어뜨리지 않고 오랫동안 칠수 있는 게임을 만들어 보자.
- 벽돌깨기3.fla (0B) (338)
- 벽돌깨기완성.fla (0B) (333)
- 벽돌깨기완성.swf (0B) (334)
- 200854_벽돌깨기완성2.swf (0B) (331)
- 벽돌깨기응용.fla (0B) (332)
- 벽돌깨기응용.swf (0B) (332)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
[활용] 수업 활용 감동 플래시 150편 [37+1] | 함영기 | 163134 | 2003.08.21 18:57 | |
367 | [플래시수업] RE:플래시학습자료제작-연습파일 [1] | 김정식 | 3033 | 2005.08.18 11:11 |
366 | [플래시수업] RE:[문제만들기 옛날 빵없는 소스] [1] | 유춘모 | 2556 | 2005.08.17 20:48 |
365 | [이미지자료] 백일홍이야기-플래시앨범 | 김은정 | 3134 | 2005.07.30 21:45 |
364 | [플래시유틸] 플래시 앨범 - 동해 일출 | 함영기 | 3105 | 2005.07.29 09:04 |
363 | [기타플래시] 플래시 배너 만들기 연습 | 함영기 | 3304 | 2005.06.28 19:42 |
362 | [플래시유틸] [앨범] 나모 플래시 크리에이터로 만든 앨범2 | 함영기 | 2533 | 2005.06.28 19:30 |
361 | [플래시유틸] [소개] 나모 플래시 크리에이터로 만든 앨범 | 함영기 | 2614 | 2005.06.28 16:28 |
360 | [플래시수업] 플래시파일을 파워포인트에서 사용하려면? | 정온정 | 3589 | 2005.06.13 20:59 |
359 | [플래시수업] RE:플래시파일을 파워포인트에서 사용하려면? | 함영기 | 4082 | 2005.06.15 18:40 |
>> | [플래시강좌] 교플강6(벽돌깨기 만들기 - 충돌이해)-벽돌깨기를 위하여 | 김정식 | 4245 | 2005.06.12 20:09 |
357 | [플래시강좌] 교플강5(화면을 못 벗어나게, 그리고 마우스를 따라다니는 움직임) - 벽 | 김정식 | 4164 | 2005.06.12 20:03 |
356 | [플래시강좌] 교플강4(무비클립과 화면상에서 움직임 이해) - 벽돌깨기를 위하여 | 김정식 | 3910 | 2005.06.12 19:40 |
355 | [플래시강좌] 교플강3(구구단 문제 출제 프로그램 만들기) | 김정식 | 4687 | 2005.05.29 13:26 |
354 | [플래시강좌] 교플강2(구구단 화면에표시하기,생각한 숫자 맞추기게임) | 김정식 | 5014 | 2005.05.29 13:24 |
353 | [플래시강좌] 교플강1(구구단 만들기를 위한 기초개념) [1] | 김정식 | 6656 | 2005.05.29 13:23 |
352 | [플래시강좌] <b>[강의] 민서아빠의 교사를 위한 플래시 강의(교플강)&l [5] | 김정식 | 14832 | 2005.05.29 13:18 |
351 | [기타플래시] 플래시로 만든 손접기 | 김정식 | 3410 | 2005.04.30 20:16 |
350 | [플래시게임] [게임] 알쏭달쏭 게임 플래시 [1] | 함영기 | 4738 | 2005.04.26 14:46 |
349 | [플래시수업] [공통] 초중고 독도 플래시 학습자료 [1] | 함영기 | 4636 | 2005.04.04 08:12 |
348 | [플래시게임] 퀴즈부저2.0 - 소스 | 김정식 | 4725 | 2005.03.24 20:50 |