【发布时间】:2017-04-07 10:21:55
【问题描述】:
我是 Haskell 的新手,我正在为 UI 使用 OpenGL(使用 Graphics.UI.GLUT)构建一个国际象棋游戏。我正在尝试为棋子渲染 PNG 图像。
我读到图像可以转换为 TextureObject 然后渲染,但找不到任何有用的资源来知道如何做到这一点。
这就是我生成棋盘的代码
drawSquare :: BoardSquare -> IO ()
drawSquare ((x,y,z),(r,g,b)) = preservingMatrix $ do
color $ Color3 r g b
translate $ Vector3 x y z
drawCube -- this will draw a square of appropriate size
-- Display Callback
display :: IORef GameState -> DisplayCallback
display gameState = do
gstate <- get gameState
clear [ColorBuffer]
forM_ (getBoardPoints gstate) $ drawSquare -- drawing all 64 squares here
flush
谁能帮我在给定文件路径的窗口的任何给定x 和y 坐标处渲染PNG 图像?
【问题讨论】:
-
也许不是针对您的问题,但是您是否看过 nehe 教程(Haskell 端口:hackage.haskell.org/package/nehe-tuts,C 中的原件可以在:nehe.gamedev.net 找到)?我不知道,但也许这会有所帮助......
-
您希望它专门在 OpenGL 中,还是只想在屏幕上显示 2D 图形?如果是后者,SDL2 是一个非常简单的替代方案,并且有很好的 haskell 绑定。
-
具有键盘动作和游戏玩法的总棋盘已在 OpenGL 中准备就绪。任何可以与 OpenGL 一起渲染 PNG 图像的东西都应该没问题,不需要在 OpenGL 中。