'분류 전체보기'에 해당되는 글 258건

  1. 2014.03.05 int socket(int domain, int type, int protocol); 1
  2. 2014.03.03 Scene 전환 종류 정리中
  3. 2014.03.03 액션 종류들 정리中
  4. 2014.02.21 cocos2d-x 왼쪽 하단 숫자 ...뭘까?..
  5. 2014.02.20 충돌
728x90

int socket(int domain, int type, int protocol);

//성공시 파일디스크립터, 실패 시 -1을 리턴//

 

domain : 생성할 소켓이 통신을 하기 위해 사용할 프로토콜 체계(Protocol Family)를 설정한다.

type : 소켓이 데이터를 전송하는데 있어서, 사용하게 되는 전송 타입을 설정해 준다.

protocol : 두 호스트간에 통신을 하는데 있어서 특정 프로토콜을 지정 하기위해 사용된다.

 

1. Domain(Protocol Family)

 

PF_INET : IPv4 인터넷 프로토콜

PF_INET6 : IPv6 인터넷 프로토콜

PF_LOCAL : Local 통신을 위한 UNIX 프로토콜

PF_PACKET : Low level socket을 위한 인터페이스

PF_IPX : IPX 노벨 프로토콜

 

2. Type(소켓의 타입)

 

SOCK_STREAM

인터넷 기반 연결 지향 소켓(TCP 소켓)

SOCK_DGRAM

인터넷 기반 비연결 지향 소켓(UDP 소켓)

 

3. Protocol

 

IPPROTO_TCP : TCP를 기반으로 하는 소켓을 생성

IPPROTO_UDP : UDP를 기반으로 하는 소켓을 생성

 

 

예제

socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);

또는

socket(PF_INET, SOCK_STREAM, 0);

 

socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);

또는

socket(PF_INET, SOCK_DGRAM, 0);

 

728x90
Posted by 정망스
,
728x90

Director::getInstance()->replaceScene(s);

위와같이 감독에게 씬을 바꾸라고 시키면 된다.

replacescene 외에도 pushScene()과, popScene()이 있다.

푸쉬는 말그대로 하나 올리는거 팝은 올려놓은것 중에 치워버리는거

 

그런데 이러한 장면 전환은 엄청 단순해 보인다는거

 

그래서 준비된게 Transition 장면이 전활될때 효과를 줄수 있다.

http://www.cocos2d-x.org/reference/native-cpp/V3.0beta2/da/d00/group__transition.html

 

//사용법 : 

CMainScene* pMain = new CMainScene; 

TransitionFade* fade = TransitionFade::create(1.0f, pMain, Color3B::WHITE);
Director::getInstance()->replaceScene(fade);

//요런식?

 

ransitionRotoZoom
현재 Scene이 가운데를 기준으로 빙글빙글 돌면서 작아지고, 새 Scene이 빙글빙글 돌면서 커진다

 

TransitionJumpZoom
현재 Scene이 반쯤 작아져서 좌측으로 통통 튀기면서 나가고, 새 Scene이 우측에서 통통 튀겨서 들어와서 커진다

 

TransitionMoveInL, TransitionMoveInR, TransitionMoveInT, TransitionMoveInB
이동해 들어오는 효과 (기존화면을 덮어쓴다).  easeActionWithAction으로 속도 조절가능.
 
TransitionSlideInL, TransitionSlideInR, TransitionSlideInT, TransitionSlideInB
이동해 들어오는 효과 (기존화면을 밀어낸다).  easeActionWithAction으로 속도 조절가능.

 

TransitionShrinkGrow
현재 Scene이 가로 1/3 정도 지점으로 작아지고, 새 Scene이 가로 2/3 정도 지점에서 커지면서 들어온다. easeActionWithAction 으로 속도 조절가능.

 

TransitionFlipX, TransitionFlipY TransitionFlipAngular
(현재 Scene 뒷면에 새 Scene이 붙어있고) 축으로 화면을 돌려서 전환하는 효과. Angular는 Y=X 축..

 

TransitionZoomFlipX ,TransitionZoomFlipY, TransitionZoomFlipAngular
표현을 못하겠다.  Flip과의 차이는 Fip은 100% 정직하고 Zoom은 약간 효과가 있는 느낌

 

TransitionFade, TransitionCrossFade
검은 화면으로 어두워졌다 다시 밝아지면서 새 화면이 나오는 효과, Cross Fade는 중간 검은 화면이 없다.

 

TransitionTurnOffTiles
일정한 사이즈의 타일이 다닥다닥 바뀌면서 전환. 모자이크 같은 느낌
 
TransitionSplitCols, TransitionSplitRows
화면을 X등분해서 홀수 화면은 위로 짝수화면은 아래로 나갔다가 다시 들어오는 효과

 

TransitionFadeTR, TransitionFadeBL
해당 방향으로 또로로로롱 하면서 전환하는 느낌.

 

TransitionFadeUp, TransitionFadeDown
방향으로 창살을 접으면서 전환하는 느낌.

 

TransitionPageTurn
(우측 하단을 집어서 좌측으로) 책 넘기는 효과.

 

TransitionProgressRadialCW, TransitionProgressRadialCCW
시계/반시계 방향으로 돌면서 새 Scene을 현재 Scene위에 칠한다. (CCW = Counter Clockwise)

 

TransitionProgressHorizontal, TransitionProgressVertical
방향으로 새 Scene을 현재 Scene위에 칠한다. 기본값은 TransitionMoveIn과 매우 비슷하다.

 

TransitionProgressInOut
새 Scene을 화면 가운데에서 끝까지 커지면서 칠한다.

 

TransitionProgressOutIn
현재 Scene이 화면 끝에서 가운데로 작아지면서 사라진다.

728x90

'cocos2d-x' 카테고리의 다른 글

스프라이트(Sprite) 액션 일시정지 & 다시시작  (1) 2014.03.30
스케줄(Schedule) 정리 中..  (0) 2014.03.30
액션 종류들 정리中  (0) 2014.03.03
cocos2d-x 왼쪽 하단 숫자 ...뭘까?..  (0) 2014.02.21
cocos2d-x  (0) 2014.02.19
Posted by 정망스
,
728x90

/*MoveBy* pMove = MoveBy::create(10.0f, Point(500, 500));
 pSprite->runAction(pMove);*/
 /*JumpTo* pJump = JumpTo::create(5.0f, Point(300, 300), 40, 5);
 pSprite->runAction(pJump);*/
 /*ScaleTo* pScale = ScaleTo::create(5.5f, 0.4f);
 pSprite->runAction(pScale);*/
 /*RotateTo* pRotate = RotateTo::create(1.0f, 30);
 pSprite->runAction(pRotate);*/
 //FadeOut* pFadeOut = FadeOut::create(2.0f);
 //pSprite->runAction(pFadeOut);
 /*FadeTo* pFadeTo = FadeTo::create(2.0f, 128);
 pSprite->runAction(pFadeTo);*/
 TintTo* pTint = TintTo::create(2.0f, 255, 0, 0);
 pSprite->runAction(pTint);
 /*Blink* pBlink = Blink::create(3.0f, 10);
 pSprite->runAction(pBlink);*/
 /*FadeIn* pFadeIn = FadeIn::create(3.0f);
 pSprite->runAction(pFadeIn);*/

 //ScaleTo* pScale = ScaleTo::create(1.5f, 0.4f);
 //RotateTo* pRotate = RotateTo::create(1.0f, 2000);
 //Spawn* pSpawn = Spawn::create(pScale, pRotate, NULL);
 ////Sequence* pSeq = Sequence::create(pScale, pRotate, NULL);

 

728x90

'cocos2d-x' 카테고리의 다른 글

스프라이트(Sprite) 액션 일시정지 & 다시시작  (1) 2014.03.30
스케줄(Schedule) 정리 中..  (0) 2014.03.30
Scene 전환 종류 정리中  (0) 2014.03.03
cocos2d-x 왼쪽 하단 숫자 ...뭘까?..  (0) 2014.02.21
cocos2d-x  (0) 2014.02.19
Posted by 정망스
,
728x90
cocos2d-x 개발 중에, 왼쪽하단에 나오는 숫자가 궁금한 분들이 많은 것 같습니다.
제가 알고 있는 선에서 정리할까 합니다.

=====
100
0.027
31.1
=====
위와 같이 표시된 상태를 예로 하겠습니다.


첫번째 숫자
draw된 개체 수를 말합니다. 
즉, 현재 sprite, layer,  label등의 개체들을 얼마나 addChild했는가 입니다.

물론 빈 레이어를 올려도 숫자가 증가하고, 
addChild한 sprite를 setVisible(false)로 하면 (당연하겠지만) 증가하지 않습니다.
이 숫자는 높을수록, 게임 퍼포먼스가 떨어질 확률이 높겠지요.
많은 개체들을 draw하려고 하니, 프레임은 물론, 발열, 배터리까지 영향이 있게 되겠지요.

줄일 수 있으면, 최대한 줄이는게 좋겠구요,
팁을 드리자면, 10장의 이미지 리소스를 각각 sprite로 addChild하면 10이 증가하는 반면, 
배치노드 1장을 써서 10장의 sprite를 그리면 1증가합니다. (CCSpriteBatchNode)

한가지 더,
10장의 이미지 리소스를 texturepacker등의 툴로 1장의 png와 plist로 뽑아낸 후
CCSprite::createWithSpriteFrame(cache->spriteFrameByName("a.png")) 등의  방법으로 생성한다면
로딩 속도 및 메모리에서 이득을 볼 수 있으나, 역시 10장 모두 addChild됩니다.


두번째 숫자
두번째는 세번째와 의미가 같다고 알고 있는데, 매 프레임을 draw하는 시간입니다. 프레임당 초이죠.
통상 60프레임을 기준으로 개발한다고 했을 때, 초당 60프레임을 호출하므로, 프레임당 약 0.0166초 입니다.
최근 프레임들의 평균값을 표시하는 것 으로 알고 있습니다.


결국 매 프레임을 그리는 시간인건데, 무심코 지나칠 수 없는 부분이 있습니다.

보통 많이들 사용하시는  void update(float dt) 함수를 예로 들면,   

실제 게임을 만들었을 때, 여러가지 단말기에 대한 테스트를 하게 됩니다.
이 때 눈에 띄는 것이 단말기별 fps인데, 이는 단말기 마다 차이가 나기 마련입니다.

update() 함수에서 캐릭터가 60번의 프레임에 한번씩 이동하는 로직이 있다고 했을 때,
프레임을 초당 60으로 설정했으므로 이론상 update함수는 1초에 60번 호출되어야 합니다.

void someLayer::update(float dt)

{

    ++m_nTimes;

    if( m_nTimes == 60 )

        move();

}


예상했던 60 프레임째에 캐릭터는 이동했지만, 
실제 단말기마다 이동하는 시간은 차이가 나게됩니다.
즉, 프레임에 따라 들어오는 시간의 값 dt가 달라지게 되는데, 이 부분은 염두에 두어야 합니다.
프레임이 떨어지면, dt는 증가하고, (30프레임 x 0.033 = 약 1초)
프레임이 올라가면 dt는 감소합니다. (60프레임 x 0.0166 = 약 1초)


세번째 숫자
초당 프레임 수 입니다. 
참고하세요.

 

728x90

'cocos2d-x' 카테고리의 다른 글

스프라이트(Sprite) 액션 일시정지 & 다시시작  (1) 2014.03.30
스케줄(Schedule) 정리 中..  (0) 2014.03.30
Scene 전환 종류 정리中  (0) 2014.03.03
액션 종류들 정리中  (0) 2014.03.03
cocos2d-x  (0) 2014.02.19
Posted by 정망스
,

충돌

카테고리 없음 2014. 2. 20. 17:10
728x90

for (int i = 0; i < 20; i++) {
  if (배열(돌).getBoundingBox().intersectsRect(캐릭터->getBoundingBox()))
  {
  캐릭터->setVisible(false); // 캐릭터가 안보이게
  }
 }

 

728x90
Posted by 정망스
,


맨 위로
홈으로 ▲위로 ▼아래로 ♥댓글쓰기 새로고침