이 자료는 지난 2013년 Unite Korea의 지국환씨의 Flappy bird 만들기 튜토리얼을 바탕으로 만든 2014년 창원시 스마트 모바일 앱 지원센터의 "게임 및 웹 앱 개발과정"에서 진행한 세미나 자료입니다.
유니티 버전 4.3에서 작성되었습니다.
이 자료의 튜토리얼을 바탕으로 하나하나 제작해가며 Flappy Bird를 만드는 기쁨을 누리시기 바랍니다.
관련 이미지와 소스는 아래 블로그에 있습니다.
http://ivis.cwnu.ac.kr/tc/dongupak/245
이 자료는 2013년 11월 스마트 앱 개발자 포럼 세미나 발표자료 입니다.
애플사에서 iOS 7용 API로 추가한 Sprite Kit은 주로 게임 개발을 위하여 사용되는 스프라이트 API로 단순한 코딩으로 애니메이션을 쉽게 구현할 수 있습니다.
단 iOS에서 주로 사용되는 UIView 객체에는 적용할 수 없습니다. UIView 객체란 iOS의 UIImage, UIButton 등과 같은 기본 UI 객체입니다. Sprite Kit을 사용하게 되면 파티클 효과, 물리 효과, 스프라이트의 애니메이션 효과를 매우 쉽게 구현할 수 있습니다.
이 자료는 Sprite Kit의 특징과 간단한 샘플 코드를 통해 Sprite Kit을 이해할 수 있도록 하였습니다.
유니티 5.1버전에서 플래피 버드만들기 튜토리얼 자료입니다.
아래의 제 자료는 4.3 버전 소스이며 유니티 버전 업그레이드로 인해 소스코드가 다소 수정되었습니다.
하나하나 따라하면서 플래피 버드 게임을 만들 수 있습니다.
http://ivis.cwnu.ac.kr/tc/dongupak/263
스마트벤처 창업학교(대구)에서 스타트업 창업자분들을 대상으로 발표한 유니티 개발 자료입니다.
새로운 내용은 아니고..
기존에 발표 했던 유니티 관련 자료들을 하나로 모은, 총합편입니다.
ps. Unity 2D 소개와 PlayMaker 소개에는 동영상이 포함되어 있는데, 아마 슬라이드셰어에서 재생은 되지 않을듯 합니다. 다운로드 받으시면, 동영상도 보실수 있습니다.
1. 유니티 소개
2. 개발과 출시, 경험에 대한 이야기 (서형석)
3. Unity 2D 살펴 보기
4. 유니티가 당신에게 알려주지 않는 진실 (이득우) - 링크
5. 유니티와 PlayMaker를 이용한 쉽고 빠른 게임 개발
이 자료는 2013년 11월 스마트 앱 개발자 포럼 세미나 발표자료 입니다.
애플사에서 iOS 7용 API로 추가한 Sprite Kit은 주로 게임 개발을 위하여 사용되는 스프라이트 API로 단순한 코딩으로 애니메이션을 쉽게 구현할 수 있습니다.
단 iOS에서 주로 사용되는 UIView 객체에는 적용할 수 없습니다. UIView 객체란 iOS의 UIImage, UIButton 등과 같은 기본 UI 객체입니다. Sprite Kit을 사용하게 되면 파티클 효과, 물리 효과, 스프라이트의 애니메이션 효과를 매우 쉽게 구현할 수 있습니다.
이 자료는 Sprite Kit의 특징과 간단한 샘플 코드를 통해 Sprite Kit을 이해할 수 있도록 하였습니다.
유니티 5.1버전에서 플래피 버드만들기 튜토리얼 자료입니다.
아래의 제 자료는 4.3 버전 소스이며 유니티 버전 업그레이드로 인해 소스코드가 다소 수정되었습니다.
하나하나 따라하면서 플래피 버드 게임을 만들 수 있습니다.
http://ivis.cwnu.ac.kr/tc/dongupak/263
스마트벤처 창업학교(대구)에서 스타트업 창업자분들을 대상으로 발표한 유니티 개발 자료입니다.
새로운 내용은 아니고..
기존에 발표 했던 유니티 관련 자료들을 하나로 모은, 총합편입니다.
ps. Unity 2D 소개와 PlayMaker 소개에는 동영상이 포함되어 있는데, 아마 슬라이드셰어에서 재생은 되지 않을듯 합니다. 다운로드 받으시면, 동영상도 보실수 있습니다.
1. 유니티 소개
2. 개발과 출시, 경험에 대한 이야기 (서형석)
3. Unity 2D 살펴 보기
4. 유니티가 당신에게 알려주지 않는 진실 (이득우) - 링크
5. 유니티와 PlayMaker를 이용한 쉽고 빠른 게임 개발
### 유니티 적응하기
- 유니티 소개
- 유니티 설치
- 화면 구성
- 조작 방법
- 책상 만들기
### 유니티 개념들
#### 씬(Scene)
#### 게임 오브젝트(GameObject)
- Hierarchy 창
- 기본 게임 오브젝트
- Empty Gameobject
- 부모 자식
- Rotating
#### 컴포넌트(Component)
- 돌 굴리기
#### 스크립트(Script)
- Start()
- Update()
- Drag and Drop으로 초기화
- Debug.Log("메시지")
- 큐브를 화살표 키로 이동시키기
- Frame과 Time.deltaTime
* PPT에서 사용한 Icon 출처: Icons made by Pixel perfect, iconixar, Freepik, Nhor Phai, photo3idea_studio from www.flaticon.com
### 유니티 적응하기
- 유니티 소개
- 유니티 설치
- 화면 구성
- 조작 방법
- 책상 만들기
### 유니티 개념들
#### 씬(Scene)
#### 게임 오브젝트(GameObject)
- Hierarchy 창
- 기본 게임 오브젝트
- Empty Gameobject
- 부모 자식
- Rotating
#### 컴포넌트(Component)
- 돌 굴리기
#### 스크립트(Script)
- Start()
- Update()
- Drag and Drop으로 초기화
- Debug.Log("메시지")
- 큐브를 화살표 키로 이동시키기
- Frame과 Time.deltaTime
* PPT에서 사용한 Icon 출처: Icons made by Pixel perfect, iconixar, Freepik, Nhor Phai, photo3idea_studio from www.flaticon.com
NDC2016에서 발표한 카툰999의 포스트모템 발표입니다.
피드백의 힘이라는 주제로 카툰999를 개발하며 어떻게 유저들의 피드백을 구분하고 받아들였는지, 피드백을 반영할 때 주요한 사항들은 무엇이 있는지에 대해 정리해보았습니다. 사실 설명없이 문서만으로는 부족함이 있을수도 있겠지만 많은 분들께 도움이 되길 바랍니다! :)
무...물론 카툰999도 다운받아주시면 감사...!!
2014년 9월부터 12월까지 3개월 단기 프로젝트로 진행되었던 교내 단기 프로젝트의 개발문서이다.
프로젝트를 진행하다보면 기획자로써 어떠한부분이 부족하고 보완해야하는지 많은 고민을 할 수 있어서 좋다.
많은 부분을 녹여내지는 못했지만 코어시스템부분은 내가 생각한데로 녹여낸것 같아 다행이다..
팀원들이 바쁜일정속에 이렇게 따라와주고 완성되어 매우 흡족!? 하다.
2019년 5월 23일 창원대학교 정보통신공학과 특강자료 입니다.
* 일 시 : 2019년 5월 23일 (목) 13:00 ~
* 장 소 : 창원대학교 51호관 328호실
* 강연자 : 한국전자통신연구원(ETRI) 김성수 책임연구원
* 주 최 : 창원산업진흥원
* 주 관 : 창원시 스마트모바일앱지원센터
이번 강의에서는 지난 7개월간 이어진 강의의 마지막 편으로 파이썬이 각광받고 있는 이유와 장점에 대해서 다루어 봅니다.
그리고 저의 개인적인 강의 경험도 알려드릴까 합니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
코딩 스타일은 파이썬의 아주 중요한 요소중 하나입니다.
이번 강의에서는 PEP-8 의 코딩 스타일 가이드 라인에 대해 자세히 살펴보고 pyCharm의 리포맷 기능에 대해서도 알아보겠습니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 강의에서는 방대한 파이썬 표준 라이브러리의 내용과 기능을 살펴보고 파이썬 외부 라이브러리에 대해서도 살펴보겠습니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 강의에서는 파이썬의 패키지를 만들고 활용하는 방법을 알아보겠습니다.
대규모 프로젝트를 수행하기 위해서는 이미 잘 만들어진 코드를 활용하는 것이 중요한데요, 잘 만들어진 코드를 활용하는 방법이 모듈을 사용하는 것입니다.
그러나 모듈의 수가 많아지면 폴더(디렉토리) 아래에 계층적으로 두는 것이 더욱 편리합니다.
한 폴더에 유사한 성격의 여러 모듈을 두고 이 폴더를 가져오는 방식으로 개발을 하는데 이 폴더를 패키지라고 합니다. 본 강의에서는 예제를 통해서 파이썬의 패키지 만드는 방법을 살펴보도록 하겠습니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 강의에서는 람다함수를 필터 함수와 맵 함수에서 사용하는 방법에 대해 살펴보겠습니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 강의에서는 람다함수에 대해 알아보겠습니다.
앞서 배운 함수를 이용하면 필요한 기능의 재사용이 가능하기 때문에, 함수를 정의한 후 필요할 때마다 호출하여 사용하면 편리한데 이러한 방식으로 프로그램을 하는 방식을 모듈화 프로그래밍 이라고 한다.
그러나 가끔씩은 함수를 만들지 않고 함수화된 기능만을 불러 사용하고자 할 경우가 있는데, 이렇게 하면 프로그램을 단순하게 만들 수 있다.
즉 1회용으로 함수를 만들고 싶은데 def xxx(): 과 같은 이름을 짓는 것이 번거롭게 느껴질 경우에 사용하는 것이 람다함수 혹은 람다표현식이다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 강의에서는 파이썬 클래스의 상속에 대해 알아보겠습니다. 소프트웨어 개발시에는 예전에 만들어진 코드를 이용하여 새로운 기능을 개발하는 경우가 많은데요, 클래스의 상속 기능을 사용하면 부모 클래스에서 만들어둔 기능과 속성을 물려받을 수 있습니다.
상속은 객체지향 프로그래밍의 매우 뛰어난 기능으로 이 강의에서는 상속에 대해 알아봅니다. 또한 상속받은 자식이 부모 클래스를 호출하기 위해 사용하는 super() 함수에 대해서도 알아봅니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 강의에서는 파이썬에서 클래스를 정의하는 문법과 self 에 대해 살펴보도록 하겠습니다.
그리고 .(마침표)연산자를 이용하여 인스턴스에서 메소드를 호출하는 방법도 살펴보겠습니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
슬라이싱(slicing)이란 리스트나 튜플, 문자열의 항목을 잘라서 일부만을 가져오는 기능을 말합니다.
보통 list[시작 : 끝] 과 같이 시작항목과 끝 항목의 인덱스를 지정하는 방식으로 사용하는데요, 시작 항목은 포함되지만 끝 항목은 포함되지 않습니다.
이번 강의에서는 파이썬의 슬라이싱을 이용하는 방법을 다양한 예제와 애니메이션으로 살펴보도록 하겠습니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 강의에서는 파이썬의 iterator에 대해 알아보겠습니다.
리스트, 집합, 딕셔너리와 같은 타입이나, 문자열은 for - in 구문을 통해서 반복적으로 하나씩 데이터를 꺼내서 처리할 수 있는데, 이와 같이 여러 개의 데이터를 포함한 타입중에서 반복적으로 하나하나 꺼내어 처리가능한 컬렉션이나 Sequence 들을 순환가능(Iterable) 객체라고 합니다.
iterator는 next() 함수를 구현한 객체를 말하며 next() 함수는 순환가능한 객체의 다음 원소를 반환하는 일을 합니다.
파이썬은 list, dict, set, bytes, tuple, range형이 iterable 형 객체입니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 동영상 강의에서는 리스트 함수에 대해 살펴보도록 하겠습니다. 앞 장 강의에서 min(), max()와 같은 간단한 리스트 함수를 살펴보았는데요, 이번 강의에서는 all(), any(), bool(), filter() 등의 고급 함수의 기능과 그 사용예를 살펴봅니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 강의에서는 파이썬의 리스트 메소드에 대해 살펴보겠습니다.
파이썬의 리스트는 다양한 메소드를 제공하는데, 이 메소드를 통해 리스트의 원소를 변경하거나, 삭제, 추가, 병합, 정렬등의 기능을 할 수 있습니다.
또한, 파이썬의 기본 함수에서는 리스트의 원소의 길이, 최대값, 최소값, 분할을 위한 다양한 함수가 제공됩니다. 예제와 실습을 통해 index(), extend(), insert(), sort(), reverse()등의 메소드와 사용법을 알아보겠습니다.
2. Flappy Bird 란?
• 베트남의 Dong Nguyen이 만든 iOS, 안드로이드용 모바
일 게임
• 중독성이 강하고 아주 단순한 점프액션게임의 한 종류
3. Flappy Bird 란?
• 관련 동영상
• http://www.youtube.com/watch?v=fQoJZuBwrkU
• http://www.youtube.com/watch?v=sf2nFL9Z3v0
• http://www.youtube.com/watch?
v=UZXWp83gtog
4. 순서
• 배경화면 만들기
• FlappyBrid 와 Cactus 만들기
• 충돌반응(GameManager)
• 소리효과
• GUI(점수)
• Intro,GameOver Scene
5. 리소스 받기
• 유니티 Project 만들기
• FlappyBird라는 이름의 프로젝트를 만들자
•
http://ivis.cwnu.ac.kr/tc/dongupak/245
• 홈페이지에 올려 놓은 Resource 파일을 받아 Project 창에
Import한다
• 리소스에는 게임 텍스쳐. 사운드, 애니메이션, iTween이라는
Tweening script가 있다.
8. 배경화면 만들기
리소스 파일의 Assets/Textures/ForLoop에서
bg_2파일을 bgBack에, Ground 파일을
bgGround에 각각 맵핑을 합니다
Position: 위치
Rotation:회전각
Scale:크기
Transparent/Diffuse:하얀색으로 덮힌부분을 처
리해줌
Tilling: 축의 방향으로 이미지의 갯수를 생성
Offset:축의 방향으로 위치를 잡아 해당 지점의 위
치부터 보여줌
9. 배경화면 만들기
리소스 파일의 Assets/Textures/ForLoop에서
bg_2파일을 BG_back에 Ground 파일을
BG_ground에
각각 맵핑을 합니다
14. 배경화면 만들기(ScrollMove)
Project 창에
Create-> C# Script 생성
*ScrollMove.cs
//targetOffset 은 시간에 따라
속력을 곱하므로 시간에 따라
Offset 값이 바뀜
ScrollMove.cs를
bgBack,bgGround
오브젝트에 연결시켜줌
27. Flappy Bird(Bird.cs)
//점프 파워
//새 이미지
// Awake 함수는 스크립트 객체의 라이프타임 동안
단 한번만 호출 게임이 시작 할 때 객체를 초기화 시키는
// 마우스를 클릭했을 경우 점프가 발동
기능
// 새가 점프했을 경우 새의 LookDirection을 변화시켜 Y축으로
회전시켜주는 기능
32. GameManager?
• 게임의 전반적인 동작을 로직하고 관리하는 게임구동의 핵
심적인 역할
• 게임의 준비, 종료, 시작을 모두 처리함.
• 게임이 준비상태인지, 게임중인지, 종료되었는지를 체크하
는 상태변수를 이용하여 각 상태에 따른 화면의 제어와 객체
의 제어를 수행한다
33. 충돌반응(GameManager.cs)
//장애물 오브젝트
ready 변수는 차후 게임이 종료되었는가를
구분하는 변수로 쓰이게 됩니다.
//InvokeRepeating : 메소드를 일정 시간마다
호출시켜주는 함수
ready 변수를 쓰는이유?? 메소드 호출의 중복을 막기위한
코드 또한 차후 게임 진행요소에 기여함
48. 충돌반응(게임시작,종료)
마우스 클릭이 발생하고 ready가 true일때
UseGravity가 활성화되어 게임이 시작된다
GameManger.cs
게임의 종료를 알려주는 변수
게임을 종료시키는
GameOver() 메서드에서는
MakcCactus 메서드의 Invoke를 중지시켜 더
이상 선인장이 화면에 나타나지 않게한다
49. 충돌반응(게임시작,종료)
Game
Play
Game
Ready
Game
End
ready = true
end = false
ready = false
end = false
ready = false
end = true
52. 충돌반응(게임시작,종료)
Bird.cs GameManager.cs
Cactus와 충돌되었을 때 GameManager의
GameOver() 메서드를 호출한다.
호출
Game
Play
Game
End
ready = false
end = false
ready = false
end = true