Nebula2探秘04-Time Server研究
来源:互联网 发布:aim120 霹雳 知乎 编辑:程序博客网 时间:2024/06/06 02:38
Nebula2探秘04-Time Server研究
happykevins文
/****************************************************************************/
/* Nebula2 - Tutorial 04 */
/* 使用TimeServer */
/* author: happykevins */
/****************************************************************************/
///----------------------------------------------------------------------------
/// +必要头文件
#include "kernel/nkernelserver.h"
#include "kernel/ntimeserver.h"
/// -必要头文件
///----------------------------------------------------------------------------
///----------------------------------------------------------------------------
/// +链接库
#pragma comment(lib, "wsock32.lib")
#pragma comment(lib, "d_nkernel.lib")
/// -链接库
///----------------------------------------------------------------------------
///----------------------------------------------------------------------------
/// +Application
int main(int argc, const char** argv)
{
/// 创建KernelServer
nKernelServer* ks = n_new(nKernelServer);
/// 获得TimeServer
nTimeServer* time = (nTimeServer*)ks->Lookup("/sys/servers/time");
double totaltime = 0;
double frametime = 0;
///----------------------------------------------------------------------------
/// +默认情况
ks->Print("*****Start Timer!***** ");
time->ResetTime();
time->StartTime();
while ( totaltime < 0.5f )
{
time->Trigger();
frametime = time->GetTime() - totaltime;
totaltime += frametime;
ks->Print("[FRAME:%f] ", frametime);
}
time->StopTime();
ks->Print("[TOTAL:%f] ", totaltime);
ks->Print("*****Stop Timer!***** ");
/// +默认情况
///----------------------------------------------------------------------------
///----------------------------------------------------------------------------
/// +设置WaitDelta
/// @note:
/// 在WaitDeltaT<0.001时几乎没有什么作用
/// 在WaitDeltaT>=0.001时每一帧的间隔时间会远远大于0.001
time->WaitDeltaT(0.001f);
ks->Print("[WAIT:%fsec] ", time->GetWaitDeltaT());
ks->Print("*****Start Timer(WaitDeltaT)!***** ");
time->StartTime();
while ( totaltime < 2.0f )
{
time->Trigger();
frametime = time->GetTime() - totaltime;
totaltime += frametime;
ks->Print("[FRAME:%f] ", frametime);
}
time->StopTime();
ks->Print("[TOTAL:%f] ", totaltime);
ks->Print("*****Stop Timer(WaitDeltaT)!***** ");
/// -设置WaitDelta
///----------------------------------------------------------------------------
///----------------------------------------------------------------------------
/// +设置LockDelta
/// @note:
/// LockDeltaT的用途是锁定帧速率
/// 在LockDeltaT>0时,每一帧将不会按照真实时间来更新
time->LockDeltaT(0.1);
ks->Print("[LOCK:%fsec] ", time->GetLockDeltaT());
ks->Print("*****Start Timer(LockDeltaT)!***** ");
time->StartTime();
while ( totaltime < 4.0f )
{
time->Trigger();
frametime = time->GetTime() - totaltime;
totaltime += frametime;
ks->Print("[FRAME:%f] ", frametime);
}
time->StopTime();
ks->Print("[TOTAL:%f] ", totaltime);
ks->Print("*****Stop Timer(LockDeltaT)!***** ");
/// +设置LockDelta
///----------------------------------------------------------------------------
/// 销毁KernelServer
n_delete(ks);
getchar();
return 0;
}
/// -Application
///----------------------------------------------------------------------------
/* Nebula2 - Tutorial 04 */
/* 使用TimeServer */
/* author: happykevins */
/****************************************************************************/
///----------------------------------------------------------------------------
/// +必要头文件
#include "kernel/nkernelserver.h"
#include "kernel/ntimeserver.h"
/// -必要头文件
///----------------------------------------------------------------------------
///----------------------------------------------------------------------------
/// +链接库
#pragma comment(lib, "wsock32.lib")
#pragma comment(lib, "d_nkernel.lib")
/// -链接库
///----------------------------------------------------------------------------
///----------------------------------------------------------------------------
/// +Application
int main(int argc, const char** argv)
{
/// 创建KernelServer
nKernelServer* ks = n_new(nKernelServer);
/// 获得TimeServer
nTimeServer* time = (nTimeServer*)ks->Lookup("/sys/servers/time");
double totaltime = 0;
double frametime = 0;
///----------------------------------------------------------------------------
/// +默认情况
ks->Print("*****Start Timer!***** ");
time->ResetTime();
time->StartTime();
while ( totaltime < 0.5f )
{
time->Trigger();
frametime = time->GetTime() - totaltime;
totaltime += frametime;
ks->Print("[FRAME:%f] ", frametime);
}
time->StopTime();
ks->Print("[TOTAL:%f] ", totaltime);
ks->Print("*****Stop Timer!***** ");
/// +默认情况
///----------------------------------------------------------------------------
///----------------------------------------------------------------------------
/// +设置WaitDelta
/// @note:
/// 在WaitDeltaT<0.001时几乎没有什么作用
/// 在WaitDeltaT>=0.001时每一帧的间隔时间会远远大于0.001
time->WaitDeltaT(0.001f);
ks->Print("[WAIT:%fsec] ", time->GetWaitDeltaT());
ks->Print("*****Start Timer(WaitDeltaT)!***** ");
time->StartTime();
while ( totaltime < 2.0f )
{
time->Trigger();
frametime = time->GetTime() - totaltime;
totaltime += frametime;
ks->Print("[FRAME:%f] ", frametime);
}
time->StopTime();
ks->Print("[TOTAL:%f] ", totaltime);
ks->Print("*****Stop Timer(WaitDeltaT)!***** ");
/// -设置WaitDelta
///----------------------------------------------------------------------------
///----------------------------------------------------------------------------
/// +设置LockDelta
/// @note:
/// LockDeltaT的用途是锁定帧速率
/// 在LockDeltaT>0时,每一帧将不会按照真实时间来更新
time->LockDeltaT(0.1);
ks->Print("[LOCK:%fsec] ", time->GetLockDeltaT());
ks->Print("*****Start Timer(LockDeltaT)!***** ");
time->StartTime();
while ( totaltime < 4.0f )
{
time->Trigger();
frametime = time->GetTime() - totaltime;
totaltime += frametime;
ks->Print("[FRAME:%f] ", frametime);
}
time->StopTime();
ks->Print("[TOTAL:%f] ", totaltime);
ks->Print("*****Stop Timer(LockDeltaT)!***** ");
/// +设置LockDelta
///----------------------------------------------------------------------------
/// 销毁KernelServer
n_delete(ks);
getchar();
return 0;
}
/// -Application
///----------------------------------------------------------------------------
- Nebula2探秘04-Time Server研究
- Nebula2探秘04-Time Server研究
- Nebula2探秘04-Time Server研究
- Nebula2探秘03-Object System研究
- Nebula2探秘03-Object System研究
- Nebula2探秘03-Object System研究
- Nebula2探秘03-Object System研究
- Nebula2探秘05-RTTI
- Nebula2探秘05-RTTI
- Nebula2探秘05-RTTI
- Nebula2探秘序章:Nebula2环境配置
- Nebula2探秘序章:Nebula2环境配置
- Nebula2探秘序章:Nebula2环境配置
- Nebula2探秘序章:Nebula2环境配置
- Nebula2探秘11-Simple Window
- Nebula2探秘10-Signal System
- Nebula2探秘09-IpcPeer(UDP)
- Nebula2探秘02-使用FileServer2
- STUFF() 函数
- js日期显示格式
- 甲方屡次选错乙方终致项目暴毙
- 锻造软件需求人员的六大要素
- 把DLL文件打包进EXE的技巧(C#)
- Nebula2探秘04-Time Server研究
- 《给初学者的Windows Vista的补遗手册》之058
- java applet source code 网站推荐
- Windows Server 2003 添加/删除Windows组件出现错误的问题
- 管理者的自省:用三流人才赚一流的钱
- 好书共享:《微软项目:求生法则》
- RISC架构服务器开源运动将促使市场需求提升
- 开源与“黑客”入侵
- Nebula2探秘03-Object System研究