PART 1 앱 인벤터 프로젝트 05 무당벌레 추적. PART 1 앱 인벤터 프로젝트 05 무당벌레 추적.

Slides:



Advertisements
Similar presentations
일정 관리 다이어리 제작 JSP Programming with a Workbook. 학습 목표  사용자의 일정을 관리할 수 있는 다이어리에 대하여 알아보자. JSP Programming with a Workbook2.
Advertisements

ⓒ 2015 NHN Entertainment Corp. Django 로 만드는 초간단 블로그 시스템운영팀 김영태 개발환경 구축.
기계시스템디자인공학과 기계제도 SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
Timer Department of Digital Contents Sang Il Park.
난이도 : 초급 제1장 앱 인벤터 소개 및 준비.
어서와 Java는 처음이지! 제20장 실전프로젝트 #2.
OpenCV 안드로이드 연동 환경설정 OpenCV-Android 를 다운 받습니다.
(1.1 v) 엔트리교육연구소 엔트리 카드게임 설명서.
대림대학교 2017년도 1학기 강의 왕보현 순서도와 스크래치 5주차 대림대학교 2017년도 1학기 강의 왕보현
순차, 조건, 반복 이점숙 농대 뒷편 언덕을 넘어가며 같은 문제 다르게 해결 순차, 조건, 반복 이점숙
순차, 조건, 반복 이점숙 같은 문제 다르게 해결하기 순차, 조건, 반복 이점숙
풀 다운 메뉴 File > New “intent” 이름을 넣고 OK 를 클릭한다.
Image & Video processing
코크파트너 설치 가이드 Window 7.
2d 게임 프로그래밍 기말 프로젝트 1차 발표 김대현.
CUDA Setting : Install & Compile
네트워크 프로그래밍 및 실습.
나민영 서경대학교 컴퓨터공학과 CGVR Lab 같이만들어보자 5주차 OpenCV 설정 및 기초.
Windows 8 Ksystem G&I 설치.
1. C++ 시작하기.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
컴퓨터 프로그래밍 : 실습3 2장 데이터와 식.
스크래치 언어 이해 스크래치 이용법 습득 고양이가 말을 하며 움직이는 예제 작성
JA A V W. 03.
어서와 C언어는 처음이지 제14장.
자바응용.
10장 tkinter로 GUI 만들기.
영상처리 실습 인공지능연구실.
PART 1 앱 인벤터 프로젝트 10 퀴즈 만들기와 퀴즈 풀기. PART 1 앱 인벤터 프로젝트 10 퀴즈 만들기와 퀴즈 풀기.
LIT-GenAppSetup ※ Texting+ 클라이언트 프로그램은 제품 인증을 받은 제품입니다.
2차시: 달의 공전 지구과학
2 보안 1 도구 윈도우 XP > 온밀크 프로그램 설치 장애 (보안 설정) / 품목추가 깨질 때 장애증상
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
인문학 동영상 강의 사용자 매뉴얼 (PC & Mobile).
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
USN(Ubiquitous Sensor Network)
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
7. 스프라이트의 동작 순서 정하기 7.1 타이머에 의해 실행 제한하기 (1)타이머 (timer)
Python Turtle 민경현.
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
Moving Control in Web using Ajax Toolkit
1차시: 낮과 밤이 생기는 원리 지구과학
Eclipse CDT에서 프로젝트를 Export 하고 Import 하는 방법
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
위치 에너지(2) 들어 올리기만 해도 에너지가 생겨. 탄성력에 의한 위치 에너지.
학습 주제 p 운동 에너지란 무엇일까?(2).
PART 1 앱 인벤터 프로젝트 02 페인트 통. PART 1 앱 인벤터 프로젝트 02 페인트 통.
빌드 성공.
( Windows Service Application Debugging )
PART 1 앱 인벤터 프로젝트 12 원격 로봇. PART 1 앱 인벤터 프로젝트 12 원격 로봇.
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
OpenCV 설정 2.21 만든이 딩딩.
STS 또는 Eclipse 에서 프로젝트를 Export 하고 Import 하는 방법
영상처리 실습 (OpenCV + MFC) Chonbuk National University A.I. Lab.
3D 프린팅 프로그래밍 03 – 도형 회전 (손잡이컵 만들기) 강사: 김영준 목원대학교 겸임교수.
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
웹과 모바일 홈페이지의 이해와 제작 폰트_레이아웃
9 브라우저 객체 모델.
김덕용 게임 엔진론 Project 2차발표.
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
과제물 3호 3번 문제 설명자료.
워드프로세서 실기 10일차 강 사 : 박영민.
Power Point 예제 디자인 적용 (서식) - (디자인적용) - (원하는 디자인 선택)
그래픽 컨트롤 (Graphic Control)
오늘의 강의 제목을 입력하세요 소 속 : 인문대학 국어국문학과 이 름 : 홍길동 교수 1.
타이머를 시작하려면 슬라이드 쇼 메뉴에서 쇼 보기를 클릭하십시오.
BoardGame 보드게임 따라가기.
Presentation transcript:

PART 1 앱 인벤터 프로젝트 05 무당벌레 추적

게임 앱의 인기 성공 스토리 <무당벌레 추적> 앱을 만들어보자. <앵그리 버드> 출시 첫 해 5천만 건 이상 다운로드 <무당벌레 추적> 앱을 만들어보자. 폰을 기울여 무당벌레를 움직인다. 1인칭 게임: 사용자는 무당벌레가 되어 게임에 몰입

무엇을 만드는가? <무당벌레 추적>에서 사용자가 할 수 있는 동작들 폰을 기울여 무당벌레를 이동시킴 생명력은 에너지 막대를 통해 확인 진딧물을 잡아먹으면 에너지 회복 자신을 잡아먹으려는 개구리를 피해 다님

무엇을 배우는가? <무당벌레 추적>을 만들며 배우는 것들 여러 개의 ImageSprite를 사용하면 충돌 알아냄 OrientationSensor 컴포넌트로 폰의 기울음 알아내고, ImageSprite 위치 조정 ImageSprite의 영상을 바꿈 Canvas 컴포넌트에 선분을 그림 하나의 Clock 컴포넌트로 여러 이벤트를 동시 제어 변수를 사용하여 상태 표시 (무당벌레의 에너지 상태) 매개변수를 가진 프로시저 and 블록

프로젝트 생성 프로젝트 만들고, 라이브 테스팅 연결 프로젝트 이름은 “LadybugChase” Screen1의 Title 속성은 “무당벌레 추적” 무당벌레, 진딧물, 죽은 무당벌레, 개구리 이미지와 개구리 울음소리 파일 다운로드 파일을 Media 영역에 추가

컴포넌트 설계 <무당벌레 추적> 앱이 사용할 컴포넌트 목록

컴포넌트 초기 배치 점진적 프로그래밍 기법 적용 프로그램 일부분을 만들어 테스트한 후, 제대로 작동하면 다른 부분으로 확장하는 방식 여기서는 먼저 무당벌레를 이동시키는 부분을 만들어봄 Canvas 컴포넌트 끌어옴 ImageSprite 하나 끌어옴 OrientationSensor 끌어옴 Clock 끌어옴

컴포넌트 초기 배치 ImageSprite(Ladybug)의 속성들 Interval: 이동 주기, 여기서는 10밀리 초로 설정 Heading: 이동하는 방향을 0~360 사이의 각도 단위로 표시 (0은 오른쪽, 90은 위쪽, 180 은 왼쪽, 270은 아래쪽) Speed: 매 주기마다 이동할 거리

무당벌레 이동시키기 UpdateLadybug 프로시저 OrientationSensor 사용 Magnitude: 기운 정도를 0~1 범위로 표시 Angle: 기운 방향을 각도 단위로 표시 Speed는 Magnitude에 100을 곱했으므로 0~100 화소로 설정됨

에너지 막대 표시하기 Canvas 컴포넌트 추가 에너지 변수 생성하기 Width는 Fill parent, Height는 1화소로 설정 (두께가 1인 막대) 빨간 막대를 그려 넣어 에너지 수준 표시 에너지 변수 생성하기

에너지 막대 표시하기 에너지 막대 그리기 절차 (0,0)에서 (EnenrgyCanvas.Width,0)까지 하얀 선 그려, 이전 에너지 지움 (0,0)에서 (enenrgy,0)까지 빨간 선 그려, 새로운 에너지 표시 ‘선을 그린다’는 같은 일을 하는데 단지 선의 길이와 색깔만 다름  매개변수를 가진 프 로시저

에너지 막대 표시하기 DrawEnergyLine 프로시저를 만드는 절차 to procedure do 블록을 끌어옴 파란 창을 클릭하여 [그림 5-6] 띄움 매개변수 color 추가 매개변수 length 추가 창을 닫음 do 부분을 [그림 5-7]처럼 채움

에너지 막대 표시하기 DisplayEnergy 프로시저 리팩토링 DrawEnergyLine을 두 번 호출하여 에너지 막대를 새로 그려줌 리팩토링

굶어죽음 처리하기 게임 종료를 처리하는 GameOver 프로시저 Enabled 속성을 false로 설정하여 스프라이트의 항위 중단 스프라이트의 Picture를 죽은 무당벌레 이미지로 바꾸어 게임 종료 효과 얻음

굶어죽음 처리하기 UpdateLadybug 프로시저의 확장 에너지 수준을 하나 줄인다. 새로운 에너지 막대를 그린다. energy가 0이면 게임을 끝낸다.

굶어죽음 처리하기

진딧물 추가하기 진딧물로 게임을 더 신나게! 진딧물을 나타내는 ImageSprite 추가 게임을 좀 더 신나게 하려면 진딧물이 캔버스 여기저기에 나타나야 함 무당벌레가 진딧물을 먹으면 에너지 막대는 1만큼 증가 잡아 먹히면 순간 사라졌다가 임의 위치에 다시 나타남 진딧물을 나타내는 ImageSprite 추가 Picture를 진딧물 이미지로 설정 Interval을 10으로 설정하여 무당벌레와 마찬가지로 10밀리 초마다 이동 Speed를 2로 설정하여 무당벌레가 잡을 수 있을 정도로 조정

진딧물 추가하기 진딧물 이동시키기 실험 결과 대략 50밀리 초에 한 번씩 방향을 바꾸면 좀 더 재미있는 게임 Clock1의 타이머가 10밀리 초로 설정되어 있으므로, 타이머 다섯 번 반복에 해당 두 가지 구현 방법 TimerInterval이 50밀리 초인 또 다른 Clock 사용 그냥 Clock1을 사용하며, random fraction 블록으로 조정하는 방법  여기서는 이 방법 사용

진딧물 추가하기 프로그램은 어떻게 작동하는가? 타이머가 끝나면 Clock1.Timer 이벤트 발생  10밀리 초로 설정되어 있으므로 이벤트가 초당 100번 발생 이벤트가 발생하면 UpdateLadybug와 UpdateAphid를 순서대로 호출 UpdateAphid는 0~1 사이의 난수 생성 난수가 0.2보다 작으면(1/5 확률로 발생) 진딧물 방향을 0~360도 사이로 바꿈

무당벌레의 진딧물 먹기 EatAphid 프로시저가 할 일 음식을 먹었으므로 에너지를 50만큼 증가 진딧물은 먹혔으므로 사라짐 (ImageSprite가 실제로 사라지는 것이 아니라 Visible 속성 을 false로 설정) 진딧물의 Enabled 속성을 false로 바꿔 움직임 멈춤 잠시 후 임의 위치에 진딧물 다시 나타남

무당벌레와 진딧물의 충돌 감지하기 프로그램은 어떻게 작동하는가? Ladybug.CollidedWith 이벤트는 무당벌레가 다른 ImageSprite와 충돌할 때마다 발생 매개변수 other에는 충돌한 ImageSprite의 이름이 저장되어 있음 현재는 다른 ImageSprite가 Aphid뿐이므로 굳이 누구와 충돌했는지 확인 불필요  하지만 명시적 으로 확인하는 방어적 프로그래밍이 바람직함 Aphid의 Visible 속성도 확인해야 한다.  왜?

무당벌레와 진딧물의 충돌 감지하기

진딧물 재등장시키기 UpdateAphid 확장 프로그램은 어떻게 작동하는가? visible이 참이어서 진딧물이 살아있을 때, then에서 20%확률로 방향을 바꿈 진딧물이 죽은 상태이면, else에서 5%확률로 (20번에 한번 꼴) 재등장

[다시 하기] 버튼 추가하기

개구리의 무당벌레 추적하기 개구리를 나타내는 스프라이트 Frog 추가 프로그램은 어떻게 작동하는가? Interval을 10, Speed를 1로 설정하여 다른 것들보다 느린 움직임 효과 Timer에 call UpdateFrog 추가 프로그램은 어떻게 작동하는가? 10% 확률로 개구리 방향을 무당벌레 쪽으로 돌려놓음 방향 계산은 아크탄젠트 atan2 이용

무당벌레 잡아먹기 Ladybug.CollidedWith 확장 진딧물 뿐만 아니라 개구리와 충돌도 처리할 수 있게 확장

무당벌레 귀환시키기 RestartButton.Click 확장

소리와 진동 효과 추가 밋밋한 게임에 소리와 진동 효과 추가해 좀 더 재미있게!

전체 앱 프로그램

전체 앱 프로그램

전체 앱 프로그램

확장해 보기