我在设计游戏引擎时遇到了麻烦.例如:
当我在参考资料中思考时,我认为在ResourceManager类中管理我的引擎上的资源.
这个课有几个职责:
这对我有用,但我已经阅读了每个OOP设计教程,管理者是具有高耦合和低内聚的模糊类.我理解这一点,并且我同意,但我几乎在整个互联网上搜索了一个明确的例子,说明了管理者真正的替代方案,但我没有找到它.
有些人解释说,例如,ResourceManager应该分成更小的类:ResourceFactory,ResourceCollection,ResourceCache,ResourceFacade ......
我知道所有这些设计模式(工厂,集合,外观等)但我实际上并不了解如何将其加入以创建(易于管理)资源管理系统.
我的问题是:是否有一些教程或文档有明确的例子?有人能解释一下这个系统的例子吗?如果你能用C++或其他类似的语言写一个小例子,我会感谢你的.
在此先感谢您的帮助!
我开始使用GLM库通过OpenGL 3和GLSL进行数学运算.我需要一个正交投影来绘制2D图形,所以我写了这个简单的代码:
glm::mat4 projection(1.0);
projection = glm::ortho( 0.0f, 640.0f, 480.0f, 0.0f, 0.0f, 500.0f);
Run Code Online (Sandbox Code Playgroud)
在屏幕上打印glm :: ortho创建的值我得到:
0.00313 0.00000 0.00000 0.00000
0.00000 -0.00417 0.00000 0.00000
0.00000 0.00000 -0.00200 0.00000
-1.00000 1.00000 -1.00000 1.00000
Run Code Online (Sandbox Code Playgroud)
据我所知,这不是OpenGL中值的正确顺序,因为将此矩阵乘以位置向量将忽略所有转换值.
我用着色器和一些原语测试了那个矩阵,我只得到一个空白的屏幕.但如果我手动修改矩阵如下,它可以正常工作:
0.00313 0.00000 0.00000 -1.00000
0.00000 -0.00417 0.00000 1.00000
0.00000 0.00000 -0.00200 -1.00000
0.00000 0.00000 0.00000 1.00000
Run Code Online (Sandbox Code Playgroud)
此外,查看"glm/gtc/matrix_transform.inl"文件中的"ortho"函数:
template <typename valType>
inline detail::tmat4x4<valType> ortho(
valType const & left,
valType const & right,
valType const & bottom,
valType const & top,
valType const & zNear,
valType …Run Code Online (Sandbox Code Playgroud)