QLGame 2d Engine SpriteBatch類建立
今天說五個問題:
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.提供了幀率控制,幀率的顯示是顯示在控制檯窗口中的!
歡迎關注本站公眾號,獲取更多信息