학과 샘플강의

Cocos2d-x - 총 16시간 20분 / 강의당평균 : 49분0초

알지오 2016. 9. 5. 14:10



Cocos2d-x
전체 : 16시간 20분 / 강의당평균 : 49분0초

01 Label
화면에 문자를 표시하는 레이블에 대해서 설명합니다.
44분
책갈피 : [00:13] cocos2d의 기능을 알고 활용하기 / [00:38] Label 알아보기 / [01:03] 예제 클래스 구성 확인 / [01:42] LayerColor클래스를 상속받아서 사용 / [02:00] Scene과 Layer / [02:23] 디렉터 / [02:43] 디렉터의 가장 큰 역할 / [03:44] init함수 virtual선언 / [04:00] 함수 구현 살펴보기 / [04:15] create함수 살펴보기 / [04:56] 모든 객체를 autorelease에 등록해서 사용 / [05:30] scene을 생성하는 함수 / [06:24] create함수를 이용해 scene을 생성하고 layer도 생성하는 것 확인 / [07:00] scene을 동작시키는 함수 runWithScene / [07:26] Label예제의 초기화 부분 살펴보기 / [08:00] 초기화 함수를 가상함수로 설정 / [08:22] 부모 클래스에 초기화 함수 호출 / [08:58] 창의 크기를 얻어오는 구문 / [09:20] Label을 생성하는 부분 / [10:16] 위치를 지정하는 함수 / [10:41] 색과 투명도 지정하는 함수 / [11:00] 생성한 label을 layer의 자식으로 추가 / [11:18] 실행 / [12:09] 레이블의 다양한 기능 살펴보기 / [12:50] 메크로 함수 선언 / [13:03] 메크로 구성 확인하기 / [14:07] 클래스 정의부분 살펴보기 / [14:37] namespace가 define으로 정의 / [15:18] createScene함수 / [15:45] init함수 / [16:25] LabelTTF클래스를 이용해서 객체 생성 / [16:52] 색을 지정하는 순서와 종류 방법 알아보기 / [17:41] LabelTTF객체를 생성하는 방법이 다른 것 확인 / [17:52] 인자를 통해 확인 / [18:26] Size지정 / [19:07] 수평,수직 기준 정렬 방법 지정 / [19:48] 정렬 방법 정의부분 살펴보기 / [20:30] 위치와 색상 지정 / [21:32] 실행을 통해 결과 살펴보기 / [22:37] 레이블의 폰트 다양하게 적용 / [23:07] 클래스 정의부분 살펴보기 / [23:33] init함수 살펴보기 / [24:00] 첫번째 레이블 생성 부분 / [24:21] 프로젝트폴더-리소스폴더-리소스 / [25:00] 동일한 방식으로 5개의 레이블 생성 / [25:22] 실행 결과 확인 / [25:52] LabelTTF외의 방법으로 레이블 생성 / [26:22] LabelBMFont클래스 이용 / [26:45] 예제에서 사용된 BitmapFont / [27:48] LabelAtlas클래스 이용 / [28:26] 인자값 숫자로 입력 / [29:10] 캐릭터맵을 제작할 때는 일정한 크기와 간격으로 제작 / [29:32] 실행 결과 확인 / [30:18] LabelTTF를 많이 사용하는 이유 / [30:48] 비트맵폰트와 캐릭터맵 방식 / [31:37] 비트맵폰트와 캐릭터맵 색상변경 기능 / [32:00] 실행 후 색상변경 결과 확인 / [32:30] 레이블에 다양한 효과 적용 / [32:45] 새로운 배경 생성 / [33:37] createWithTTF함수를 이용해서 객체 생성 / [34:07] create함수와의 차이점 / [34:52] SetAnchorPoint함수 이용 / [36:04] TTFConfig설정을 기반으로 레이블 생성 / [36:28] fontFilePath에 font경로 지정 / [36:42] glyphs설정(문자 설정) / [37:19] distanceFieldEnabled변수 / [37:37] OutlineSize / [38:15] TTFConfig를 이용해서 레이블 생성 / [38:35] 첫번째 인자로 방금 생성한 설정값 입력 / [39:15] enableOutline함수를 이용해 outline활성화 / [39:43] cocos2d에 정의된 색상들 / [40:00] Glow효과 / [40:30] Glow효과는 enableGlow함수를 이용해 활성화 / [40:49] Shadow효과 / [41:07] 인자값 입력 / [41:37] 실행 결과 확인

02 Sprite과 Menu
화면에 이미지를 표시하는 스프라이트와 다양한 버튼으로 이루어진 메뉴에 대해서 설명합니다.
44분
책갈피 : [00:08] Sprite의 사용방법 / [00:41] Sprite는 Sprite클래스를 통해 생성 / [00:58] 인자값은 이미지의 경로와 파일명 / [01:25] sprite의 위치 변경 후 레이어의 자식으로 추가 / [02:05] 두번째 sprite의 위치 변경 / [02:15] 실행 결과 확인 / [02:43] 예제를 이용한 테스트 / [03:15] 두번째 sprite가 첫번째 sprite위에 위치한 것 확인 / [03:34] sprite생성 순서 변경 / [04:39] 순서를 정의하는 방법 / [05:09] z축 정렬을 위해 ZOrder사용 / [05:40] 실행 결과 확인 / [06:00] ZOrder의 값 변경 / [06:28] ZOrder의 값이 클수록 위에 위치 / [07:00] cocos2d-x의 부모와 자식관계 살펴보기 / [07:30] Parent Sprite생성 / [07:57] setTextureRect함수를 이용해 texture의 크기 변경 / [08:28] Child Sprite생성 / [09:09] 구분을 쉽게 하기위해 색상 설정 / [09:28] 실행 결과 확인 / [10:22] 2개의 sprite를 이용해 부모와 자식의 관계 정의 / [10:52] 부모 sprite에 자식으로 추가 / [11:18] 실행 결과 확인 / [12:09] 자식의 위치 변경 / [12:41] 부모와 자식의 관계는 좌표계와 관련 / [13:33] Parent Sprite의 위치를 0,0으로 변경할 경우 / [14:13] cocos2d-x 좌표계 정의 / [14:31] 월드좌표계 / [15:37] 로컬좌표계 / [16:33] 자식으로 추가 된다는 것의 의미 / [18:11] 레이어 위치 변경 / [18:52] layer 또한 Scene의 자식 / [19:22] scale테스트-부모의 가로 크기 늘리기 / [19:56] 자식 sprite의 크기도 늘어난 것 확인 / [20:41] AnchorPoint알아보기 / [21:03] AnchorPoint는 로컬좌표계의 위치 / [21:29] sprite의 위치 0,0으로 변경 / [22:07] AnchorPoint를 0,0으로 변경 / [22:56] 이미지의 이동, 회전, 확대, 축소에도 영향 / [23:26] Menu에 대해 살펴보기 / [24:07] 버튼을 클릭 했을 때 호출될 콜백함수 3개 선언 / [25:18] Menu Item설정 / [25:51] 버튼에 이미지 사용 / [26:26] CC_CALLBACK_1은 콜백함수를 생성해주는 메크로 함수 / [26:52] log함수 / [27:29] 동일한 방식으로 2개의 MenuItem추가 생성 / [27:45] Menu는 Menu클래스를 이용해 생성 / [28:15] 아이템을 수직으로 배치하는 옵션 / [28:41] 실행 결과 확인 / [29:10] 각 버튼의 동작 확인 / [29:44] Menu와 MenuItem의 위치관계 설명 / [30:03] MenuItem생성 후 콜백함수 지정 / [30:18] MenuItem의 위치 지정 / [30:37] MenuItem을 이용해 Menu생성 / [31:02] menu의 위치 변경 / [31:30] menu의 색상 변경 / [32:22] Tag기능 살펴보기 / [32:57] 이미지가 아닌 폰트를 이용한 menuItem생성 / [33:19] 첫번째 인자로 표시할 내용 지정 / [34:05] 각 menuItem마다 setTag함수를 이용해 Tag지정 / [34:22] 콜백함수 살펴보기 / [35:07] getTag함수 호출 / [35:28] Tag번호를 log함수를 통해 출력 / [36:04] 가로로 정렬해주는 함수 이용 / [36:22] 디버깅모드로 빌드 / [36:52] 각 menu를 클릭해서 결과 확인 / [37:37] sprite와 menu, tag를 이용해 예제 만들기 / [37:52] MenuItemFont클래스를 이용해 객체 생성 / [38:52] doClick함수 구성 살펴보기 / [39:14] tag추출에 사용되는 getTag함수 / [39:59] setTag함수를 이용해 tag지정 / [40:45] getChildByTag함수 / [41:06] removeChild함수를 이용해 찾은 자식 삭제 / [41:27] removeChildByTag함수 / [42:04] 예외처리 / [42:43] 태그번호 주의해서 지정 / [43:07] 실행 결과 확인

03 Action part1
오브젝트를 움직이게 만드는 액션에 대해서 설명합니다.
47분
책갈피 : [00:07] action 살펴보기 / [01:06] 액션 테스트를 위해 sprite객체 선언 / [01:37] Menu생성 / [02:00] MenuItemFont클래스 사용 / [02:28] MenuItem을 사용해서 Menu생성 / [03:04] Character생성 / [03:29] MenuCallback함수 살펴보기 / [03:58] 이동과 관련된 액션 / [04:14] Move액션 / [04:30] MoveBy클래스 / [05:30] MoveTo클래스 / [06:09] position을 인자로 받는 것 확인 / [06:46] 실행 / [07:15] MoveBy와 MoveTo의 차이 / [08:07] 2개의 액션이 끝나는 시간은 동일 / [08:33] action한번 더 실행 / [09:16] Jump액션 / [09:31] JumpBy와 JumpTo / [09:56] 인자값 확인 / [11:18] 실행 / [11:45] action한번 더 실행 / [12:22] Bezier액션 / [12:54] Bezier곡선 생성과 활용법 / [13:24] 2개의 controlpoint지정 / [13:50] 작성한 point 그림으로 설명 / [15:35] BezierBy와 BezierTo / [16:06] 실행 / [16:30] action한번 더 실행 / [17:18] Place액션 / [18:03] 실행 / [19:00] 두번째 예제 / [19:29] 액션을 실행시킬 sprite 2개 선언 / [19:47] Menu생성 / [20:14] Character생성 / [20:33] Scale액션 / [20:44] ScaleBy클래스(상대크기) / [21:17] ScaleTo클래스(절대크기) / [22:00] 실행 / [22:18] 액션 한번 더 실행 / [22:37] Rotate액션 / [22:56] RotateBy와 RotateTo클래스 / [23:26] 회전 각 입력 / [23:56] 실행 / [24:15] 액션 한번 더 실행 / [24:37] 주의점 / [25:06] RotateBy와 RotateTo의 회전값 변경 / [25:22] 실행 / [26:10] AnchorPoint와 액션의 관계 / [26:22] RotateBy액션 사용-actor의 anchorPorit를 0,0으로 지정 / [26:41] 실행 / [27:15] 한쪽만 회전하는 이유 / [27:48] rotateBy에 clone함수 호출 / [27:56] 실행 확인 / [28:15] 회전하는 모양 확인 / [28:48] 기준점을 축으로 회전 / [29:10] Scale액션 실행 / [30:07] sprite가 화면에 표시될 때 효과 / [30:25] isOn이라는 bool변수 / [31:07] isOn변수 초기화 / [31:18] Blink액션 / [31:48] 인자값 지정 / [32:13] 실행 / [32:35] FadeOut/In액션 / [33:07] 인자값-시간 지정 / [34:04] 2개의 sprite에 같은 액션 지정 / [34:19] 실행 / [35:15] Tint액션 / [35:45] TintBy클래스 / [36:00] TintTo클래스 / [36:30] TintBy클래스를 이용해 액션 생성 / [37:12] TintTo클래스를 이용해 액션 생성 / [37:52] 실행 / [38:22] 액션 한번 더 실행 / [39:22] 액션을 반대로 수행하는 예제 / [39:42] Label객체 선언 / [40:20] MenuItem을 기반으로 Menu생성 / [40:35] Character생성 / [41:58] MenuCallback함수 살펴보기 / [42:07] reverse함수 사용 / [42:29] actor는 MoveBy액션을 그대로 사용 / [42:44] actress는 MoveBy액션을 반대로 사용 / [43:00] 실행 / [43:52] ScaleBy클래스를 이용해 액션 생성 / [44:30] 실행 / [45:05] RotateBy클래스를 이용해 액션 생성 / [45:19] 각도를 270도로 설정한 이유 / [46:00] 실행

04 Action part2
오브젝트를 움직이게 만드는 액션에 대해서 설명합니다.
59분
책갈피 : [00:10] 복잡한 액신 기능 구현 / [00:27] 복합 액션 / [00:51] Actor 하나만 사용 / [01:49] MenuItem생성 / [02:07] 인자값은 각 기능들의 이름 / [02:42] 모든 MenuItem의 컬러 통일 / [02:52] MenuItem을 이용해 Menu생성 / [03:23] Reset함수 / [03:53] Remove / [04:24] Add Character / [04:55] 액션 살펴보기 / [05:00] Sequence / [05:28] Sequence생성을 위해 Sequence클래스 사용 / [05:57] MoveBy / [06:15] RotateBy / [06:30] 복합 액션은 기존 액션과 동일한 방법으로 오브젝트에 전달 / [06:46] 실행 확인 / [07:46] Spawn / [08:11] 액션마다 수행 시간을 다르게 설정 / [08:52] JumpBy / [09:09] RotateBy / [09:41] 실행 확인 / [10:41] Reverse / [11:09] MoveBy클래스 사용 / [11:46] 실행 확인 / [12:28] Repeat / [12:54] MoveBy클래스 사용 / [13:11] reverse함수 사용 / [13:24] Sequence클래스를 사용해서 복합 액션으로 생성 / [13:52] Sequence복합 액션을 반복하게 만들기 / [14:33] 실행 확인 / [15:15] RepeatForever / [16:11] 무한 반복되는 액션 / [16:18] 실행 확인 / [16:52] DelayTime / [17:07] RotateTo클래스 사용 / [17:52] DelayTime클래스의 create함수의 인자 / [18:14] 생성된 Sequence의 순서 / [18:52] 실행 확인 / [20:02] 특정 함수를 호출하고 싶을 경우 / [20:15] this객체에서 액션 실행 / [20:33] CallFunc클래스 사용해서 콜백함수 지정 / [22:22] 액션의 수행 속도를 수정하는 EaseActions살펴보기 / [23:00] 4개의 Sprite사용 / [23:36] MenuItem생성 / [24:18] 콜백함수 지정 부분 / [26:17] Character / [27:26] Reset함수 / [28:07] EaseActions / [28:26] easeIn과 easeOut / [28:56] easeInOut / [29:33] MoveBy액션 / [29:48] EaseIn / [30:33] EaseOut과 EaseInOut / [31:11] 실행 확인 / [33:07] EaseExponentialActions / [33:37] EaseExponentialIn, EaseExponentialOut, EaseExponentialInOut클래스 사용 / [34:27] 실행 확인 / [35:00] EaseSineActions / [35:21] EaseSineIn, EaseSineOut, EaseSineInOut클래스 사용 / [35:58] 실행 확인 / [36:30] Ease, EaseExponential, EaseSine의 차이점 / [37:07] EaseElasticActions / [37:52] EaseElasticIn, EaseElasticOut, EaseElasticInOut클래스 사용 / [38:22] EaseElastic함수의 인자값 / [39:07] cocos2d-x에서 지정하는 기본 값 / [40:07] 실행 확인 / [40:36] EaseBounceActions / [41:07] EaseBounceIn, EaseBounceOut, EaseBounceInOut클래스 사용 / [41:52] 실행 확인 / [42:13] EaseElastic과 비교 / [42:42] EaseBackActions / [44:00] EaseBackIn, EaseBackOut, EaseBackInOut클래스 사용 / [44:29] 실행 확인 / [45:22] SpeedAction / [45:45] Speed클래스를 사용해서 액션 생성 / [46:04] 실행 확인 / [47:34] CallFunc액션 살펴보기 / [48:07] 콜백함수 3개 준비 / [48:44] Node와 data를 파라미터로 추가 / [49:37] MenuCallback함수 살펴보기 / [49:58] removeChildByTag함수 사용 / [51:20] Actor에 setVisible함수 사용 / [51:45] Sequence액션 생성 / [53:06] 첫번째 CallFunc액션 호출 / [53:50] CallFuncWithNode함수 호출 / [54:28] CallFuncWithNodeAndData함수 호출 / [55:07] CallFuncNone함수 살펴보기 / [55:44] CallFuncWithNode함수 살펴보기 / [56:52] CallFuncWithNodeAndData함수 살펴보기 / [58:07] 디버깅모드로 빌드 / [58:27] 액션 실행 확인

05 Animation
애니메이션과 애니메이션의 최적화 방법에 대해서 설명합니다.
51분
책갈피 : [00:06] 애니메이션 / [01:02] Sprite를 확장한 형태로 생성 / [01:44] Animation을 실행시킬 객체 / [02:46] 애니메이션 관리 살펴보기 / [03:06] Frame / [03:38] Animation을 Animate를 이용해 동작 / [04:30] 소스코드 확인-Animation생성 / [05:00] setDelayPerUnit함수 사용 / [05:39] addSpriteFrameWithFile함수 사용 / [06:00] 개별적으로 존재하는 이미지 / [06:40] Animate클래스 이용 / [07:25] RepeatForever클래스를 사용해서 무한 반복 / [07:39] 실행 확인 / [08:45] 리소스 관리 / [09:05] 개별적인 이미지를 하나의 이미지 제작 / [10:11] 스프라이트시트를 사용해 스프라이트 생성 / [10:39] Texture / [11:05] Texture를 생성하는 방법 / [11:50] Animation생성 / [12:11] for문 사용 / [13:09] addSpriteFrameWithTexture함수 사용 / [13:43] 개별이미지의 위치와 크기를 계산을 통해 지정 / [14:24] 애니메이션을 실행시킬 Actor생성 / [15:33] Actor가 실행시킬 Animate생성 / [16:15] 실행 확인 / [18:22] 로드하는 구문 변경 / [18:47] createWithTexture함수 사용 / [19:48] 스프라이트시트를 효율적으로 활용하는 방법 / [21:33] 빈공간을 최소화해서 배치되어 있는 이미지 / [21:56] PLIST / [23:51] SpriteFrameCache클래스 / [24:18] Plist파일 불러오기 / [24:55] plist의 정보를 이용해서 Frame생성 / [25:11] SpriteFrame백터 선언 / [25:48] 문달어진 문자열을 이용해 Frame생성 / [26:18] 생성된 Frame을 벡터에 pushBack함수를 사용해 추가 / [26:36] 액션을 수행할 Actor생성 / [27:11] Animation생성 / [27:47] Animate생성 / [28:11] 실행 확인 / [29:14] SpriteFrameCache와 TextureCache / [29:29] ImageLoaded함수 / [30:06] SpriteFrameCache를 사용해 Sprite객체 생성 / [30:48] 첫번째 plist파일 불러오기 / [31:25] 두번째 plist파일 불러오기 / [31:44] 일반 png이미지 불러오기 / [32:15] addSpriteFrame함수 사용 / [33:04] Cache에 들어있는 내용을 가지고 객체 생성 / [33:21] createWithSpriteFrameName함수를 사용해 Sprite생성 / [34:07] 두번째 Sprite생성 / [35:45] TextureCache를 이용하는 방법 / [36:45] addImage함수를 사용해 이미지 추가 / [37:06] createWithTexture함수를 사용해 Sprite생성 / [38:30] addImageAsync함수 사용 / [39:07] 인자값 확인 / [39:52] ImageLoaded함수 살펴보기 / [40:35] Sender가 전달되었는지 표시해주는 log추가 / [40:52] 디버깅모드로 빌드 / [41:34] SpriteFrameCache방식 / [41:52] TextureCache방식 / [42:30] SpriteBatchNode / [43:57] SpriteBatchNode클래스에 create함수를 사용해 batchNode생성 / [45:37] Sprite클래스에 createWithTexture함수 사용 / [48:05] 실행 확인 / [49:37] LayerColor를 Layer로 변경 / [50:05] 실행 확인

06 Touch part1
입력 방법 중 하나인 터치에 대해서 설명합니다.
40분
책갈피 : [00:08] Touch처리 방법 구현 / [00:58] Touch와 관련된 이벤트 리스너 / [01:15] 싱글터치 이벤트 리스너에 관한 예제 / [01:42] Sprite객체 선언 / [01:56] onEnter와 onExit함수 / [02:15] onTouchBegan, onTouchMoved, onTouchEnded, onTouchCancelled함수 / [03:30] onEnter함수 살펴보기 / [04:00] 싱글터치 리스너 생성 / [04:29] setSwallowTouches설정 / [05:15] 각 터치 이벤트에 콜백함수 등록 / [05:30] CC_CALLBACK_2사용 / [06:44] onExit함수 살펴보기 / [07:00] 사용했던 이벤트 리스너 제거 / [07:43] onEnter함수와의 차이 / [08:18] onTouchBegan함수 / [08:52] touchPoint는 touch가 이루어지는 곳의 좌표값 / [10:11] onTouchMoved함수 / [10:54] onTouchEnded함수 / [11:20] touch에 getLocation함수 사용 / [11:48] onTouchCancelled함수 / [12:33] 실행 확인 / [13:01] 터치한 부분 좌표 표시 확인 / [14:24] 선택되는 위치의 좌표값 / [14:56] 멀티터치 이벤트 리스너에 관한 예제 / [15:22] Sprite객체 선언 / [15:33] 이벤트를 받을 함수 지정 / [15:58] 함수명 복수로 변경 / [16:18] 인자도 vector로 변경 / [17:02] init함수 살펴보기 / [17:25] onEnter함수 / [18:07] 리스너의 이름도 복수로 변경 / [18:48] onExit함수 / [19:29] onTouchesBegan함수 / [20:00] touch에 getLocation함수 사용 / [20:56] 생성된 좌표값 log함수로 출력 / [21:55] onTouchesMoved함수 / [22:44] onTouchesEnded함수 / [23:03] onTouchesCancelled함수 / [23:37] 실행 확인 / [25:03] 터치를 응용한 기능-드래그 앤 드롭 / [25:30] Sprite 3개 생성 / [25:52] reZOrder함수 / [26:11] init함수 / [26:47] Sprite생성 후 위치 지정 / [27:33] onEnter함수 / [27:48] Single touch이벤트 리스너 생성 / [28:18] 콜백함수 등록 부분 / [29:02] onTouchBegan함수 정의 / [29:51] 터치가될 위치를 노드 기준의 좌표값으로 변경 / [30:33] getContentSize함수 사용 / [31:26] reZOrder함수 사용 / [32:15] setOpacity함수 사용 / [32:51] onTouchMoved함수 정의 / [34:15] onTouchEnded함수 정의 / [34:52] eventDispatcher에 이벤트 등록 / [35:52] onExit함수 / [36:22] 실행 확인 / [36:45] 드래그 확인 / [38:01] reZOrder적용 테스트

07 Touch part2
입력 방법 중 하나인 터치에 대해서 설명합니다.
51분
책갈피 : [00:08] 터치 우선 순위 / [00:21] 특정클래스를 상속받아 재정의하는 방식의 예제 / [00:46] TouchSprite클래스 선언 / [01:36] 함수선언 확인 / [02:07] 3개의 멤버변수 선언 / [02:38] TouchSprite의 생성자 / [02:57] Texture초기화 / [03:36] setPriority함수 / [03:57] useNodePriority변수 / [04:55] setPriorityWithThis함수 / [05:42] onEnter함수 / [06:30] listener의 onTouchBegan함수 작성 / [07:38] 충돌 체크에 사용할 사각형 생성 / [08:28] onTouchMoved함수 정의 / [09:13] Priority설정 / [11:01] onExit함수 / [12:28] TouchSprite클래스를 사용해 예제 확인 / [12:48] 테스트에 사용될 touchSprite3개 선언 / [13:13] Label생성 / [13:31] TouchSprite생성 / [14:11] Priority설정부분 중요 / [14:54] 예제가 간단히 생성된 이유 / [15:26] 실행 확인 / [16:03] 이미지를 겹쳐 우선순위 확인 / [16:44] Priority반대로 설정 / [17:18] 우선순위에 대한 정리 / [18:22] Custom이벤트리스너 예제 / [19:03] 메뉴가 선택되면 함수가 호출되고 이벤트를 발생시키는 예제 / [19:18] Label선언 / [19:33] 클릭과 이벤트 처리를위한 함수 선언 / [19:51] 이벤트 처리를 확인하기위한 Label생성 / [20:22] MenuItem생성 / [21:26] MenuItem을 기반으로 Menu생성 / [21:37] onEnter함수 / [22:02] 리스너 생성 / [22:29] 이벤트에 호출될 콜백함수 설정 / [23:48] onExit함수 / [24:21] doClick1함수 살펴보기 / [24:48] buf를 생성해서 count변수 담기 / [25:22] 이벤트리스너의 이름과 동일하게 설정 / [25:48] 생성된 EventCustom객체는 dispatchEvent함수를 사용해 전달 / [27:22] doEvent1함수 살펴보기 / [27:52] string객체 생성 / [28:41] 생성된 string객체를 setString함수를 통해 설정 / [29:18] 실행 확인 / [30:10] 멀티터치를 실제로 사용하는 예제 / [31:03] TouchPoint클래스 살펴보기 / [31:33] 터치가되는 부분마다 각각 다른 색 지정 / [31:55] ShaderProgram설정 / [32:50] draw함수 / [33:13] 파라미터 설정 / [33:49] setDrawColor4B함수 사용해서 Primitives의 색상 지정 / [35:07] drawLine함수를 사용해 Line생성 / [36:00] 터치포인터에 점 표시 / [36:30] setTouchPos함수 / [37:04] touchPointWithParent함수 / [39:07] ios에서 멀티 테스트를 할 경우 주의점 / [40:49] 3개의 터치관련 함수 선언 / [42:22] 레이어에 onEnter함수 호출 / [43:07] onExit함수 / [43:49] 터치 처리부분 살펴보기 / [44:34] TouchPoint클래스 사용 / [45:30] touch된 위치정보를 Location변수에 담기 / [45:59] setTouchColor함수로 색상 지정 / [46:22] 색상을 결정하는 인덱스 / [47:51] onTouchesMoved함수 / [48:28] onTouchesEnded함수 / [49:35] 실행 확인

08 Sound와 Scene Transition
심플오디오엔진을 사용해서 소리를 출력하는 방법과 씬을 전환하는 방법 등 다양한 효과들에 대해서 설명합니다.
53분
책갈피 : [00:06] 사운드기능 구현 / [00:41] class선언 살펴보기 / [01:26] 클래스의 정의 부분 / [01:46] SimpleAudioEngine / [02:15] effect-효과음 파일 / [02:38] MARMALADE용 플랫폼 지정 / [03:07] 뮤직 파일 / [03:29] menuItems에서 사용될 문자열을 배열로 정의 / [04:00] Menu생성 / [04:28] MenuCount변수 / [04:46] for문을 돌면서 menuItems생성 / [05:30] 인자값 설정 / [06:30] 테스트에 사용될 리소스 로드 / [07:24] 미리 로드해서 사용하는 방식 / [08:28] SimpleAudioEngine은 BackgroundMusic과 Effect를 별도로 관리 / [08:50] 사운드가 출력될때 볼륨을 조절하는 함수 / [09:46] onExit함수에서 사용한 리소스 정리 / [11:43] SimpleAudioEngine클래스 마무리 / [12:11] 오디오 출력과 관련된 기능 / [12:43] MenuItem에 getZOrder함수를 사용 / [13:00] play background music버튼 / [13:28] 인자값 설정 / [14:13] pause background music버튼 / [15:15] resume background music버튼 / [15:41] stop background music버튼 / [16:11] play effect버튼 / [17:18] play effect repeatly버튼 / [17:48] pause effect버튼 / [18:30] resume effect버튼 / [19:14] stop effect버튼 / [19:37] 실행 결과 확인 / [20:48] effect는 동시에 여러개 실행 가능 / [22:03] Scene전환 시 다양한 효과 예제 / [22:30] Scene 2개 추가 생성 / [22:56] 버튼이 클릭되었을 때 호출될 콜백함수 선언 / [23:22] 메뉴 생성 / [24:07] doClose함수 정의 / [24:33] Director에 popScene함수 사용 / [25:11] TestScene3클래스 살펴보기 / [25:51] Close Scene3라는 메뉴 버튼 생성 / [26:15] Director에 replaceScene함수 사용 / [27:03] 메인 Scene / [27:26] createTransition함수 선언 / [28:15] test에 사용할 MenuItem생성 / [28:44] 생성된 MenuItem으로 Menu생성 / [29:07] 각 콜백함수 살펴보기 / [29:33] doPushScene함수 / [29:59] doPushSceneTrans함수 / [30:18] index변수의 값 증가 / [31:07] 효과 생성을 위해 createTransition함수 사용 / [31:37] createTransition함수 살펴보기 / [32:30] switch문으로 전달된 index분류 / [33:00] Transition클래스가 공통으로 전달받는 파라미터 / [33:43] 페이지가 넘어가는 방향을 지정하는 파라미터가 추가되는 경우 / [34:37] doReplaceScene함수 / [35:14] 전환해줄 씬생성 / [35:22] doReplaceSceneTrans함수 / [36:06] 실행 결과 확인 / [38:22] replaceScene transition-인덱스값 초기화 / [39:22] Scene전환 방법 상세히 알아보기 / [39:50] Scene의 생성과 소멸 순서 / [41:37] 씬의 구분을 위해 색을 다르게 지정 / [42:07] 첫번째 로그메시지 표시 / [42:30] onEnter함수 / [42:52] onEnterTransitionDidFinish함수 / [43:15] onExitTransitionDidFinish함수 / [43:37] onEixt함수 / [43:59] SecondScene의 소멸자 / [44:19] doClose 콜백함수 / [44:45] popScene과 replaceScene / [46:04] doChangeScene함수 / [46:45] 씬전환에 사용할 MenuItem생성 / [47:30] doChangeScene함수 살펴보기 / [48:28] 구성과 내용은 SecondScene과 동일 / [48:45] 실행 결과 확인 / [49:15] 실행과 동시에 init함수 호출 / [50:45] SecondScene의 소멸자 호출 / [51:22] replace방식으로 전환 / [51:51] 실행 결과 확인

09 Progress Timer와 Schedule
진행 상황을 표시해주는 프로그레스 타이머와 다기능 타이머 스케줄에 대해서 설명합니다.
48분
책갈피 : [00:18] ProgressTimer / [00:41] 클래스 선언 살펴보기 / [01:15] 테스트에 사용될 Sprite생성 / [01:49] SpriteProgressToRadial함수 / [02:15] Progress 진행 객체 생성 / [03:22] ProgressTimer생성 / [03:46] Type설정 / [04:15] 위치를 지정하고 동작 / [04:46] 비교를 위한 두번째 ProgressTimer생성 / [05:30] setReverseProgress함수를 이용해 반시계 방향으로 설정 / [06:08] 실행 결과 확인 / [07:41] SpriteProgressToHorizontal함수 / [08:07] Progress 진행 객체 생성 / [08:39] ProgressTimer생성 후 Type설정 / [08:58] setMidpoint함수를 사용해서 시작위치 지정 / [09:50] setBarChangeRate함수 / [11:20] 두번째 ProgressTimer생성 / [11:46] 비교를 위해 setMidpoint를 다르게 설정 / [13:07] 실행 결과 확인 / [14:01] SpriteProgressToVertical함수 / [14:45] Midpoint와 BarChangeRate값 변경 / [15:26] 실행 결과 확인 / [16:14] SpriteProgressToRadialMidpointChanged함수 / [17:03] 각 ProgressTimer마다 Midpoint를 다르게 설정 / [17:26] 실행 결과 확인 / [18:15] SpriteProgressBarVarious함수 / [19:00] ProgressTo객체 3개 생성 / [19:22] Midpoint가운데를 기준으로 설정 / [19:51] BarChangeRate만 다르게 설정 / [20:44] 실행 결과 확인 / [21:59] Midpoint와 BarChangeRate의 상관관계를 생각해서 구성 / [22:25] SpriteProgressBarTintAndFade함수 / [22:47] tint액션 생성 / [23:10] fade액션 생성 / [23:41] 첫번째 ProgressTimer생성 후 tint액션 생성 / [24:06] 두번째 ProgressTimer생성 후 fade액션 생성 / [24:22] 세번째 ProgressTimer생성 후 tint와 fade액션 동시에 생성 / [24:30] 실행 결과 확인 / [26:10] ProgressTimer를 활용하기 위해 수동 제어 필요 / [27:07] 수동으로 제어 가능한 ProgressTimer제작 / [28:00] Sprite생성 후 ProgressTimer생성 / [28:41] schedule호출 / [29:11] 콜백함수 schedule_selector사용 / [29:37] myTick함수 / [30:07] SpriteProgressToRadial함수 / [31:11] 실행 결과 확인 / [32:30] Schedule / [33:30] Schedule을 사용해서 호출 할 콜백함수 선언 / [34:07] Schedule을 사용해서 콜백함수 호출 / [36:52] callEveryFrame함수 / [37:36] myTick함수 / [37:50] myTickOnce함수 / [38:15] 실행 결과 확인 / [39:45] myTickOnce함수 확인을 위해 소스 수정 / [40:05] 결과 확인 / [40:43] Schedule제어기능과 방법 살펴보기 / [41:36] MenuItem생성 / [42:19] Change변수 false로 초기화 / [42:30] doStart함수 / [42:59] doPause함수 / [43:37] doResume함수 / [44:07] doChange함수 / [45:07] doStop함수 / [45:54] 실행 결과 확인

10 Parallax Node
배경의 스크롤을 도와주는 패럴랙스 노드에 대해서 설명합니다.
1시간 2분
책갈피 : [00:04] 화면 스크롤 살펴보기 / [00:24] Parallax Node / [02:06] 배경의 스크롤과 시차에 대해 알기 / [02:38] 테스트를위해 2개의 Sprite생성 / [03:15] Label생성 / [06:14] Parallax Node생성 / [06:56] simulator의 해상도 변경 / [07:46] 배경을 Parallax Node의 자식으로 추가 / [09:28] 배경위에 그려질 이비지를 Parallax Node의 자식으로 추가 / [10:43] MoveBy액션 생성 / [10:58] 반대로 이동시키는 액션 생성 / [11:30] RepeatForever를 적용해서 Sequence액션 무한반복 설정 / [12:16] 이 액션을 Parallax Node에 적용시킬 경우 / [14:05] posLabel3의 위치값을 80으로 생성한 이유 / [14:56] 실행 결과 확인 / [15:39] 배경Sprite와 이미지Sprite가 다른 속도로 움직이는 것 확인 / [15:54] 입체감이 느껴지는 화면 구현 / [16:56] 기본적으로 멀티 플랫폼 지원 / [18:30] 큰 배경이미지 표현 방법 / [18:48] 나누어진 이미지를 하나인 것처럼 스크롤 해주는 기능 / [20:03] 큰 이미지를 연결되도록 나누어 생성 / [20:41] 각각 Sprite로 생성 / [21:00] Anti-Aliasing기능 비활성 / [21:56] Parallax Node생성 / [22:37] 주의할 부분 / [23:06] 액션 설정 / [23:44] 실행 결과 확인 / [25:03] 다양한 기능을 활용해 게임화면 연출 / [25:56] 결과 먼저 확인 / [26:56] 헤더파일 살펴보기 / [27:41] virtual함수 / [29:07] 멤버변수 / [29:22] 2개의 레이어 사용 / [29:48] 좌우 버튼 각 방향마다 2개의 Sprite준비 / [30:37] 이미지의 가로크기 선언 / [31:26] Layer생성 / [31:56] Windows Size설정 / [32:36] 배경, 드래곤, 메뉴버튼을 생성하는 함수 호출 / [32:52] createBackgroundParallax함수 / [33:22] 배경의 스크롤을 위해 ParallaxNode생성 / [34:28] createDragon함수 / [35:06] Animation객체 생성 / [35:43] addSpriteFrameWithTexture함수 사용 / [36:21] 드래곤을 표시할 Sprite를 createWithTexture함수를 사용해 생성 / [36:52] RepeatForever를 적용해서 무한반복되도록 설정 / [37:15] createArrowButtons함수 / [37:30] 왼쪽 방향버튼 생성 / [38:05] 왼쪽 방향버튼이 눌러졌을 때의 Sprite생성 / [39:19] 오른쪽 방향버튼 동일하게 생성 / [39:50] 기능 구현의 onEnter함수 / [40:19] EventListenerTouchOneByOne클래스 사용 / [41:37] onExit함수 / [42:30] 터치를 처리하는 함수 / [42:37] onTouchBegan함수 / [43:30] 어느버튼이 터치가 되었는지 검사 / [43:58] isTouchInside함수 살펴보기 / [45:27] setVisible함수 사용 / [46:37] 각 방향이 눌러졌을 경우 변수를 true로 지정 / [47:07] startMovingBackground함수 / [47:34] 두 방향키가 동시에 눌러졌을 경우 / [47:52] 한 방향만 눌러졌을 경우 / [48:35] 콜백함수로 지정되는 moveBackground함수 / [49:00] moveStep변수 / [51:00] setFlippedX함수 / [51:37] 위치값이 갱신된 새로운 point생성 / [53:07] Follow라는 클래스 사용 / [54:42] 두번째 파라미터로 지정된 사각형 / [55:59] 액션을 layer1에만 지정 / [56:22] onTouchMoved함수 / [57:51] stopMovingBackground함수 / [58:37] onTouchEnded함수 / [59:30] 실행 결과 확인

11 Tile Map part1
타일드 프로그램을 사용해서 타입맵을 제작하고 사용하는 방법에 대해서 설명합니다.
45분
책갈피 : [00:07] TileMap 설명 / [00:51] Tile을 이용해서 배경을 만드는 이유 / [02:00] 중복되는 조각은 재활용 / [02:35] TMX타일맵 포맷 이용 / [02:53] 타일맵에서 사용되는 타일의 타입 / [03:07] 정사각형맵 / [03:30] 마름모형맵 / [03:59] 육각형맵 / [04:57] 타일맵을 처리하기 위한 방법 / [05:11] 타일맵 에디터 필요 / [05:28] 타일맵 이미지의 구성과 사이즈 / [06:30] 타일맵 제작 / [07:00] Tiled설치 / [07:30] Tiled실행 / [08:01] New Map팝업창에서 생성할 맵의 속성 지정 / [09:03] 맵이 생성되면 저장 / [09:18] 파일을 저장한 폴더에 리소스로 사용할 파일 복사 / [09:41] Map-New Tileset / [10:13] Tile속성 지정 / [10:35] Margin과 Spacing / [12:01] Tileset을 이용해 맵 제작 / [12:41] 예제에서 사용할 타일맵 저장 / [12:56] 맵 구성을 위해 헤더파일 살펴보기 / [13:41] TMX파일 불러오기 / [13:56] TMXTiledMap클래스 사용시 주의할 점 / [15:18] 타일맵의 크기를 얻어와 log함수로 출력 / [15:35] onEnter함수 / [15:52] EventListenerTouchOneByOne클래스를 사용해 싱글리스너 생성 / [16:18] onTouchBegan과 onTouchMoved의 콜백함수 지정 / [16:41] onExit함수 / [17:11] onTouchBegan함수 / [17:26] onTouchMoved함수 / [17:55] getChildByTag함수 / [18:33] 새로 생성된 위치에 x축 범위 검사 / [18:52] 실행 결과 확인 / [19:59] TMX파일 살펴보기 / [21:06] 타일드에서 제공하는 레이어 살펴보기 / [21:37] 오브젝트 레이어 사용 / [22:14] Tiled실행 후 Layer의 Add Object Layer추가 / [22:37] 플레이어 캐릭터가 등장할 타일 위치 지정 / [24:18] Object속성 변경을 위해 Object Properties선택 / [25:03] Name변경 / [25:22] 헤더파일 살펴보기 / [26:17] 타일맵의 생성을 위해 TMX파일 불러오기 / [26:56] spawnPoint / [27:18] getObjectGroup함수 / [28:33] 얻어온 spawnPoint를 int형으로 변경 / [29:10] dragonPosition설정 / [29:22] createDragon함수 / [29:37] Animation생성 / [30:07] 실제 그려질 dragon을 Sprite에 createWithTexture함수를 사용해 생성 / [30:37] FlippedX를 true로 지정 / [31:07] RepeatForever적용 / [31:32] 실행 결과 확인 / [32:22] TMX파일 살펴보기 / [32:52] 생성한 dragon 맵 안에서 움직이기 / [33:15] 헤더파일 확인 / [33:59] winSize변수 추가 / [34:15] getWinSize함수를 이용해 window size얻어오기 / [34:37] dragonPosition에 spawnPoint지정 / [34:52] onEnter함수 / [35:22] onExit함수 / [35:42] createDragon함수 / [36:06] dragon의 위치를 spawnPoint로 하지 않은 이유 / [36:35] onTouchEnded함수 / [38:42] x가 양수일 경우 / [39:20] x가 음수일 경우 / [40:28] 새로운 위치값 검사 / [41:34] setViewpointCenter함수 / [43:45] 지정된 위치값 actualPosition으로 저장 / [44:22] 실행 결과 확인

12 Tile Map과 Particle part1
타일드 프로그램을 사용해서 타입맵을 제작하고 사용하는 방법과 화려한 이펙트를 만들어주는 파티클에 대해서 설명합니다.
44분
책갈피 : [00:11] 장애물과 아이템 생성 / [00:36] Background레이어 선택 후 선인장 제거 / [00:56] Layer-Add Tile Layer선택 / [01:15] 적절한 위치에 선인장 재배치 / [01:49] Tileset제작 / [02:36] Map-New Tileset선택 / [04:00] 생성한 Wall의 value지정 / [04:30] Layer-Add Tile Layer선택 / [05:14] 헤더파일 살펴보기 / [06:24] 멤버변수 이전과 동일 / [06:54] 새로추가된 변수 / [07:30] 타일맵 로드 / [08:05] MetaInfo레이어 / [08:45] dragonPosition설정 / [09:03] createDragon함수 / [09:22] 생성된 dragon의 위치 임의로 지정 / [09:43] onEnter함수 / [09:56] onExit함수 / [10:18] onTouchEnded함수 / [11:03] dragon의 위치를 setPlayerPosition함수를 통해 지정 / [11:13] setPlayerPosition함수 / [11:31] tileCoordForPosition함수 호출 / [12:18] getTileGIDAT함수에 타일 위치 전달 / [13:28] asString함수를 사용해서 String형으로 변환 / [14:05] 현재 타일이 아이템일 경우 / [14:22] removeTileAt함수 사용 / [14:50] 아이템 획득에 관련된 처리 / [15:26] dragon의 위치 갱신 / [16:10] setViewpointCenter함수 / [16:18] 실행 결과 확인 / [17:56] 이펙트 표현 방법 / [18:22] Particle살펴보기 / [20:41] 헤더파일 확인 / [21:40] Layer클래스에 init호출 / [21:59] 창의 크기 변경 / [22:25] MenuItem생성 / [22:45] 호출될 콜백함수로 doParticles지정 / [23:25] setTag값은 각 메뉴마다 다르게 지정 / [23:52] doParticles함수 / [25:10] ParticleFire생성 / [25:45] ParticleSun생성 / [25:59] ParticleGalaxy생성 / [26:11] ParticleSpiral생성 / [26:26] ParticleSmoke생성 / [26:41] ParticleMeteor생성 / [26:56] ParticleFlower생성 / [27:18] ParticleFireworks생성 / [27:33] ParticleExplosion생성 / [27:56] 지정된 texture를 setTexture함수에 전달 / [28:30] setDuration함수 / [29:25] 실행 결과 확인 / [31:41] 같은 Particle을 다른 느낌으로 표현하는 방법 / [32:37] 각각의 기능을 실행시킬 MenuItem생성 / [33:00] Tag각각 지정 / [33:27] doClick함수 / [34:07] normalSnow함수 / [35:07] customSnow함수 / [35:45] ParticleSnow클래스를 사용해서 emitter생성 / [36:36] emitter의 위치값 / [37:04] emitter의 위치 수정 / [37:15] setLife함수와 setLifeVar함수 / [37:52] setGravity함수 / [38:19] setSpeed함수와 setSpeedVar함수 / [38:37] getStartColor함수 사용 / [39:00] getStartColorVar함수 호출 / [39:42] setEmissionRate함수 / [40:19] normalRain함수 / [41:37] setScaleY함수 / [42:07] 실행 결과 확인

13 Particle part2, User Default, Edit Box, Http
화려한 이펙트를 만들어주는 파티클/데이터 저장하기/사용자로부터 데이터를 입력받을 수 있는 에디트 박스/웹으로 데이터를 주고받기 위한 Http 통신에 대해서 설명합니다.
48분
책갈피 : [00:12] Particle효과 외부 파일에서 불러와 적용 / [00:26] 터치를 사용해 파티클을 터치포인트에 표시 / [01:03] init함수에서 index 0으로 초기화 / [01:19] onEnter함수 / [01:44] onExit함수 / [01:57] onTouchBegan함수 / [02:42] showParticle함수 / [02:53] plist파일 / [03:21] ParticleSystemQuad클래스 사용 / [03:38] 생성된 emitter의 위치 지정 / [04:30] 실행 결과 확인 / [05:11] 화려한 파티클을 만드는 방법 / [05:58] 게임에서 생산되는 데이터 기록하는 방법 / [06:26] 데이터 저장을 위해 UserDefault클래스 제공 / [07:15] UserDefault / [07:54] UserDefault가 지원하는 자료형 / [08:24] setStringForKey함수 호출 / [09:28] getStringForKey함수를 사용해서 인자로 key값 전달 / [10:03] getBoolForKey함수 / [10:24] 이미 저장되어 있는 값 변경 / [11:07] UserDefault에 flush함수 호출 / [11:26] 결과 확인을 위해 저장된 값을 불러와 출력 / [11:41] UserDefault에 getXMLFilePath함수 호출 / [12:05] 디버깅 모드로 빌드해 결과 확인 / [13:07] UserDefault.xml파일 생성 확인 / [14:20] 사용자로부터 데이터 입력을 받는 방법 / [14:41] EditBox클래스 / [15:45] 속성-구성 속성-C/C++-일반 / [16:00] 추가 포함 디렉터리 편집 / [16:21] 소스코드 살펴보기 / [16:45] EditBox는 Delegate함수를 이용해 동작 / [17:41] EditBox에서 사용할 변수 선언 / [18:11] EditBox의 사이즈 지정 / [18:26] EditBox클래스를 사용해서 첫번째 EditBox생성 / [18:56] Scale9Sprite클래스 / [21:21] setPlaceHolder함수 / [21:51] setMaxLength함수 / [22:10] setReturnType함수 / [22:48] setDelegate함수 사용 / [23:21] 두번째는 비밀번호를 입력할 EditBox / [24:07] setInputMode함수 / [25:02] 세번째는 이메일을 입력할 EditBox / [25:52] Delegate함수 호출 확인을 위해 log메시지 출력 / [26:18] 디버깅 모드로 빌드해 결과 확인 / [29:11] 웹으로 데이터를 주고받기 위한 Http통신 / [29:41] Http클래스를 통해 Http기능 사용 / [30:22] 속성-구성 속성-C/C++-일반-추가 포함 디렉터리 편집 / [31:00] HttpClient.h를 include / [31:21] 콜백함수 선언 / [31:55] 메뉴 생성 / [33:43] 현재 통신상태를 표시할 Label생성 / [34:00] onGetTest함수 / [35:43] onHttpRequestCompleted함수 / [36:19] response에 getHttpRequest함수 사용 / [37:00] getResponseCode함수 사용 / [38:00] 요청 성공 확인을 위해 isSucceed함수 사용 / [38:21] 에러내용의 표시를 위해 getErrorBuffer함수 사용 / [38:45] 요청으로 얻어온 데이터 처리 부분 / [39:22] getResponseData함수 사용 / [40:00] 지정한 Url확인 / [40:51] onPostTest함수 / [42:37] Content-Type방식 지정 / [44:22] onPostBinaryTest함수 / [45:34] 실행 결과 확인 / [47:07] Post요청 보내기 / [48:07] binary데이터가 제대로 전달되는 것 확인

14 Xml, Json, Scroll View, Table, Accelerometer
xml, Json, 스크롤 뷰, 테이블 뷰, 중력 가속도계를 사용하는 방법에 대해서 설명합니다.
55분
책갈피 : [00:03] cocos2dx에서 xml다루기 / [00:33] xml / [01:37] pugixml프레임워크 / [02:06] pugixml.org 파일다운 / [02:29] 솔루션탐색기확인 / [02:41] 예제파일확인 / [03:06] 소스코드확인 / [03:10] log2함수 / [03:42] 정의부분확인 / [03:53] pugixml.hpp헤더파일 include / [05:02] xml_document load함수사용하기 / [05:39] child함수 / [05:54] xml파일 3개의아이템설명 / [06:11] xml파일 type1 설명 / [07:59] 얻은값 log2함수에게 전달하기 / [08:31] type2. type3 포문내용같음 / [09:28] 캐릭터포인터 문자열 / [10:07] 디버깅모드로 빌드 / [10:18] 실행결과확인 / [11:34] JSONEX사용 / [12:28] rapidjson사용하기 / [12:48] rapidjson 다운로드 / [13:07] 다운로드받은 파일 복사하기 / [13:52] 파일추가확인 / [14:23] 소스코드 살펴보기 / [14:42] 정의부분 살펴보기 / [14:54] headfile include / [15:43] rapidjson namespaece지정하기 / [16:07] fullpathforfilename 사용하기 / [17:11] getsringfromfile 함수추가 / [17:57] hasparsError함수설명 / [18:05] getparseError함수설명 / [18:45] log2함수 사용해서 확인하기 / [19:36] 디버깅모드로 빌드 / [19:46] 실행결과확인 / [20:46] 예제살펴보기 / [21:07] 단순한스크롤기능 살펴보기 / [21:40] ScrollView 클래스이용하기 / [22:12] EngineRoot지정해주기 / [22:59] cocos2d와 cocos2d::extension 매크로 / [23:49] 정의부분살펴보기 / [24:45] layer생성 / [25:53] scrollView 생성해보기 / [26:12] 사용함수 설명 / [28:07] 생성된 스크롤 레이어에 등록 / [28:37] 실행결과확인 / [29:16] ScrollView선택후 좌우로 확인 / [30:12] 새로운예제 / [30:16] tableView사용하기 / [30:38] 클래스추가하기 / [30:47] 헤더와 CPP파일 추가하기 / [31:42] customTavleViewCell 정의살펴보기 / [32:14] 본예제 살펴보기 / [32:45] cocos-ext.h File include / [32:55] CustomTableViewCell.h File include / [33:17] tableView사용을위한 프로토콜지정 / [33:23] TableViewDataSource 상속 / [33:24] TableViewDelegate 상속 / [34:02] 두가지 tableView 생성 / [34:38] 가로로 생성되는 tableView / [35:00] HORIZONTAL 을 setDirection에 전달 / [35:33] tableView를 layer 자식으로 추가 / [35:53] reloadData함수를 호출 내용 갱신 / [35:59] 세로로 생성되는 tableView / [36:15] CERTICAL 을 setDirection에 전달 / [37:18] 생성된 tableView를 layer 자식으로 추가 / [37:20] reloadData함수를 호출해서 내용을 갱신 / [37:32] tablecellat함수 / [38:27] tableCellSizeFor index 함수 설명 / [39:47] tablecellatindex `함수 설명 / [40:05] String 클래스 사용해서 문자열 생성하기 / [41:21] label생성 / [41:34] 위치와 anchorpoint설정하기 / [41:48] label을 cell자식으로 추가 / [42:29] return cell 설정 / [43:05] 실행결과확인 / [45:29] 중력가속도계를 사용하는 예제확인 / [47:03] Acceleration함수선언 / [47:06] 변수확인 / [47:28] 메크로함수 FIX_ POS함수 설명 / [48:24] 테스트용 sprite생성 / [49:35] onEnter함수 호출 / [50:01] AccelerometorEx를 사용한다는 정의 / [50:10] Accelerometor에 listener생성 / [51:03] window에 size 를 구하기 / [53:06] ui좌표값을 convertToGL사용 / [53:23] FIX_POS 메크로 함수사용 / [53:48] ball에 위치값을 새 위치값으로 갱신 / [53:52] 실행결과확인

15 Box2D part1
cocos2d-x가 지원하는 물리엔진 중 하나인 Box2D에 대해서 설명합니다.
42분
책갈피 : [00:16] 물리엔진 활용법 / [01:36] BOX2D manual 확인 / [02:20] CHIOMUNK 확인 / [03:26] C++ BOX2D 알아보기 / [04:07] BOX2D 기본개념 / [05:12] 픽스쳐개체사용하기 / [05:25] joint의 정의 / [05:59] BOX2D 실제단위사용 / [06:20] 규칙간에 가해진힘 확인횟수 / [06:56] 균형잡힌 값 찾기 / [07:40] 예제소스 살펴보기 / [07:48] Box2D.h include / [07:54] PTM_RARIO코드사용 / [08:52] 함수와변수 살펴보기 / [09:04] 소멸자선언 / [09:49] CPP파일 선언 / [10:23] 중력값정의 / [11:11] b2Vec2형설명 / [11:31] B2World사용 / [11:37] SerAllowsleeping사용 / [12:10] serContinuousPhysics사용 / [12:28] Ground Box생성 / [12:41] b2BodyDef생성 / [12:59] grounBody생성 / [13:15] b2EdgeShape생성 / [13:47] 테두리정의 / [13:51] 바닥부분설정 / [14:27] PTM_RARIO 적용 / [14:49] 상.하.좌.우 테두리설정 / [15:03] World생성완료 / [15:09] tick함수 스케쥴에등록 / [15:23] World 소멸자에서 delete / [15:37] onEnter함수예제 / [15:54] layer에 onEnter함수호출 / [16:01] singtouch EventListener 생성 / [16:06] onTouchBegan 콜백함수지정 / [16:10] Priority지정 / [16:16] onExit함수 예제 / [16:17] singtouch EventListener제거 / [16:26] layer에 onExit함수 호출 / [16:37] Tick함수사용안내 / [16:47] velocitylterations변수설명 / [17:57] world에 Step함수 설명 / [18:40] world포함 bady제어 / [19:30] PTM_RARIO으로 보정 / [19:45] CC_RADINAS_TO_DEGEES 함수설명 / [20:14] onTouchBegan 설명 / [20:48] Sprite생성.위치지정 / [20:55] layer에 자식으로 추가 / [21:16] bodyDef생성 / [21:45] bodt위치 PTM_RATIO로설정 / [22:25] fixture설정 / [24:16] CreateFixture함수로 Fixture생성 / [25:03] 생성결과실행 / [27:56] 디버그모드설정방법안내 / [28:08] GLES_Render.파일추가 / [29:07] 예제살펴보기 / [29:19] Box2E / GLES-Render include / [29:35] 클래스 소멸자선언 / [29:52] 함수선언 / [30:22] 변수.world선언 / [30:43] 정의살펴보기 / [31:54] creatBox2dworld 설명 / [32:58] Debug동작안내 / [33:32] figas값 설명 / [34:24] 바운딩영역지정 / [34:33] BodyDef 생성 / [34:54] EdgeShape 설명 / [35:02] 상.하.좌.우 설정 / [35:24] 소멸자에서 world해제 / [35:32] Draw함수설명 / [35:50] layer에 draw 호출 / [35:57] Vertex설정 / [36:14] DrawDebugDate사용 / [36:25] Matrix 화면표시 / [37:04] layer에 onEnter호출 / [37:28] layer에 onExit 호출 / [38:40] onTouchBegan 함수설명 / [39:10] sprite 주석처리 / [39:23] badyDef생성 설정 / [40:05] Bady 모양. 속성지정 / [40:50] 생성 결과 실행

16 Box2D part2
cocos2d-x가 지원하는 물리엔진 중 하나인 Box2D에 대해서 설명합니다.
47분
책갈피 : [00:06] 복잡한 Body추가 / [01:20] PhysicsEditor사용하기 / [01:28] 사이트이용하기 / [02:00] 설치파일다운로드확인 / [02:15] Cocos2D-x 버튼누르기 / [02:39]화면왼쪽파일 다운로드 / [02:55] 다운로드후 압축풀기 / [03:07] PhysicsEditor실행하기 / [03:21] 이미지선택하기 / [03:56] shape tracer사용하기 / [04:58] Exporter선택 / [05:14] Box2D generic(PLIST)선택 / [05:30] publish버튼누르기 / [05:44] 예제만들기 / [05:54] 이미지&plist 파일 복사 / [06:19] GB2shapeCache_x파일추가 / [07:02] 소스파일확인하기 / [07:31] 예제 살펴보기 / [07:45] GLES_Render.h파일추가 / [08:05] 클래스선언 살펴보기 / [08:20] createBox2dWorld함수선언 / [08:33] drow함수선언 / [08:39] 델리게이트함수선언 / [09:07] 변수선언 / [09:43] 정의살펴보기 / [09:54] GB2ShapeCache-x.h include / [10:15] string배열지정 / [11:05] physics shapes 불러오기 / [11:31]World생성 / [11:55] schedule 호출 / [12:11] createBox2dWorld 살펴보기 / [12:34] debug모드 true전달 / [12:38] GLESDebugDraw할당 / [12:57] flags값 지정 / [13:06] 테두리Body생성 / [13:27] BodyDef생성 / [13:41] groundBody생성 / [13:49] b2EdgeShape생성 / [13:56] b2FixrureDef생성 / [14:04] shape에 groundEdge대입 / [14:44] 할당했던 world해지 / [15:56] onEnter살펴보기 / [16:04] 콜백함수지정 / [16:15] onExit살펴보기 / [16:27] tick함수살펴보기 / [17:20] onTouchBegan함수보기 / [17:47] Sprite 생성 살펴보기 / [17:55] names배열보기 / [18:18] Sprite생성 / [18:29] layer 자식으로 추가 / [18:39] BodyDef생성.속성지정 / [19:38] addFixturesToBody함수호출 / [20:10] Plist파일살펴보기 / [21:38] anchorPointForShape사용하기 / [22:19] 생성결과확인 / [25:48] Body종류 자세히살펴보기 / [26:06] static Body 설명 / [26:43] Kinematic Bady 설명 / [27:11] dynamic Bady 설명 / [27:53] 예제로살펴보기 / [28:27] draw함수선언 / [29:01] 변수선언 / [29:23] 정의살펴보기 / [29:32] srand를 시간설정 / [29:41] texture 생성 / [29:52] creareBox2dWorld호출 / [30:07] tick함수호출 / [30:19] gravity 생성 / [30:48] GLESDebugDraw할당 / [30:56] flags값 shape 만지정 / [31:07] groundBodyDef 생성 / [32:05] Static Body생성 / [33:15] SetAsBox 함수사용하기 / [34:12] Kinematic Body생성 / [35:00] linearVelocity지정 / [36:17] b2Polygonshape생성 / [37:13] 소멸자 world해제 / [38:07] tick 함수 변경점발생 / [39:54]addNewSprireAtPosition 호출 / [40:36] rand함수사용 / [41:30] SetAsBox함수사용 / [41:43] fixtureDef 생성 / [41:47] dynamicBox생성 / [42:23] 삼각형만들기 / [42:33] PolygonShape만들기 / [43:21] fixtureDef생성 / [44:48] 생성결과확인

17 Box2D part3
cocos2d-x가 지원하는 물리엔진 중 하나인 Box2D에 대해서 설명합니다.
56분
책갈피 : [00:04] joint 개념 살펴보기 / [00:44] mouse joint 설명 / [01:11] head 파일 include / [02:01] addnewSprite 설명 / [02:48] 델리게이트 선언 / [03:25] booldrag 생성 / [03:30] dragbody 생성 / [03:35] mouseJoint 생성 / [03:43] gbod 선언 / [03:47] 정의부분 살펴보기 / [04:27] gravity생성 / [04:49] debug값 true전달 / [05:17] flage값에 joint값 추가 / [05:29] BodyDef 생성 / [06:06] eage 생성 / [06:22] Drag 변수 초기화 / [06:30]addNewSprite 함수 사용 / [08:46] addNewSprite 함수 살펴보기 / [09:09] bodyDef 생성 / [09:55] layer에 자식으로추가 / [10:06] userData에 대입 / [10:17] Spraite 생성 / [10:24] layer에 자식으로 추가 / [10:37] body 생성 / [10:57] fixtureDef 생성 / [11:00] polygonshape 생성 / [11:02] CircleShape 생성 / [11:35] SetAsBox 생성 / [11:44] fixrureDef.shape에 대입 / [11:56] Circle 생성 / [12:32] fixrure 생성 / [12:42] bady return / [12:50] 할당된 World 해제 / [13:11] onEnter 함수 설정 / [13:44] onExit 함수설정 / [13:59] tick 함수설정 / [14:27] getBodyArTab 함수 사용 / [15:20] continue 사용하기 / [15:34] TestPoint 함수 사용 / [15:53] bady return / [16:08] onTouchBegan 함수 사용 / [17:01] mousejointDef 생성 / [17:46] targer 지정 / [18:01] GerMass 함수 사용 / [18:30] joint생성 / [18:52] onTouchMoved 함수 사용 / [19:01] SetTarger 함수 사용 / [19:24] destroyjoint 함수 사용 / [19:51] SetAwake 함수 호출 / [20:24] 생성결과 확인 / [22:10] 예제 살펴보기 / [22:13] revJoint 살펴보기 / [22:45] head 파일 include / [23:05] CreatBox2DWorld 선언 / [23:59] bool형 drag 사용 / [24:12] 정의부분 살펴보기 / [24:32] createBox2dWorld 호출 / [24:39] schedule 호출 / [25:01] gravity 생성 / [25:12] debugDraw 설정 / [25:18] body. shape 생성 / [25:39] bDrag값 초기화 / [25:55] Test용 Body 살펴보기 / [26:54] revJointDef 생성 / [26:57] b2RevolutejoinDef 생성 / [27:05] b2Revolutejoint 생성 / [27:15] revJointDef 설정하기 / [27:42] enableLimit 설정 / [28:13] moter 활성화 함수 / [28:36] CreateJoin 전달 / [28:52] 생성된 World 해제 / [29:10] onEnter 함수 사용 / [29:35] onExit 함수 사용 / [29:55] Step 함수 호출 / [30:29] bodyDef 생성 / [31:24] fixtureDef 생성 / [31:40] polygonShape 생성 / [31:42] circleshape 생성 / [32:27] gerBodyArTab 함수 설명 / [32:57] onTouchBegan 함수 사용 / [33:28] gerBodyAtTab 사용 설명 / [33:49] onTouchMoved 사용 설명 / [34:09] onTouchEnded 사용 설명 / [34:24] SerAwake 호출 / [34:31] 생성결과 확인 / [36:11] Revolute 활성화 / [36:20] enableLimit=true 주석처리 / [36:30] enableMotor 활성화처리 / [36:37] enableMotor=true 설정 / [37:36] 설정결과 확인 / [39:02] welldJoint 살펴보기 / [39:24] haed include / [39:52] 델리게이트함수 선언 / [40:55] boolDrag / [40:43] mouseJoint 생성 제어 변수 / [41:06] 정의부분 살펴보기 / [41:13] gerWinSize 얻기 / [41:17] iamige texture 등록 / [41:40] createBox2dWorld 함수 / [41:47] gravity 설정 / [42:12] Body 생성 / [42:36] bDrag값 false로 초기화 / [43:03] revoluteJoint와 weldjoint 비교 / [43:30] Revolute Joint 설정보기 / [44:40] lnitialize 함수 사용 / [45:02] weld Joint 설정보기 / [45:36] lnitlalize 함수 사용 / [46:07] 생성된 World 해제 / [46:26] onEnter 함수 설정보기 / [46:51] onExit 함수 설정보기 / [47:05] step 함수 호출 / [47:28] addNewSprite 생성 / [48:34] fixtureDef 생성 / [49:11] SetAsBox 사용 / [49:30] Circle 사용방법 / [50:16] fixtureDef 전달 / [50:38] body return 설정 / [51:27] gerBodyAtTab 함수 사용 / [51:41] mouse Joint 연결 / [51:47] Joint 생성 / [52:22] DestroyJoint 사용 / [52:40] SetAwake 함수 호출 / [52:50] bDrag를 false 초기화 / [52:56] 생성결과 확인

18 Box2D part4
cocos2d-x가 지원하는 물리엔진 중 하나인 Box2D에 대해서 설명합니다.
43분
책갈피 : [00:01] PrismaticJoin 설명 / [00:35] head include / [00:45] PTM_RATION 지정 / [00:56] CreateBox2dworld 선언 / [01:00] Drow 함수 선언 / [01:05] createSpring 함수 추가 / [01:27] onEnter 선언 / [01:29] onExit 선언 / [01:31] tick& addNewSprite 선언 / [01:44] gerBodyAtTab 함수 선언 / [02:00] 멤버변수적용 / [02:36] 정의부분 확인 / [02:44] winSize 얻어오기 / [02:49] texture 생성 / [03:03] createBox2dWorld 함수 생성 / [03:13] schedule 생성 / [03:25] gravity 지정 / [03:33] shape&joint를 flags 값으로지정 / [04:06] Drag 변수 false 초기화 / [04:19] Body 생성 / [04:30] staticBody 생성 / [04:41] dynamicBody 생성 / [04:59] 10개 Spring 생성 / [05:33] createSpriing 함수보기 / [05:36] PrismaticJoint 사용 / [05:56] b2PrismaticJointDef 사용 / [06:05] b2prismaticjoint 변수 사용 / [06:13] staticBody 만들기 / [06:32] dynamicBody 만들기 / [06:47] prijointDef 함수 내용보기 / [07:15] collideConnected 설명 / [07:41] lower&upper Translation 설명 / [08:09] enableLimit 설정 / [08:40] enableMotor True로 지정 / [11:13] prismaticjoint 으로 Joint 생성 / [11:20] 할당된 World 해제 / [11:29] DebugDate 화면표시 / [11:37] onEnter 함수 사용 / [11:40] singleTouchEventlistner 생성 / [12:08] onExit 함수 사용 / [12:22] tick 함수 사용 / [12:26] step 함수 호출 body 갱신 / [12:39] addNewSprite 사용 / [13:29] fixtureDef완료되면 body 설정 / [13:41] getBodyArTab 함수 사용 / [14:03] onTouchBegan 함수 사용 / [14:32] onTouchMoved 함수 사용 / [14:47] onTouchEnded 함수 사용 / [14:57] body에 SetAwake 호출 / [15:02] bDrag 변수를 false로 초기화 / [15:19] 실행결과 확인 / [17:35] Distancejoint 설명 / [18:21] 예제 수정.변경 위주로 강의 / [18:54] createSpriing 함수 삭제처리 / [19:04] 정의부분확인 / [19:51] b2DistancejointDef 생성 / [20:02] Body 2개 생성 설명 / [20:48] lnitialize 함수 설정 / [21:40] b2Vec2형으로 지정 / [21:55] createjoint전달로 Joint생성 / [22:16] 생성결과 확인 / [23:28] Ropejoint 설명 / [24:16] head file include / [24:20] 정의부분살펴보기 / [25:06] b2RopeJintDef 생성 / [25:14] Body 생성 / [25:55] RopeJintDef 설정 / [26:24] Anchor point 전달 / [27:15] maxLength 지정 / [27:22] collideConnected 지정 / [27:48] ropeJoin사용해서 Joint 생성 / [27:57] 생성결과 확인 / [29:38] 설정값 변경 후 확인 / [30:22] 생성결과 확인 / [31:52] FricrionJoint 설명 / [32:15] 정의부분살펴보기 / [32:57] b2FricrionJointDef 생성 / [33:13] body 2개 생성 / [33:46] lnitialize 함수사용 초기화 / [34:09] Anchor Point 지정 / [34:34] maxForce & maxTorque 설정 / [34:55] FricrionJointDef사용 Joint 생성 / [35:11] 생성결과 확인 / [36:21] pulleyJoint 설명 / [36:54] 정의부분살펴보기 / [37:30] b2pulleyJointDef 생성.정의 / [37:41] Body 2개 생성 / [38:08] pullyJointDef 설정 initialize사용 / [38:50] b2Vec2형으로 지정 / [38:59] Anchor Point지정 / [39:16] ration 값지정 / [39:30] length A.B값 지정 / [39:58] collideConnected를 true로 설정 / [40:23] pulleyJoint사용해서 Joint 생성 / [40:52] 생성결과 확인

19 Box2D paer5
cocos2d-x가 지원하는 물리엔진 중 하나인 Box2D에 대해서 설명합니다.
53분

20 Box2D part6 & Sprite3D
cocos2d-x가 지원하는 물리엔진 중 하나인 Box2D와 cocos2d-x에서 3D를 표현할 수 있도록 해주는 Sprite3D에 대해서 설명합니다.


샘플확인 : 알지오 검색후 -> 강의검색란 -> Cocos2d-x