QLGame 2d Engine SpriteBatch类创建

             GitHub地址:https://github.com/wsgzxl/QLGame2dEngine

              今天说五个问题:

              1.前面说到的 颜色不对的问题,是因为FreeImage读取出来的数据格式与OpenGL显示需要的顺序不一致,所以有些颜色不对,已经在TextureManager类TextureManager::FIBitmap2GLBitmap方法进行了处理!

              2.对PNG透明图片的渲染采用的是用

                    glEnable(GL_BLEND);

                    glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);

                    注意这两句必须写在glBegin()方法之前,否则无效!

              3.如何实现坐标系的对应,也就是我们习惯使用的2D坐标系,左上角(0,0)右下角(窗口的长,窗口的宽)

                 glOrtho,这个函数是显示2D视图的,这个方法有六个参数

                (左,右,前,后,近,远)

                  举个例子 如果是800*600的窗口,那么可以写成(0,800,600,0,-100,100)

                  其实,写成(0,800,0,600,-100,100)也可以实现opengl中的一个单位长度对应屏幕一个像素,而因为2D的Y,是越往下,值越大,而3D的Y,是越往下,值越小,所以,将600和0交换之后,就完美实现了和2D游戏一样的坐标系了!

              4.SpriteBatch暂时只支持设置位置坐标,还不支持设定旋转和缩放方法,以后会提供!

              5.提供了帧率控制,帧率的显示是显示在控制台窗口中的!        

原文地址:https://www.cnblogs.com/alongu3d/p/4354849.html