这个例子是一个撞球系统,碰撞部分也值得学习,不过最重要的还是其配置部分,配置文件为config.txt,其中包括:
Requirements:所需配置
propertyset:预定义的设置,通过名字引用,例子文件中没有
AudioVendor:音频设置
DisplayVendor:视频设置,也是这个例子中最主要的部分,根据不同的显卡制造商(VendorId),不同的设备号(DeviceId),然后根据驱动版本号、操作系统版本等信息做一些设置。
上面提到的设置通过调用游戏中的相应接口设置,保存在CONFIGTABLE ConfigTable中
比如
例1
3DFX
DisplayVendor = 0x121a "3dfx"
0x8626 = "Rush (Macronix)"
UnsupportedCard
break
其含义为
3DFX制作的显卡,如果设备号为0x8626,则不支持当前游戏
例2
DisplayVendor = 0x8086 "Intel"
Unknown = "Unknown"
UMA
这个是我电脑上所用显卡,intel集成显卡,根据系统内存计算显存。
这个例子在超过4G内存电脑上的问题:
例子在我的电脑上跑有如下提示:
This system does not meet the following minimum requirements:
Minimum memory of 128 megabytes
Minimum video memory of 64 megabytes
其原因是我电脑为win7(64位),内存为8G,内存计算有问题,如下修改即可
INT64 SysMemory;//DWORD SysMemory;
INT64 tmpMemSize = (INT64)ms.dwTotalPhys+(16*1024*1024-1);
SysMemory = ((tmpMemSize & ~(16*1024*1024-1) ) >> 20);
//SysMemory = (((ms.dwTotalPhys+(16*1024*1024-1)) & ~(16*1024*1024-1) ) >> 20);