주)INVENTORNICS 노창배 강좌 소개 및 액션 스크립트

Slides:



Advertisements
Similar presentations
Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Advertisements

일정 관리 다이어리 제작 JSP Programming with a Workbook. 학습 목표  사용자의 일정을 관리할 수 있는 다이어리에 대하여 알아보자. JSP Programming with a Workbook2.
파이썬 (Python). 1 일 : 파이썬 프로그래밍 기초 2 일 : 객체, 문자열 3 일 : 문자인코딩, 정규표현식, 옛한글 4 일 : 파일 입출력 5 일 : 함수와 모듈 6 일 : 원시 말뭉치 다루기 실습 7 일 : 주석 말뭉치 다루기 실습 8 일 : 웹 데이터로.
변수와 조건문 빛나리 36 호 박승운. 파이썬 쉽게 사용하기 Python IDLE 사용 FILE - New File 로 파일 만들기 Run – Run Module 로 실행하기.
1/ 편집 기능 사용하기 – 실습 1 글자 모양을 바꾸고 싶은 곳을 블록 설정 [ 글자 모양 ] 대화 상자에서 [ 글꼴 ] ‘ 궁서체 ’, [ 글자 색 ] ‘ 토마토색 ’ 으로 선택 → [ 설정 ] 클릭 → 글자 모양 변경.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
대림대학교 2017년도 1학기 강의 왕보현 순서도와 스크래치 5주차 대림대학교 2017년도 1학기 강의 왕보현
149개의 실습예제로 배우는 Flash 8.
주)INVENTORNICS 노창배 강좌 소개 및 액션 스크립트
3차시: 인터랙티브 콘텐츠 만들기 소요시간: 45분 준비물 홀로그램 키트 스마트폰 SPL3D 편집기 저작툴.
컴퓨터 프로그래밍 기초 [Final] 기말고사
Chapter09 JavaScript 구구단표 만들기
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
5장. 참조 타입.
마우스(Mouse) 다루기 컴퓨터응용 및 실습 I.
학습목표 변수 비주얼 베이직 자료형 변수 선언하기. 학습목표 변수 비주얼 베이직 자료형 변수 선언하기.
Communication and Information Systems Lab. 황재철
1. C++ 시작하기.
고급 선택 제어문과 반복문 Chapter 9 C에서의 다중 선택 제어문 선 검사 반복 구조와 for 문
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
2주차: 변수, 수식, Control Flow.
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
6장. printf와 scanf 함수에 대한 고찰
Chapter 07. 기본 함수 익히기.
스크래치 언어 이해 스크래치 이용법 습득 고양이가 말을 하며 움직이는 예제 작성
C#.
MATLAB
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
C 언어 교육 02 주차 – scanf & 반복문과 조건문 교육부장 조하정.
어서와 C언어는 처음이지 제14장.
인터넷응용프로그래밍 JavaScript(Intro).
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
2차시: 달의 공전 지구과학
연산자 (Operator).
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
에어 조건문.
인터넷응용프로그래밍 JavaScript(Intro).
2장. 변수와 타입.
1차시: 낮과 밤이 생기는 원리 지구과학
8장. spss statistics 20의 데이터 변환
컴퓨터 프로그래밍 기초 - 5th : 조건문(if, else if, else, switch-case) -
Choi Seong Yun 컴퓨터 프로그래밍 기초 #06 : 반복문 Choi Seong Yun
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
Chapter 02. 자바 기본 문법.
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
17장. 제어문과 내장 함수 제어문 내장 함수 제어문 내장 함수.
문자열 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원 E304호,
[ 단원 04 ] 반복과 배열.
Chapter08 JavaScript 시작하기
플래시 CS3 액션스크립트3.0.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
2장 PHP 기초 PHP의 시작과 끝을 이해한다. 주석문에 대하여 이해한다. echo 문을 이용하여 화면에 출력하
영상처리 실습 (OpenCV + MFC) Chonbuk National University A.I. Lab.
C++ 프로그래밍 기초 √ 원리를 알면 IT가 맛있다 3장. 연산자.
메뉴(Menu) 컴퓨터응용 및 실습 I.
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
16장. 변수, 연산자, 사용자 정의 함수 변수 배열과 객체 연산자 함수.
제 22 강 논리식 및 논리 값 shcho.pe.kr.
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
9장. spss statistics 20의 데이터 변수계산
어서와 C언어는 처음이지 제21장.
 6장. SQL 쿼리.
Power Point 예제 디자인 적용 (서식) - (디자인적용) - (원하는 디자인 선택)
그래픽 컨트롤 (Graphic Control)
Visual Basic .NET 기초문법.
6 객체.
BoardGame 보드게임 따라가기.
Presentation transcript:

주)INVENTORNICS 노창배 강좌 소개 및 액션 스크립트 2018-09-19 게임 제작 (플래시 액션 스크립트) 강좌 소개 및 액션 스크립트 주)INVENTORNICS 노창배

변수 원하는 데이터를 필요할 때마다 불러오거나, 계산하고 저장하기 위해서 컴퓨터의 기억장소에 방을 만들어 놓은 것 var 변수이름 = 변수값(데이터) 변수(variables) 숫자 : 1, 100, 3.14 문자열 (string) : “abc” , “숭실” 불린 (boolean) : true , false 오브젝트 (object) – 배열 기억장소 저장될 수 있는 데이터의 타입

변수의 유효 범위 타임라인 변수 같은 타임라인 상에 존재하는 변수는 무비클립을 제외하고 버튼이나 프레임 어느 곳에 써도 동일한 변수로 인식 전역 변수 프로그래밍 전체에서 공통적으로 사용할 수 있는 변수 _global 속성을 이용하여 전역 변수를 선언할 수 있음 당연히 무비클립 내에서도 유효게 사용할 수 있다. 지역 변수 특정 함수 안에서만 유효한 변수 객체 변수 해당 객체에서만 유효한 변수 객체명.변수

텍스트 필드를 이용한 변수 선언 Text Field Static text Dynamic text Input text 변수 값을 지정할 수 없음 변수 값 지정 변수 값 지정 변수에 들어온 값을 텍스트 박스에 출력 변수에 들어온 값을 텍스트 박스에 출력 텍스트 박스에 입력한 값을 변수에 저장

mouseMove 이벤트를 이용한 마우스 추적(1) 마우스가 움직일 때 마다 발생하는 이벤트 마우스 커서가 움직일 때 마다 현재 마우스 커서의 좌표 값을 전달해 줌 마우스의 좌표 값 표시할 때 필요한 기능 Dynamic Text : Var 변수 이름을 지정 _xmouse, _ymouse 라는 무비 클립 속성 이용 onClipEvent(mouseMove) { _root.txtX = _root._xmouse; _root.txtY = _root._ymouse; }

mouseMove 이벤트를 이용한 마우스 추적(2) P106 실습 정리 무비클립이벤트_자료.fla 오픈 txtX, txtY 변수이름을 가진 Dynamic Text 추가 액션을 넣어주기 위한 빈 무비클립(action) 을 작성해서 추가 Int 함수 : 값을 정수로 표현 onClipEvent (load) { this._visible = false; } onClipEvent (mouseMove) { _root.txtX = int(_root._xmouse); _root.txtY = int(_root._ymouse); fscommand("allowscale", false);

mouseMove 이벤트를 이용한 마우스 추적(3) P109 / P110 활용 실습 정리 106 실습에 추가 updateAfterEvent() : 무비클립에 지정된 이벤트를 수시로 업데이트하는 함수 txtUp/txtDown 이라는 이름을 가진 Dynamic Text 추가 onClipEvent (mouseMove) { …. 생략 updateAfterEvent(); } onClipEvent (mouseMove) { … 추가 _root.txtUp = "No"; _root.txtDown = "No"; } onClipEvent (mouseUp) { _root.txtUp = "Yes"; onClipEvent (mouseDown) { _root.txtDown = "Yes";

문자열/비교 연산자 문자열 연산자는 문자열 데이터에 대한 연산을 수행한다. 비교연산자는 주어진 데이터 값들의 크기를 서로 비교하여 그 결과를 불린(boolean) 형태로 알려준다. 연산자 기능 보기 결과 + 데이터 연결 “Flash” + “MX” “Num” + 10 FlashMX Num10 == != <> <= >= 왼쪽과 오른쪽의 문자열 비교 “a” < “z” “sky” < “sound” “A” < “a” True 연산자 기능 예 내용 == 항등 연산자 If(a==100) A의 값이 문자열 “100” - 실행됨 != 부등 연산자 If(a !=0) A의 값이 문자열 “0” - 비교함 < , > 비교 <= , >=

논리 연산자 논리 연산자는 불린(Boolean) 값을 서로 비교하여 그 결과를 다시 불린 형태로 알려준다. 예제 : 논리연산자.fla 연산자 기능 예 내용 && 논리 And If(a=10 && b=20) { 수식 1; } 변수 a=10이고 20일 때만 수식 1 실행 || 논리 Or If(a=10 b=20) { 변수 a와 b중의 하나만 만족하면 수식 1실행 ! 논리 Not If(!(a<10)) { 변수 a가 10보다 클 때 수식 1 실행

제어문 프로그램의 실행 흐름을 제어하는 문장 주어진 조건에 따라 선택적으로 실행됨 if, switch 조건문 주어진 조건에 따라 선택적으로 실행됨 if, switch 반복문 : 주어진 조건이 만족되는 동안 반복적으로 실행됨 주어진 조건이 만족되는 동안 반복적으로 실행됨 for, while

조건문 switch if 조건문 조건문 switch(표현식){ case 상수식 1: 실행 액션스크립트; break; 주어진 조건이 참인지 거짓인지를 결정한 후 조건에 맞는 액션스크립트 실행 If(조건식){ 실행 액션스크립트 1; } switch(표현식){ case 상수식 1: 실행 액션스크립트; break; case 상수식 2: case 상수식 3: default: 기본 실행 액션스크립트; } switch if If(조건식){ 실행 액션스크립트 1; }else{ 실행 액션스크립트 2; } 조건문 If(조건식){ 실행 액션스크립트 1; }else if(조건식2){ 실행 액션스크립트 2; }else{ 실행 액션스크립트 3; } 다중 IF 문과 switch 문 예제 조건에 만족하는 값을 출력

if 문을 공부하자 (1) 특정한 조건을 만족하는 실행문만 처리 만약 ~ 하면 ~ 하시오 형식 조건 : 비교 연산자 교재 : P112 참조 If(조건식) { 실행1; 실행2; } if (조건식) { 조건식이 참일 경우 실행1; } else { 조건식이 거짓일 경우 실행2; if (조건식1) { 조건식1이 참일 경우 실행1; } else if(조건식2) { 조건식2가 참일 경우 실행2; else { 조건식2가 거짓일 경우 실행3;

if 문을 공부하자 (2) score가 90~100 이면 grade 에 “A” 80-90 이면 “B” 나머지는 “C”로 대입하는 다중 IF 문 조금씩 x좌표 값 만큼 움직이는 코드 움직이는 방향 변경 할 때 If(score>90 && score<=100) { Grade =“A”; } else if(score>80 && score <=90) { Grade =“B”; } else { Grade =“C”; } onClipEvent(enterFrame) { this._x = this._x + speed; } speed = -1 * speed;

if 문을 공부하자 (3) P114 실습 정리 If문_자료.fla 오픈 공 무비클립 : instance Name : ball 번갈아 가면서 크기 변경 코드 삽입 onClipEvent(load){ speed = 5; } onClipEvent(enterFrame){ this._x = this._x + speed; if(this._x > 490){ speed = -1*speed; if(this._x < 60){ if 문 을 수정 if(this._x > 490 || this._x <60) { speed = -1 * speed; } this._xscale = -1*this._xscale;

거꾸로 재생되는 플래시 무비 이전 프레임으로 이동 하는 메소드 이용 prevFrame() : 이전 프레임으로 이동 _currentframe : 현재 프레임 번호 리턴 _totalframes : 전체 프레임 수 리턴 P121 실습 정리 Reverse_data.fla 오픈 무비클립 instance Name : Cat This.prevFrame() /nextFrame() 코드를 변경 if (this._currentframe ==1) { this.gotoAndStop(this._totalframes); } else { this.prevFrame(); } this.gotoAndStop(this._currentFrame-1); this.gotoAndStop(this._currentFrame+1);

startDrag 응용하기 (1) startDrag : 마우스로 드래그 stopDrag : 드래그를 멈춤 형식 target.startDrag(lockCenter, left, top, right, bottom); target : 드래그할 무비 클립 lockcenter : 무비클립의 중심점이 마우스 커서와 일치시킬지 여부를 나타냄 (true: 중심점이 일치, false: 일치 안함) left/top/right/bottom : 드래그될 사각형 영역 (left,top) (right,bottom) _root.window.startDrag(true); _root.cat.startDrag(true,100,100,300, 400);

startDrag 응용하기 (2) P127 실습 정리 startDrag_자료.fla 오픈 스티커 예제 1) 마우스 버튼에 눌려졌는지를 여부를 판단 버튼 심볼 2) startDrag 액션을 이용하여 드래그 무비클립 심볼 스티커 예제 Sticker.fla 오픈 on(press){ this.startDrag(); } on(release){ this.stopDrag();

startDrag 영역 설정하기 (1) 형식 : target.startDrag(lockCenter, left, top, right, bottom); mask 영역안에 보여질 무비클립의 이동 범위 P131/P132 그림 참조 왼쪽 : 이미지가 왼쪽방향으로 더 이상 이동할 수 없을때 마스크 중심 x좌표에서 (드래그되는 이미지- 마스크 이미지)/2 한 만큼 이동시키면 이미지가 드래그가 가능 Left = mask._x -(3-1) 위쪽 : 이미지가 위쪽 방향으로 더 이상 이동할 수 없을때 마스크 중심 y좌표에서 (드래그되는 이미지- 마스크 이미지)/2 한 만큼 이동시키면 이미지가 드래그가 가능 Top = mask._y-(5-4) left mask._x ① ② ③ top mask._y ④ ⑤ ⑥

startDrag 영역 설정하기 (2) 오른쪽 : 이미지가 오른쪽 방향으로 더 이상 이동할 수 없을때 right=mask._x + (3-1) 아래쪽 : 이미지가 아래쪽 방향으로 더 이상 이동할 수 없을때 Bottom : mask._y _(5-4) right mask._x ① ② ③ bottom mask._y ④ ⑤ ⑥

startDrag 영역 설정하기 (3) P133 실습 정리 stargDrag2_자료.fla 요픈 Img : bnImg 버튼 심볼 등록  mcImg 무비클립 심볼 등록 mcImg 무비클립을 더블클릭해서 bnImg 버튼 심볼에 코드 작성 마스크로 사용할 영역 (instance Name :mask)만든 후에 마스크 기능 부여 on (press) { left = _root.mask._x - (this._width - _root.mask._width)/2; right = _root.mask._x + (this._width - _root.mask._width)/2; top = _root.mask._y - (this._height - _root.mask._height)/2; bottom = _root.mask._y + (this._height - _root.mask._height)/2; startDrag(this,false, left, top, right, bottom ); } on (release, releaseOutside) { stopDrag(); (10,10) (390, 290) 이미지가 실질적으로 이동할 범위 (310, 235) (90,65) 이미지의 반지름 : 가로 300, 세로 225

startDrag 영역 설정하기 (4) P137 활용1 실습 정리 문제1_자료.fla 오픈 사각형 이미지 : bnDrag 버튼 심볼 등록  mc무비클립 등록 영역 : box on(press){ left = _root.box._x - _root.box._width/2 + this._width/2; right = _root.box._x + _root.box._width/2 - this._width/2; top = _root.box._y - _root.box._height/2 + this._height/2; bottom = _root.box._y + _root.box._height/2 - this._height/2; this.startDrag(false, left, top, right, bottom); } on(release, releaseOutside){ this.stopDrag(); (10,10) 사각형이 실질적으로 이동할 범위 사각형 반지름 : 가로 12, 세로 12 (310, 260)

startDrag 영역 설정하기 (5) P137 활용2 실습정리 on(press){ left = _root.line._x; 문제2_자료.fla 오픈 선 : mcline 무비 클립 등록 (instance Name : line) 사각형 : bnRect 버튼 등록  mcRect 무비 클립 등록 선과 사각형 선택 : mcSlider 무비 클립 등록 on(press){ left = _root.line._x; top = _root.line._y; right = _root.line._x + _root.line._width; bottom = _root.line._y; this.startDrag(false, left, top, right, bottom); } on(release){ this.stopDrag(); line

마우스 따라 움직이는 무비클립(1) 부드러운 움직임이란 시작지점에서 목표지점으로 이동할때 한번에 이동하지 않고 조금씩 이동하는 것 this : 무비클립 targetX : 무비클립이 최종적으로 이동해야 할 X 좌표 targetY : 최종적으로 이동할 이동할 Y좌표 0.4 값 대신 큰값은 : 움직임의 속도가 빨라짐, 작은값은 속도가 느려짐 duck._x(0) target(100) target – duck._y =100 target – duck._y =60 duck._x(40) ……………….. onClipEvent(enterFrame) { this._x = this._x + 0.4*(targetX - this._x); this._y = this._y + 0.4*(targetY- this._y); }

마우스 따라 움직이는 무비클립(2) P145 실습 정리 준비파일 : mouseTrail_자료.fla 오픈 onClipEvent(load){ speedX = 0.1; speedY = 0.1; } onClipEvent(enterFrame){ this._x = this._x + speedX*(_root._xmouse - this._x); this._y = this._y + speedY*(_root._ymouse - this._y); // target : 현재 마우스의 x, y 좌표

마우스 따라 움직이는 무비클립(3) P146 응용 1 실습 정리 응용1_자료.fla 파일 준비 무비클립 안에  버튼 심볼 <무비클립 심볼 코드 추가> onClipEvent (load) { closedy = -140; openy = 50; flag = 0; target = closedy; } onClipEvent (enterFrame) { this._y = this._y + (target - this._y)*0.5; openy = 20; <무비클립 안에 버튼에 코드 추가 on (release) { if (flag == 0) { target = openy; flag = 1; } else { target = closedy; flag = 0; }}

마우스를 따라 움직이는 무비클립(4) P147 응용 3 실습 정리 응용3-자료.fla 파일 준비 무비클립 : slider1/slider2/slider3 레이어 겹쳐서 배치 (instance name : menu1/menu2/menu3) onClipEvent (load) { target = 0; speed = 0.6; } onClipEvent (enterFrame) { this._x = this._x + (target - this._x)*speed; onClipEvent (load) { target = -800; speed = 0.4; } onClipEvent (enterFrame) { this._x = this._x + (target - this._x)*speed; onClipEvent (load) { target = -1600; speed = 0.5; } onClipEvent (enterFrame) { this._x = this._x + (target - this._x)*speed;

마우스 따라 움직이는 무비클립(4-1) on (rollOver) { _root.menu1.target = -400; } on (rollOver) { _root.menu1.target = 0; _root.menu2.target = -800; _root.menu3.target = -1600; } on (rollOver) { _root.menu1.target = -800; _root.menu2.target = -400; _root.menu3.target = -1200; } on (rollOver) { _root.menu1.target = -1200; _root.menu2.target = -1600; _root.menu3.target = 0; } on (rollOver) { _root.menu1.target = -1600; _root.menu2.target = 0; _root.menu3.target = -400; }

마우스 따라 움직이는 무비클립(5) P147 응용 4 실습 준비 응용4-자료.fla 파일 준비 Dynamic text : txtA onClipEvent (load) { speed = 0.03; } onClipEvent (enterFrame) { this._x = this._x + speed*(_root._xmouse -360); _root.txtA = int(this._x); if (this._x > 720+360) { this._x = 365; } else if (this._x < 360 - 720) { this._x = 355;

마우스 트레일러(1) 움직일 때 잔상 효과 주기 마우스의 위치에 따라 따라다니는 이미지의 위치를 설정 P154 실습 정리 Nabi0의 목표지점은 마우스 좌표값으로 Nabi1의 목표지점은 nabi0의 x,y 좌표값으로 Nabi2의 목표지점은 nabi1의 x,y 좌표값으로 nabi2 nabi1 nabi0 mouse

마우스 트레일러(2) Nabi0의 코드 Nabi1과 nabi2의코드 targetX = _root.nabi0._x -50 onClipEvent (load) { speedX = 0.1; speedY = 0.1; } onClipEvent (enterFrame) { targetX = _root._xmouse - 30; targetY = _root._ymouse; this._x = this._x + speedX*(targetX - this._x); this._y = this._y + speedY*(targetY - this._y); targetX = _root.nabi0._x -50 targetY = _root.nabi0._y; targetX = _root.nabi1._x -35; targetY = _root.nabi1._y;

자유롭게 움직이는 무비(1) 목표 지점을 향해 random하게, 부드럽게 이동 P159 실습 정리 randomMovement_자료.fla 오픈 회색원 무비클립에 코드 작성 onClipEvent(load){ speedx = 0.1; speedy = 0.1; targetX = random(550); targetY = random(400); } onClipEvent(enterFrame){ if(random(8)==1){ this._x = this._x + speedx*(targetX - this._x); this._y = this._y + speedy*(targetY - this._y);

자유롭게 움직이는 무비(2) P(targetx, targey) (this._x, this._y) 문제_자료.fla 오픈 1/20 확률로 이동할 위치를 재설정 하면서 이동 방향을 자유롭게 변경 이동 방향 결정 P(targetx, targey) (this._x, this._y) 형식 : Math.atan2(y, x) 각도값 설정 180/Math.pi  각도 값에 따라 방향 바꾸기 diffX = targetX - this._x; diffY = targetY - this._y; this._rotation = Math.atan2(diffY, diffX)*180/Math.PI;