'게임'에 해당되는 글 5건
- 2014.01.09 [Coordinate System] cocos2d-x 좌표 시스템
- 2014.01.09 cocos2d-x v3.0 Beta 출시 되었습니다.
- 2014.01.08 [디자인패턴] cocos2d-x 싱글톤 싱글턴 패턴 구현
- 2014.01.08 [Action] cocos2d-x 액션 사용법
- 2014.01.06 실전 유니티 3D 입문과 완성UNITY 3D 4.2 이상
좌표 시스템
- Coordinate System
기존과 다른 좌표 시스템을 도입.Introduction of Different Coordinate Systems
직교 좌표 시스템(데카르트 좌표)
너는 아마 기하학 수업에 사용되는 좌표를 알고 있을 것이다.
모바일에서는 보통 3가지 정도의 좌표 시스템이 있다.
UI 좌표 시스템
- 좌측 상단이 (0,0) 이다.
- X 축은 왼쪽에서부터 오른쪽으로 갈수록 증가한다.
- Y 축은 화면 상단에서 부터 아래로 내려 갈수록 증가한다.
looks like this
Direct3D 좌표 시스템
DirectX 에서는 왼손좌표계를 사용한다.
OpenGL 그리고 Cocos2d 의 좌표시스템
openGL과 cocos2d는 오른손 좌표계를 사용한다.
- 좌측 하단이 (0,0) 좌표이고 오른손 좌표계를 사용합니다.
- X 축은 왼쪽에서부터 오른쪽으로 갈수록 증가합니다.;
- Y 축은 아래부터 시작하며 위로 갈수록 증가합니다.
좌표 시스템을 좀더 이해하기 쉽도록 아래 사진이 준비되어있음![]()
다이렉트x나 일반적 ui시스템과 다른 좌표시스템이다.
Parent and Childrens
CCNode를 상속받는 모든 클래스는 anchorPoint 속성을 가지고 있습니다.
CCNode를 상속받는 객체를 그릴때(sprite, layer, 기타등등) , cocos2d-x는 anchorpoint와 position를 결합합니다. 또한 물체를 회전할때 Anchorpoint를 기준으로 회전하게됩니다.
우리는 회색배경의 부모 클래스를 만들었고 파란색 배경의 자식클래스를 만들었습니다. 부모의 좌표는((100,100)이고 자식의 anchor point는 중앙입니다.
자식의 위치가 (0,0) 이고 부모의 위치가 (100,100)일때 아래 그림과 같다.
Anchor Point
앵커 포인트의 위치와 개체를 회전 모두에 사용됩니다.앵커 포인트의 좌표는 일반적으로 개체 내 지점에 해당하는 상대 좌표입니다. 예를 들어, 앵커 포인트 CCP (0.5, 0.5)는 객체의 중심에 대응한다.물체의 위치를 설정할 때, 객체는 앵커 포인트로 setPosition () 호출에 지정된 좌표에있을 것이다되도록 위치된다.객체를 회전시킬 때 마찬가지로, 그 기준점에 대해 회전된다.
예를 들어 sprite가 앵커포인트 와 위치가 0,0일때

그 결과 sprite는 하단 왼쪽 모서리에 배치됩니다.
예를 들어 sprite가 앵커포인트는 (0.5,0.5) 이고 위치가 0,0일때


위와 같이 sprite의 중심이 좌표 0,0에 위치합니다. 앵커포인트는 화소값이 아닌 노드에 상대적인 크기입니다. 0~1 까지 존재함.
getVisibleSize, getVisibleOrigin vs getWinSize
VisibleSize 은 OpenGL상에서 보여지는 크기를 리턴합니다.이 값은 CCEGLView::setDesignResolutionSize()이 함수를 호출하지 않으면 getWinSize와 같습니다.
getVisibleOrigin은 OpenGL상에서 보이는 x,y의 좌표를 반환합니다.
How to convert co-ordinates
convertToNodeSpace:
convertToNodeSpace will be used in, 예를 들어 타일 기반 게임에서, 너가 큰 맵을 가지고 있을때. convertToNodeSpace는 너의 OpenGL 터치 좌표를 큰맵에 있는 좌표계를 기준으로 변형해줍니다.
Example:
다음그림은 보여줍니다. node1의 앵커포인트(0,0)이고 node2의 앵커포인트(1,1)입니다.
우리가 호출하면CCPoint point = node1->convertToNodeSpace(node2->getPosition()); convert node2의 스크린 좌표계는 node1의 좌표계를 기준으로 구해지게 되며 그 결과 node2 의 좌표는 (-25,-60) 이 됩니다.
convertToWorldSpace:
convertToWorldSpace(const CCPoint& nodePoint) coordinates.convertToWorldSpace 항상 우리의 스프라이트의 화면 위치를 반환합니다 당신은 당신의 스프라이트에 탭을 캡처 할하지만 레이어를 확장 / 이동해야하는 경우 매우 유용 할 수 있습니다 화면에 노드 좌표입니다 변환합니다.
일반적으로, 자식 노드의 위치와 부모 노드 호출이 방법은 결과로 아이의 세계의받은 위치를 반환합니다. 호출자가 부모가 아닌 경우이 메서드를 호출 아무 의미도하지 않습니다 것 같다 ...
Example:
위의 코드는 화면의 좌표로 노드 2의 좌표를 변환합니다.
예를 들어, 노드 1의 앵커 위치 (0, 0)이 화면에 필요없는 노드 1의 왼쪽 하단 모서리, 그러나되는 경우. 이 화면에 점의 (-5, -20) 좌표 노드 1에 대해 (이 경우)가 (15, 20입니다) (-20, -5)는 노드 2의 위치를 변환합니다.결과는 다음 그림에서 보여줍니다
convertToWorldSpaceAR,
convertToWorldSpaceAR 지점을 고정하는 relatevely 위치를 반환합니다, 그래서 우리의 장면 경우 - 루트 층은 CCP의 앵커 포인트 (0.5F, 0.5F)이 - 기본, convertToWorldSpaceAR은 상대적으로 화면 중앙에 위치를 반환해야합니다.
convertToNodeSpaceAR -. convertToWorldSpaceAR와 동일한 논리
Sample code:
Result:
'잡다한것들전부 > Basic Concepts' 카테고리의 다른 글
| [Effects] cocos2-dx 이펙트에 대해서 알아보자! (0) | 2014.01.09 |
|---|---|
| [Basic Concepts] Director, Scene, Layer, Sprite 개념 정리 (0) | 2014.01.09 |
| [Coordinate System] cocos2d-x 좌표 시스템 (0) | 2014.01.09 |
| [Animations] cocos2d-x 에니메이션 적용하기 (0) | 2014.01.08 |
| [Action] cocos2d-x 액션 사용법 (0) | 2014.01.08 |
| cocos2d-x 기본 컨셉 (0) | 2013.09.23 |
cocos2d-x v3.0 Beta
Highlights
- New renderer. Renderer has being decoupled from the Scene Graph. It supports auto-batching and auto-culling.
- Added template containers.
cocos2d::Map<>,cocos2d::Vector<> - Label supports: shadow, glow and outline (beta)
- Added Joint support in the physics subsystem
- Added Console: A simple TCP console that lets you debug and inspect your game remotely
tools/project_creator/project_creator.pyincludes a GUI to simplify the game creation process. It also allows you to create the game in any given directory.- Added support to build Android's APK files in the
android-build.pyscript - Added
Scheduler::performFunctionInCocosThread(). It supports executing a function in the cocos2d thread Directoremits the following events using theEventDispatcher:AFTER_UPDATE,AFTER_DRAW,AFTER_VISITandPROJECTION_CHANGED- Added
Cocos2dxActivity.javawhich inherits from native activity. Ingetrating 3rd Android SDK would be much easilier on v3.0.
Read more about all the new features at cocos2d-x v3.0 release notes
알파에서 베타버전으로 출시되이써습니다.
정식버전이 기대됩니다.
'잡다한것들전부 > 소식' 카테고리의 다른 글
| cocos2d-x v3.0 Beta 출시 되었습니다. (0) | 2014.01.09 |
|---|
#ifndef __SINGLETON_H__
#define __SINGLETON_H__
#include "cocos2d.h"
class SingletonClass{
private:
static SingletonClass * instance ;
~SingletonClass(){/*empty*/};
SingletonClass(){
value = 10;};
public:
static SingletonClass * getInstance();
static void releaseInstance();
int value;
};
#endif
#include "Singleton.h"
SingletonClass * SingletonClass::instance = NULL ;
SingletonClass * SingletonClass::getInstance()
{
if (!instance)
{
instance = new SingletonClass();
}
return instance;
}
void SingletonClass::releaseInstance()
{
if(instance) delete instance;
}
사용법
#include "Singleton.h"
CCLOG("VALUE %d", SingletonClass::getInstance()->value);
이런식으로 접근가능
'잡다한것들전부 > 팁' 카테고리의 다른 글
| 숫자에 세자리마다 콤마를 찍는 알고리즘 (0) | 2014.01.10 |
|---|---|
| [좌표] 좌표에 대해서 알아봅시다(convertToWorldSpace) 절대좌표 (0) | 2014.01.10 |
| [디자인패턴] cocos2d-x 싱글톤 싱글턴 패턴 구현 (0) | 2014.01.08 |
| [디버깅] GDB 사용하기 (0) | 2014.01.07 |
| [디버깅] ndk stack 사용법 (0) | 2014.01.07 |
| [디버깅] visual studio에서 GDB 실행? (0) | 2014.01.07 |
Actions
Actions 클래스는 CCNode 를 상속받는 모든 객체에 명령을 부여합니다. 액션은 오브젝트의 위치, 회전, 크기 기타등등 값들을 수정합니다
일정기간동안 수정하는 작업이면 -> CCIntervalAction actions 그렇지 않으면 -> CCInstantAction 입니다.
예를들면 CCMoveBy는 일정기간동안 수정합니다. CCIntervalAction 액션입니다.
액션의 사용 예:
가속 관련된 액션들 (점점 빨라지거나 느려지는등)
- CCEaseIn
- CCEaseOut
- CCEaseInOut
- CCSpeed
Etc. (See the ActionsEaseTest.cpp example for more info)
CCActionManager를 사용하면 중간에 액션을 일시정지 하고 재시작 할수도있다.(해당객체의)
Basic Actions
Basic actions are the ones that modify basic properties like:
Position(위치수정관련)
CCMoveBy
CCMoveTo
CCJumpBy
CCJumpTo
CCBezierBy
CCBezierTo
CCPlace
Scale(크기수정관련)
Rotation(회전)
Visibility(보이는거)
CCShow
CCHide
CCBlink
CCToggleVisibility
Opacity(알파값)
Color(색깔)
Example:
The act1 will be a CCMoveBy action of duration 0.5, but with the position value of ccp(100,0).
뒤에 By 붙는거와 To 붙는거 차이
By는 현재 값 기준으로 변경 To는 그냥 그런거 상관없이 변경
만약 현재 캐릭터 위치가 120 .30 이면
만약 CCMoveBy::create(2, ccp(50,10)); //현재 캐릭터 위치 기준으로 50,10만큼 이동 -> 170,40
CCMoveTo::create(2, ccp(50,10)); //좌표값에 50, 10으로 이동 -> 50,10
'잡다한것들전부 > Basic Concepts' 카테고리의 다른 글
| [Effects] cocos2-dx 이펙트에 대해서 알아보자! (0) | 2014.01.09 |
|---|---|
| [Basic Concepts] Director, Scene, Layer, Sprite 개념 정리 (0) | 2014.01.09 |
| [Coordinate System] cocos2d-x 좌표 시스템 (0) | 2014.01.09 |
| [Animations] cocos2d-x 에니메이션 적용하기 (0) | 2014.01.08 |
| [Action] cocos2d-x 액션 사용법 (0) | 2014.01.08 |
| cocos2d-x 기본 컨셉 (0) | 2013.09.23 |
유니티 관련 책 예제 위주로 되있어서 초보자들에게는 괜찮은 내용이 많은듯.
- 책소개
목차
머리말
CHAPTER 01 UNITY 3D의 개요 1
1.1 왜 게임 엔진을 사용하는가? 2
1.2 UNITY 3D 소개 3
1.3 UNITY 3D의 특징 4
CHAPTER 02 컴퓨터 그래픽 13
2.1 컴퓨터 그래픽의 구분 14
2.2 3D 모델의 종류 16
2.3 3D 모델링 방법 17
2.4 서피스 모델의 종류 19
2.5 3D 오브젝트의 구성 요소 21
2.6 Light와 Camera 23
2.7 평면 좌표와 공간 좌표 25
CHAPTER 03 유니티의 인터페이스 27
3.1 UNITY 3D 설치 28
3.2 유니티의 환경 설정 35
3.3 유니티의 인터페이스 39
3.3.1 새 프로젝트 시작 39
3.3.2 GameObject 설치 41
3.3.3 툴바 42
3.3.4 씬 뷰 43
3.3.5 게임 뷰 50
3.3.6 하이어라키 뷰 52
3.3.7 프로젝트 뷰 52
3.3.8 인스펙터 53
CHAPTER 04 게임 제작의 기초(1) 55
4.1 유니티의 거리 단위(Unit) 56
4.2 컴포넌트와 속성 56
4.3 유니티의 좌표계 59
4.4 유니티의 Vector 62
4.5 Light 63
4.6 Camera 67
4.7 오브젝트에 색깔 넣기 68
4.8 오브젝트에 텍스처 넣기 70
4.9 오브젝트의 낙하 73
4.10 오브젝트의 반사 74
4.11 사운드 연주 76
4.12 충돌의 판정 77
4.13 오브젝트 움직이기 81
4.14 월드 좌표와 로컬 좌표 84
4.15 Key로 이동 및 회전하기 86
4.16 계층적인 오브젝트 89
4.17 사용자 키 정의 94
4.18 탱크 3D 모델 제어하기 104
4.19 유니티의 각도 시스템 109
4.20 프리팹 만들기 112
4.21 Spawn Point 활용 114
4.22 포탄 발사 115
4.23 GameObject.Find/transform.Find 117
4.24 Instantiate-프리팹 복제 118
4.25 충돌의 판정 120
4.26 태그 활용 125
4.27 파티클의 활용 128
4.28 카메라 이동 134
4.29 스카이박스 사용하기 136
4.30 탱크에 콜라이더 추가 138
4.31 적군 벙커 만들기 144
4.32 LookAt-목표물 바라보기 145
4.33 Raycast-목표물 탐색 149
4.34 Debug 출력 153
CHAPTER 05 게임 제작의 기초(2) 155
5.1 가위바위보 게임 156
5.2 Animation 만들기 159
5.3 GUI Text 사용하기 163
5.4 글꼴(Font) 추가 165
5.5 Button 만들기 166
5.6 C#에서 한글 사용하기 168
5.7 Visual Studio 사용하기 170
5.8 유니티의 GUI 174
5.9 난수 만들기 176
5.10 오브젝트의 이미지 바꾸기 177
5.11 GUI Skin 180
5.12 파티클 사용하기 184
5.13 슈팅 게임 만들기 186
5.14 Jet 화염 Particle 만들기 190
5.15 배경 화면 스크롤 192
5.16 World 좌표와 Screen 좌표 195
5.17 Normal Map 사용하기 199
5.18 Object의 크기 및 색깔 설정 200
5.19 폭파 불꽃 파티클 만들기 205
5.20 미사일 만들기 208
5.21 SendMessage 210
5.22 미사일 연속 발사 211
5.23 yield와 Coroutine 215
5.24 오브젝트 보이기/감추기 216
5.25 운석 만들기 220
5.26 전투기의 충돌 처리 221
5.27 전역 변수와 점수 표시 223
5.28 게임 오버 처리 226
5.29 GUI Skin 사용하기 227
5.30 Rich Text 230
5.31 Cell Animation 232
5.32 1×1 Plane 사용하기 240
5.33 길찾기(Nav Mesh Agent) 243
CHAPTER 06 계란받기 게임 257
6.1 게임의 개요 258
6.2 게임 제작의 학습 목표 259
6.3 게임의 리소스 260
6.4 게임의 흐름도 261
6.5 3D Object의 기본 설정 262
6.6 Game Object 만들기 264
6.7 스테이지 디자인 273
6.8 Object에 Tag 달기 277
6.9 배경 화면 스크롤 277
6.10 Game Manager 만들기 278
6.11 배경 음악 설정 280
6.12 폭탄의 이동 280
6.13 계란의 이동 283
6.14 바구니의 이동 286
6.15 새(Bird)의 이동 288
6.16 게임 초기화 292
6.17 게임 루프 293
6.18 Score 표시와 Game Over 처리 296
6.19 Esc 키로 게임 중지하기 298
6.20 PC Platform Build 298
6.21 Web Player Build 301
6.22 Android Platform으로 빌드 303
6.23 Android 단말기의 개발 환경 설정 307
CHAPTER 07 Flying Owl 311
7.1 게임의 개요 312
7.2 게임 제작의 학습 목표 313
7.3 게임의 리소스 314
7.4 게임의 흐름도 315
7.5 카메라와 Light 설정 316
7.6 Object 만들기 316
7.7 Object에 Collider 추가 319
7.8 Object에 Tag 달기 320
7.9 프리팹 만들기 321
7.10 게임 화면 디자인 321
7.11 배경 화면 스크롤 323
7.12 화면을 벗어난 나뭇가지 제거 324
7.13 Gift 스크립트 작성 326
7.14 참새의 이동 328
7.15 득점 및 감점 표시 330
7.16 올빼미의 이동 332
7.17 게임 초기화 334
7.18 게임 루프 335
7.19 올빼미의 점프 335
7.20 올빼미의 좌우 이동 336
7.21 카메라의 이동 338
7.22 Bird와 Gift 만들기 340
7.23 Gift의 개수 제한 342
7.24 충돌의 판정 343
7.25 득점 및 게임 오버 표시 344
7.26 모바일 기기의 중력가속도 센서 346
CHAPTER 08 클레이 사격 349
8.1 게임의 개요 350
8.2 게임 제작의 학습 목표 351
8.3 게임의 리소스 352
8.4 게임의 흐름도 353
8.5 3D Object의 Scale Factor 설정 353
8.6 Object 만들기 355
8.7 엽총 만들기 362
8.8 엽총의 회전 366
8.9 엽총의 애니메이션 만들기 368
8.10 배경 화면 스크롤 380
8.11 접시의 이동 380
8.12 Oops 표시 382
8.13 참새의 이동 384
8.14 실탄의 이동 388
8.15 게임 루프 389
8.16 게임 초기화 394
8.17 OnGUI 함수 작성 396
CHAPTER 09 Dungeon의 Alien 399
9.1 게임의 개요 400
9.2 게임 제작의 학습 목표 401
9.3 게임의 리소스 402
9.4 게임의 흐름도 403
9.5 3D Object의 Scale Factor 설정 404
9.6 Object 만들기 404
9.7 자동문 만들기 416
9.8 Stage 만들기 427
9.9 Laser 이동 스크립트 437
9.10 FireBall 이동 스크립트 438
9.11 Alien 이동 스크립트 441
9.12 Human 이동 스크립트 444
9.13 GUI 화면 만들기 457
CHAPTER 10 Temple Run 463
10.1 게임의 개요 464
10.2 게임 제작의 학습 목표 465
10.3 다리(Bridge) 만들기 466
10.4 Human 만들기 482
10.5 스테이지 만들기 485
10.6 다리 설치 스크립트 487
10.7 주인공 이동 스크립트 작성 494
10.8 GUI 설정 503
10.9 모바일 기기의 처리 505
10.10 게임의 배경 만들기 506
10.11 Android 플랫폼으로 변환 510
CHAPTER 11 Memory Test 513
11.1 게임의 개요 514
11.2 게임 제작의 학습 목표 515
11.3 게임의 흐름도 516
11.4 게임 리소스 추가 516
11.5 배경 화면 만들기 517
11.6 카드 애니메이션 524
11.7 Map 만들기 533
11.8 Game Manager 537
11.9 카드의 Touch 처리 544
11.10 카드 섞기 547
11.11 게임의 상태 표시 549
11.12 카드 판정 552
11.13 스테이지 클리어 555
11.14 Sound 처리 560
11.15 득점의 표시 563
11.16 기타 기능 추가 567
11.17 게임 타이틀 만들기 571
11.18 Scene의 등록 577
CHAPTER 12 운석 피하기 581
12.1 게임의 개요 582
12.2 3D 오브젝트 만들기 586
12.3 2D 오브젝트 만들기 612
12.4 우주선 움직이기 616
12.5 배경 화면 스크롤 620
12.6 레이저 발사 626
12.7 우주선의 무적 상태, 전투 모드와 운행 모드 633
12.8 적기의 이동 639
12.9 충돌의 판정과 처리 647
12.10 운석과 기뢰의 이동 651
12.11 운석과 기뢰 만들기 658
12.12 Game Manager의 활용 662
12.13 게임의 Stage 668
12.14 보너스 아이템 만들기 679
12.15 보너스 아이템 처리 683
12.16 적기의 등장 687
12.17 우주선의 충돌 판정과 처리 689
12.18 우주선의 보호막과 미니맵 표시 693
12.19 게임 타이틀 697
12.20 모바일 기기의 버튼 처리 706
찾아보기 714
'보고싶은책' 카테고리의 다른 글
| Introduction to Algorithms (0) | 2014.01.13 |
|---|---|
| [IT 서적]시작하세요 cocos2d 아이폰 게임 프로그래밍! - 초보자를 위한 책 (0) | 2014.01.13 |
| 실전 유니티 3D 입문과 완성UNITY 3D 4.2 이상 (0) | 2014.01.06 |
| 5가지 실전 게임으로 배우는 코코스2d-x (0) | 2014.01.06 |
| c# 책 (0) | 2014.01.06 |
| Unity 3.x Game Development Essentials 한국어판 C#과 자바스크립트로 하는 유니티 3.x 게임 개발 (0) | 2014.01.04 |



