我想将Double转换为GLfloat。我想用它进行比较。
xM <- newIORef 0.0
zM <- newIORef 0.0
mobs <- newIORef []
mapM_ (\x -> colision x xM) mobs
Mobs中充满了一个方法。
colision mob xC = do
xcama <- get xC
--zcama <- get zC
let menor = mob!!0
let mayor = mob!!7
--if xm>= xmin && xm <= xmax && zm >= zmin && zm <= zmax then renderText (1, (-1.4)) $ "Dead"
--else renderText (1, (-1.4)) $ "Warning..."
renderText (1, (-1.4)) $ "Warning..."
当我尝试编译时,它显示以下错误:
"无法匹配类型'Foreign.C.Types.CDouble'和'Foreign.C.Types.CFloat' 期望类型:GLfloat
实际类型:GLdouble
-----解决方案:------
我使用了这段代码:
import GHC.Float
d2f = realToFrac :: GLdouble -> GLfloat
import GHC.Float
,因为realToFrac
是标准的Haskell函数,从Prelude
重新导出。 - Ørjan Johansen