我正在为一家艺术家公司编写一个完整的高清2D引擎,希望它是跨平台的,用OpenGL和C++编写.
我遇到的主要问题是如何处理所有这些高清精灵.艺术家以24fps的速度绘制图形,并将它们导出为png序列.我已将它们转换为DDS(不理想,因为它需要加载directx标头)DXT5可以减少文件大小.游戏中的一些场景一次可以有5或6个动画精灵,每个可以包含200多个帧.目前我正在将精灵加载到一个指针数组中,但这需要很长时间才能加载,即使使用压缩纹理,也会占用相当多的内存(大约500mb用于完整场景).
所以我的问题是你对如何处理如此大量的帧有任何想法或提示吗?我认为有几个想法:
Castle Crashers等游戏如何通过高清显卡加载速度如此之快?
好吧,所以这可能不是最好的设计决定,我真的不想使用像LuaBind这样的东西...我只是好奇如果在C++ 03中可以使用以下内容(C++ 11可以使用可变参数模板).另外,我确定之前已经问过,但我找不到直接答案!
假设我有一个帮助方法从代码调用Lua函数:
void CallFunction(char* functionName, ...);
Run Code Online (Sandbox Code Playgroud)
它可能接受N个args(使用va_arg或多个args的任何其他方法)
如果可能的话,我怎样才能计算出每个参数的类型,并将其传递给相应的lua_push {type}(); 在调用所需的lua函数之前的函数?
我不确定这是否可以用var_arg来完成,因为你在获取参数时必须知道类型,我试图用void*抓住它并将其传递给专门的模板,但是它试图将它传递给模板.
希望在C++上好得多的人会有一两招!谢谢堆