#include <stdio.h>
#include <time.h>


void main(void) {
  time_t timer;
  struct tm *t;

  timer = time(NULL); // 현재 시각을 초 단위로 얻기

  t = localtime(&timer); // 초 단위의 시간을 분리하여 구조체에 넣기


  printf("유닉스 타임 (Unix Time): %d 초\n\n", timer); // 1970년 1월 1일 0시 0분 0초부터 시작하여 현재까지의 초

  printf("현재 년: %d\n",   t->tm_year + 1900);
  printf("현재 월: %d\n",   t->tm_mon + 1);
  printf("현재 일: %d\n\n", t->tm_mday);

  printf("현재 시: %d\n",   t->tm_hour);
  printf("현재 분: %d\n",   t->tm_min);
  printf("현재 초: %d\n\n", t->tm_sec);

  printf("현재 요일: %d\n", t->tm_wday); // 일요일=0, 월요일=1, 화요일=2, 수요일=3, 목요일=4, 금요일=5, 토요일=6
  printf("올해 몇 번째 날: %d\n", t->tm_yday); // 1월 1일은 0, 1월 2일은 1
  printf("서머타임 적용 여부: %d\n", t->tm_isdst); // 0 이면 서머타임 없음

}


// 원에 십자를 그었을때 ╁ 두꺼운 선이 각도 0도이고 시계방향으로 1도, 2도... 한바퀴 돌아 두꺼운 선까지 360도이다.

// 각도 = 기준 점, 확인 할 점

float GetDirectionAngle( CCPoint _ptStandard, CCPoint _ptTarget )

{

_ptTarget.x -= _ptStandard.x;

_ptTarget.y -= _ptStandard.y;


return atan2(_ptTarget.x, _ptTarget.y) * 57.3f + 180;

}


// 점안인지 아닌지 = 기준 점, 확인할 점, 원크기

float IsInCircle( CCPoint _ptStandard, CCPoint _ptTarget, float _fCircleSize )

{

// (기준x - 현재x)^2 + (기준y - 현재y)^2 = 반지름^2

// 반지름을 제곱한거보다 작으면 원안에 점이 있는 거임


// static 변수를 사용해서, 계산을 줄일 수 있는 여지가 있음!


float a = (_ptTarget.x - _ptStandard.x) * (_ptTarget.x - _ptStandard.x) + (_ptTarget.y - _ptStandard.y) * (_ptTarget.y - _ptStandard.y);

float b = _fCircleSize * _fCircleSize;


if( a < b )

{

return true;

}


return false;

}


캐릭터 이동을 담당하는 스케쥴러 호출을 1/60초로 호출 하도록하고,
스케쥴러 안에서 x픽셀 움직이는데 걸리는 시간을 1/60초로 설정하고,

x값을 적절히 수정하여 캐릭터 속도를 만들어 낸다.

예로 1로 넣으면 1픽셀 이동하는데 1/60초가 걸리는 것이며,
x에 2를 넣으면 2픽셀 이동하는데 1/60초가 걸리는 것이다.

소수점도 사용가능하다. 예를 들어 2.6, 5.5 등등
 
cocos2d-x 자식 노드 순차로 순회하기

CCArray *pChildren = this->getChildren();

if (pChildren && pChildren->count() > 0)
{
CCObject* pObject = NULL;
int nCnt = 0;
CCARRAY_FOREACH(pChildren, pObject)
{
UILobbyUserHouse* pChild = (UILobbyUserHouse*) pObject;
pChild->setPosition( ccp(nCnt* 100, nCnt*100) );
nCnt++;
}
}

이번에 Win7으로 OS 바꾸고 빌드할 때 때 가끔씩 나는 에러

vs2008 서비스팩 업데이트

 또는 
다운로드 사이트 

하나의 맵에는 하나의 plist 하나의 png만 사용가능하다.

파일명에서 타입 1, 2, 3 등 계속 순서대로 파일을 만든다.

Tiled_Animation_Type_0.plist
Tiled_Animation_Type_0.png


 기본적인 정보는 MapInfo.xlsx 파일에 들어있고
게임에 사용 될때는  MapInfo.xml 파일을 사용한다.
엑셀에서 저장할 때 xml로 저장하도록 한다.

애니메이션이 사용될 맵번호 map_0.tmx
타일 타입은 위에서 봤던 Tiled_Animation_Type_0.plist 파일명의 제일 끝에 숫자를 의미한다.
애니메이션번호는 그림파일 리소스가 0_0.png, 0_1.png, 0_2.png 와 같이 저장되는데,
뒤에숫자는 애니메이션 되는 거고 앞에숫자가 바로 애니메이션 번호를 의미한다.
앞에숫자는 숫자에 제한이 없고 뒤에 숫자는 최대 100까지 사용가능하다. 즉 100장까지 스프라이트가 사용가능하다.

 
맵번호 타일타입 애니메이션 번호 위치정보_X 위치정보_Y
mapno anitiletype anino x y
0 0 0 1 1
0 0 1 2 2


애니메이션 타일의 레이어 위치는 기존 타일의 위치는 전체 64개의 계층 타일에서 y 좌표를 보고 자동으로 할당되도록 되어 있다.

 
위와 같은 메시지가 뜨면서 MS Office 2007이 설치가 안된다면

C:\Program Files\Common Files\Microsoft Shared\web server extensions\40\bin 
폴더에 첨부파일 압축을 풀면 됩니다.




참고 

 

CCSpriteBatchNode는 영역을 지정해서 따로 따로 스프라이트를 만들 수 있다.

예제소스>
CCSpriteBatchNode* s = CCSpriteBatchNode::batchNodeWithFile("Tiled_Animation.png");
CCSprite* mySprite = CCSprite::spriteWithBatchNode(s, CCRectMake(0,0,64,32));
s->addChild(mySprite);
addChild(s);



1. 타일 파일명 의미


타일 애니메이션 인덱스_동작타입에 사용될 스프라이트들.png
ex>0_0.png



맵툴 사용 규약

툴은  www.mapeditor.org 에서 다운 받으면 된다.


1. 하나의 레이어에 하나의 타일셋만 사용가능하다.
2. 지형에서 레어어를 생성할 때 다음과 같이 생성해야 한다.
 


왜냐하면 타일의 층 하나하나가 개별로 분리되어 있어야 캐릭터 레이어를 조절해서 오브젝트에 가려지거나 오브젝트 앞에 렌더가 될 수 있기 때문이다.

맵툴에서 이동이 가능한지 불가능한지 값을 입력해야하는데, 이동가능 하든 불가능하든 전체다 타일의 속성을 설정해줘야한다.

 


+ Recent posts