추천강의

Cocos2d-x 강의 리뷰 추천

알지오 2017. 10. 30. 17:02
알지오 평생교육원 Cocos2d-x 강좌입니다.

전문가들이 뽑은 꼭 배워야하는 실무활용 강의
그동안 찾던 Cocos2d-x 강좌의 완전판 !
여러분의 마지막 강의가 되어드리겠습니다.

알지오에서는 PC와 스마트폰, 태블릿을 이용해서 언제, 어디서나 공부를 할 수 있습니다.
열심히 공부해서 Cocos2d-x 강좌를 마스터해보세요.

<Cocos2d-x 강좌 샘플동영상>


<Cocos2d-x 강좌 리뷰>

평소에 게임을 즐겨하고 개임 개발에 관심이 많은 편이였습니다.
저도 한번 게임을 만들어 보고 싶다는 생각을 항상 했었는데 
혼자 공부해서 만들기는 쉽지 않겠더라구요.
친구가 Cocos2d-x 프로그램을 추천해 줬는데 배우기만 하면 
제가 원하는걸 만들 수 있을 거 같아 기대됐어요.
그런데 배울 책이나 학원 인강 같은게 너무 부족해서 속이 답답하기만 했습니다.
그런데 알지오의 강의를 보면서 답답한 속이 싹 풀렸네요.
이렇게 잘 이해가 되고 제가 흥미 있는 만큼 잘 맞으면 
제 적성을 게일 개발쪽으로 완전히 바꿔야 겠어요 
좋은 강의 잘 봤습니다.


Cocos2d-x 강좌 정보입니다. 추천 인터넷 강의 : 알지오

Cocos2d-x강의,Cocos2d-x강좌,Cocos2d-x교육,Cocos2d-x학원,Cocos2d-x인강,Cocos2d-x인터넷강의,Cocos2d-x인터넷강좌,Cocos2d-x동영상,Cocos2d-x동영상강의,Cocos2d-x동영상강좌,Cocos2d-x배우기,Cocos2d-x사용법,코코스2d강의,코코스2d강좌,코코스2d교육,코코스2d학원,코코스2d인강,코코스2d인터넷강의,코코스2d인터넷강좌,코코스2d동영상,코코스2d동영상강의,코코스2d동영상강좌,코코스2d배우기,코코스2d사용법,코코스2d사용방법,Cocos2d강의,Cocos2d강좌,Cocos2d교육,Cocos2d학원,Cocos2d인강,Cocos2d인터넷강의,Cocos2d인터넷강좌,Cocos2d동영상,Cocos2d동영상강의,Cocos2d동영상강좌,Cocos2d배우기,Cocos2d사용법,Cocos2d사용방법,코코스2d-x강의,코코스2d-x강좌,코코스2d-x교육,코코스2d-x학원,코코스2d-x인강,코코스2d-x인터넷강의,코코스2d-x인터넷강좌,코코스2d-x동영상,코코스2d-x동영상강의,코코스2d-x동영상강좌,코코스2d-x배우기,코코스2d-x사용법,코코스2d-x사용방법

  • 01.44분 Label

    화면에 문자를 표시하는 레이블에 대해서 설명합니다.

    책갈피 : [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.44분 Sprite과 Menu

    화면에 이미지를 표시하는 스프라이트와 다양한 버튼으로 이루어진 메뉴에 대해서 설명합니다.

    책갈피 : [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.47분 Action part1

    오브젝트를 움직이게 만드는 액션에 대해서 설명합니다.

    책갈피 : [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.59분 Action part2

    오브젝트를 움직이게 만드는 액션에 대해서 설명합니다.

    책갈피 : [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.51분 Animation

    애니메이션과 애니메이션의 최적화 방법에 대해서 설명합니다.

    책갈피 : [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.40분 Touch part1

    입력 방법 중 하나인 터치에 대해서 설명합니다.

    책갈피 : [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.51분 Touch part2

    입력 방법 중 하나인 터치에 대해서 설명합니다.

    책갈피 : [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.53분 Sound와 Scene Transition

    심플오디오엔진을 사용해서 소리를 출력하는 방법과 씬을 전환하는 방법 등 다양한 효과들에 대해서 설명합니다.

    책갈피 : [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.48분 Progress Timer와 Schedule

    진행 상황을 표시해주는 프로그레스 타이머와 다기능 타이머 스케줄에 대해서 설명합니다.

    책갈피 : [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.1시간 2분 Parallax Node

    배경의 스크롤을 도와주는 패럴랙스 노드에 대해서 설명합니다.

    책갈피 : [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.45분 Tile Map part1

    타일드 프로그램을 사용해서 타입맵을 제작하고 사용하는 방법에 대해서 설명합니다.

    책갈피 : [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.44분 Tile Map과 Particle part1

    타일드 프로그램을 사용해서 타입맵을 제작하고 사용하는 방법과 화려한 이펙트를 만들어주는 파티클에 대해서 설명합니다.

    책갈피 : [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.48분 Particle part2, User Default, Edit Box, Http

    화려한 이펙트를 만들어주는 파티클, 데이터 저장하기, 사용자로부터 데이터를 입력받을 수 있는 에디트 박스, 웹으로 데이터를 주고받기 위한 Http 통신에 대해서 설명합니다.

    책갈피 : [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.55분 Xml, Json, Scroll View, Table, Accelerometer

    xml, Json, 스크롤 뷰, 테이블 뷰, 중력 가속도계를 사용하는 방법에 대해서 설명합니다.

    책갈피 : [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.42분 Box2D part1

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

    책갈피 : [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.47분 Box2D part2

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

    책갈피 : [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.56분 Box2D part3

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

    책갈피 : [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.43분 Box2D part4

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

    책갈피 : [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.53분 Box2D paer5

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

  • 20.48분 Box2D part6 & Sprite3D

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