hge source explor 0x9 Power Random Ini
Power |
电源管理部分,会用到的参数为:
// Powerint nPowerStatus;HMODULE hKrnl32;GetSystemPowerStatusFunc lpfnGetSystemPowerStatus; |
_InitPowerStatus() |
初始化电源信息:
- LoadLibrary("kernel32.dll")
- 获得函数GetSystemPowerStatus地址
- 调用_UpdatePowerStatus
![]() ![]() void HGE_Impl::_InitPowerStatus() {hKrnl32 = LoadLibrary("kernel32.dll");if(hKrnl32 != NULL)lpfnGetSystemPowerStatus = (GetSystemPowerStatusFunc)GetProcAddress(hKrnl32, "GetSystemPowerStatus");_UpdatePowerStatus(); } _InitPowerStatus |
_UpdatePowerStatus() |
获得电源信息。
![]() ![]() void HGE_Impl::_UpdatePowerStatus() {SYSTEM_POWER_STATUS ps;if(lpfnGetSystemPowerStatus != NULL && lpfnGetSystemPowerStatus(&ps)){if(ps.ACLineStatus == 1){nPowerStatus = HGEPWR_AC;}else if(ps.BatteryFlag < 128){nPowerStatus = ps.BatteryLifePercent;}else{nPowerStatus = HGEPWR_UNSUPPORTED;}}else{nPowerStatus = HGEPWR_UNSUPPORTED;} } _UpdatePowerStatus |
_DonePowerStatus() |
结束,释放动态链接库。
![]() ![]() void HGE_Impl::_DonePowerStatus() {if(hKrnl32 != NULL) FreeLibrary(hKrnl32); } _DonePowerStatus |
Random |
在这个模块中提供随机数,作为唯一的参数的 是随机数的种子。
unsigned int g_seed=0; |
Random_Seed(int seed) |
设置随机数的种子。
![]() ![]() void CALL HGE_Impl::Random_Seed(int seed) {if(!seed) g_seed=timeGetTime();else g_seed=seed; } Random_Seed |
Random_Int(int min, int max) |
线性同余法产生一个整型随机数,范围为(min,max)。
![]() ![]() int CALL HGE_Impl::Random_Int(int min, int max) {g_seed=214013*g_seed+2531011;return min+(g_seed ^ g_seed>>15)%(max-min+1); } Random_Int |
Random_Float(float min, float max) |
产生一个浮点型随机数,范围为(min,max)。
![]() ![]() float CALL HGE_Impl::Random_Float(float min, float max) {g_seed=214013*g_seed+2531011;//return min+g_seed*(1.0f/4294967295.0f)*(max-min);return min+(g_seed>>16)*(1.0f/65535.0f)*(max-min); } Random_Float |
Ini |
在这个部分中,从指定的Ini文件中读取、写入数据,所以需要一ini文件。
char szIniFile[_MAX_PATH]; |
set(const char* section,const char* name,type value); |
写入不同类型的参数。
![]() ![]() void CALL HGE_Impl::Ini_SetInt(const char *section, const char *name, int value) {char buf[256];if(szIniFile[0]) {sprintf(buf,"%d",value);WritePrivateProfileString(section, name, buf, szIniFile);} }void CALL HGE_Impl::Ini_SetFloat(const char *section, const char *name, float value) {char buf[256];if(szIniFile[0]) {sprintf(buf,"%f",value);WritePrivateProfileString(section, name, buf, szIniFile);} }void CALL HGE_Impl::Ini_SetString(const char *section, const char *name, const char *value) {if(szIniFile[0]) WritePrivateProfileString(section, name, value, szIniFile); } Setter |
get(const char* section,const char* name, type value); |
读取数据。
![]() ![]() int CALL HGE_Impl::Ini_GetInt(const char *section, const char *name, int def_val) {char buf[256];if(szIniFile[0]) {if(GetPrivateProfileString(section, name, "", buf, sizeof(buf), szIniFile)){ return atoi(buf); }else { return def_val; }}return def_val; }float CALL HGE_Impl::Ini_GetFloat(const char *section, const char *name, float def_val) {char buf[256];if(szIniFile[0]) {if(GetPrivateProfileString(section, name, "", buf, sizeof(buf), szIniFile)){ return (float)atof(buf); }else { return def_val; }}return def_val; }char* CALL HGE_Impl::Ini_GetString(const char *section, const char *name, const char *def_val) {if(szIniFile[0]) GetPrivateProfileString(section, name, def_val, szIniString, sizeof(szIniString), szIniFile);else strcpy(szIniString, def_val);return szIniString; } Getter |
接下来就是图形了!
转载于:https://www.cnblogs.com/yoru/p/5515570.html
hge source explor 0x9 Power Random Ini相关推荐
- hge source explor 0x1
hge.h & hge_impl.h hge.h是给用户的,所以在这里会列出所有的用户能使用的接口. hge_impl.h是引擎的具体实现,在这里除了给用户的接口实现之外还有额外的实现过程中的 ...
- HGE source explor 0x0
本文准备开始HGE游戏引擎的代码阅读,其实我已经阅读完HGE的代码了,这里将准备再重新阅读代码.阅读代码将准备将代码拆开阅读,按每种功能分开来阅读,分别准备如下: 游戏的窗口 对于任意一个程序来说,一 ...
- hge source explor 0x8 timer
Timer 时间部分,在hge中提供对于fps的控制,时间的控制等. 其中会用到的参数有. hge_impl.h // Timerfloat fTime;float fDeltaTime;DWORD ...
- hge source explor 0x5 input module
Input Module 前面提到输入事件,那么对输入事件分类,分类如下 /* ** HGE Input Event type constants */ #define INPUT_KEYDOWN 1 ...
- hge source explor 0xA graphics Ⅰ
Graphics 在这一部分完成初始化DX,并且完成固定流水线,然后在进行渲染. 在这一部分会用到的数据结构和参数有: 参数: D3DPRESENT_PARAMETERS* d3dpp;D3DPRES ...
- hge source explor 0x2 windows module
Windows窗口 hge的window窗口的具体建立是在System_Initiate函数中,现在将hge中关于Windows窗口相关的代码拿出来. Windows相关参数 windows attr ...
- hge source explor 0x4 input module
Input Module hge中的输入并没有用到Direct Input,在window消息构造输入信息. 对于鼠标和键盘,输入信息用一个结构来处理,hge中的信息事件的结构 /* ** HGE I ...
- hge source explor 0x3 windows module
Windows窗口 在这里继续看窗口相关的函数,前面看到的部分能够生成一个窗口.在hge的代码中,我们可以看到别的函数处理窗口相关的事情,当然不是指的消息处理函数. 在hge中消息处理函数是最主要的函 ...
- hge source explor 0xD graphics Ⅳ
外部接口 这里的接口提供给用户进行固定的步骤:BeginScene:自己的渲染:EndScene. 接下来从教程2的渲染顺序来看函数 Gfx_BeginScene(HTARGET targ) 在渲染 ...
最新文章
- VMware虚拟机三种网络模式(桥接、NAT、仅主机)的区别
- 学python语言用什么软件-对于自学python的初学者来说,应该使用什么编辑工具?...
- linux 自动备份脚本
- Session机制二(简易购物车案例)
- SQL语句 常用条件判断
- 自动编译和提交脚本(结合svn和visual studio)
- 7.Phong 和 BlinnPhong
- java 拉起服务_技术开发者应该如何构建小团队的微服务方案?
- 最大期望算法 (EM算法)
- java批量查询导致堆内存不足,带有嵌套聚合的Elasticsearch查询导致内存不足
- 把 Reative Native 47 版本集成到已有的 Native iOS 工程中
- python 获取foobar2000官网全部插件
- Mac 如何安装tomcat
- 算法时间复杂度O(1)
- 关于打开Excel显示受保护视图空白无内容的问题已解决
- Excel 删除重复数据只保留一条的绿色工具,excel删除重复的行
- JAVA基础英语单词
- 超市小程序怎么做_分享超市微信小程序制作步骤
- Duda模式分类 ch2 习题
- 11 - 向量微分、矩阵微分以及基于雅克比矩阵求导数