#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 이면 서머타임 없음
}
분류 전체보기
- 현재 시각 구하기 2012.04.09 1
- cocos2d에서 조이패드,조이스틱 만들기 2012.03.27 1
- 캐릭터 이동속도 2012.03.26
- cocos2d-x 자식 노드 순차로 순회하기 2012.03.19
- fatal error LNK1000: Internal error during IncrBuildImage 2012.03.15 1
- 애니메이션 타일 파일 정책 2012.03.14
- Windows Installer 서비스가 하나 또는 그 이상의 보호된 Windows 파일을 업데이트할 수 없습니다. 2012.03.07
- CCSpriteBatchNode 2012.03.06 1
- 타일 애니메이션에 사용될 스프라이트 파일명 정책 2012.03.02
- 맵툴 사용 규약 2012.02.29
현재 시각 구하기
cocos2d에서 조이패드,조이스틱 만들기
// 원에 십자를 그었을때 ╁ 두꺼운 선이 각도 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;
}
캐릭터 이동속도
스케쥴러 안에서 x픽셀 움직이는데 걸리는 시간을 1/60초로 설정하고,
x값을 적절히 수정하여 캐릭터 속도를 만들어 낸다.
예로 1로 넣으면 1픽셀 이동하는데 1/60초가 걸리는 것이며,
x에 2를 넣으면 2픽셀 이동하는데 1/60초가 걸리는 것이다.
소수점도 사용가능하다. 예를 들어 2.6, 5.5 등등
cocos2d-x 자식 노드 순차로 순회하기
fatal error LNK1000: Internal error during IncrBuildImage
애니메이션 타일 파일 정책
파일명에서 타입 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 좌표를 보고 자동으로 할당되도록 되어 있다.
Windows Installer 서비스가 하나 또는 그 이상의 보호된 Windows 파일을 업데이트할 수 없습니다.
CCSpriteBatchNode
CCSpriteBatchNode는 영역을 지정해서 따로 따로 스프라이트를 만들 수 있다.
예제소스>
CCSpriteBatchNode* s = CCSpriteBatchNode::batchNodeWithFile("Tiled_Animation.png");
타일 애니메이션에 사용될 스프라이트 파일명 정책
1. 타일 파일명 의미
타일 애니메이션 인덱스_동작타입에 사용될 스프라이트들.png
ex>0_0.png
맵툴 사용 규약
맵툴 사용 규약
툴은 www.mapeditor.org 에서 다운 받으면 된다.
1. 하나의 레이어에 하나의 타일셋만 사용가능하다.
2. 지형에서 레어어를 생성할 때 다음과 같이 생성해야 한다.
왜냐하면 타일의 층 하나하나가 개별로 분리되어 있어야 캐릭터 레이어를 조절해서 오브젝트에 가려지거나 오브젝트 앞에 렌더가 될 수 있기 때문이다.
맵툴에서 이동이 가능한지 불가능한지 값을 입력해야하는데, 이동가능 하든 불가능하든 전체다 타일의 속성을 설정해줘야한다.