Haskell Android OpenGL

Arc*_*iao 15 android haskell opengl-es

我一直遇到使用Ajhc在OpenGL中跟踪我的2d对象的问题.

我不知道如何跟踪我的物体并防止它离开设备的宽度和高度.有人可以提供帮助吗?

我的代码在这里:

module Draw where
import CubeVerts
import CoSys
import AndroidNdk
import AndroidNdk.Log

import Foreign.Marshal.Array

spriteMv :: Float -> Float -> Float -> Float -> Float -> IO ()
spriteMv x y dx dy z = do
    drawFunc

drawFunc :: IO ()
drawFunc = do
    c_glDrawArrays c_GL_TRIANGLES 0 6

spritePlayer :: Float -> Float -> Float -> Float -> Float -> IO ()
spritePlayer x y dx dy z = do
    withArray vertices $ ?vp -> withArray colors $ ?cp -> do
    c_glEnableClientState c_GL_VERTEX_ARRAY
    c_glEnableClientState c_GL_COLOR_ARRAY
    c_glVertexPointer 3 c_GL_FLOAT 0 vp
    c_glColorPointer 4 c_GL_FLOAT 0 cp

    spriteMv x y dx dy z

    c_glDisableClientState c_GL_VERTEX_ARRAY
    c_glDisableClientState c_GL_COLOR_ARRAY
Run Code Online (Sandbox Code Playgroud)

ja.*_*ja. 2

(我在 Haskell 和 OpenGL 方面的经验不是在 Android 上的,而且已经有几年了)。

创建一个IORef. 您需要保存对象的位置并从回调中检索它。请参阅 Sven Panitz 的 Haskell/OpenGL 教程的第 5 章:HOpenGL