Cocos2dx에서 밀리 초를 보여주는 데 어려움을 겪고 있습니다. 다른 컴퓨터에 다른 코드 기반을 사용하는 것을 피하고 싶습니다. Cocos2dx에서 Milliseconds를 어떻게 계산합니까?
이
는 32 비트 아이폰/아이팟 플랫폼에서 작동하지만 64 비트에 항상 0 초를 반환하고 시간은 통과하지 :timeval time;
gettimeofday(&time, NULL);
unsigned long millisecs = (time.tv_sec * 1000) + (time.tv_usec/1000);
return (float)millisecs;
동일하게 64 비트 아이폰/아이팟 플랫폼 및 32 비트에이 기능 만하는 기반으로 클럭 사이클, 사용자가 텍스트 메시지를 가져옵니다 또는 백그라운드에서 실행중인 프로그램이있는 경우, 그래서 시간이 팽창 시키는데 :
clock_t t;
t = clock();
return 10000.0 * ((float)t)/CLOCKS_PER_SEC;
이 정확하게 시간을 카운트 만 초 (하지 밀리 초)에서 :
내가 찾은 유일한 방법은 반복적 인 업데이트 이벤트 &을 dt를 플로트 (항상 정확함)에 추가하는 것입니다. 이는 정확하지만 이상적은 아닙니다.
기본적으로 업데이 트에서 나는 괜찮
timeElapsed += dt;
을 가지고 있지만 업데이트 실행을 계산 진행 시간이있을 경우에만 작동합니다.
안녕하세요. 답장을 보내 주셔서 감사합니다. 32 비트 iPhone 및 Android에서이 기능이 훌륭하지만 64 비트 iPad에서 호출하면 항상 0이 반환되므로 타이머가 실행되지 않습니다. – redux
안녕하세요, 저는 iPhone6에서 실행하여 작동합니다. tm.start와 tm.stop 사이에 집중적 인 작업이 있는지 확인할 수 있습니까? 그들이 너무 가까울 때 iOS 장치는 매우 빠르며 결과는 0이 될 수 있습니다. 또한 CCLOG ("U 시간 : % llu", now.tv_usec + (timestamp_t) now.tv_sec * 1000000)를 사용하여 get_timestamp 내부의 값을 인쇄 해보십시오. 숫자가 표시되므로 작동해야합니다. – Elensar
잘 작동 나를 위해 iPhone6 및 내 iPad Air,하지만 내 iPad mini 2, gettimeofday (& time, NULL); 항상 0을 반환합니다. 저는 iPad 2의 이상한 문제에 대해 읽었습니다. 어쩌면이 컴퓨터에서만 고유 할 수도 있습니다 (또는 어쩌면 코드의 다른 부분에서 깨기도합니다).안녕하세요, 안녕하세요, "Cocos2dx에서 Milliseconds를 어떻게 계산합니까?"가 아니라 장치에 문제가 있습니다. "안녕하세요, 오늘 HelloWorld 빌드를 수행하여 스니 피트 및 역행을 테스트하십시오. – redux